PONTE TRA METATRADER 5 E IL SITO DEGLI ALERT
=============================================

Cosa fa
-------
Gira su questa macchina accanto a MetaTrader 5 e resta collegato al sito. Per ogni conto installato:
- manda al sito le candele del broker e lo stato del conto;
- invia a MetaTrader gli ordini limite che il titolare del conto conferma dal sito con la sua passkey;
- annulla, su richiesta, gli ordini in attesa che ha inviato lui;
- da solo, alla chiusura di una wickless contraria, annulla i suoi ordini in attesa e porta a pareggio
  lo stop delle sue posizioni in guadagno o il take profit di quelle in perdita (vedi «Automatismi»);
- prima di ogni ordine controlla i limiti di rischio decisi sul sito da chi possiede il conto, e
  annulla i suoi ordini in attesa prima delle notizie rosse (vedi «Limiti di rischio»);
- manda al sito le operazioni chiuse dei suoi ordini, con il risultato vero (vedi «Operazioni chiuse»).

È sempre il ponte a chiamare il sito: su questa macchina non si apre nessuna porta.
Non conosce e non chiede la password dei conti: usa i terminali già aperti e collegati.


Installazione (cinque minuti per conto)
---------------------------------------
1. Apri MetaTrader 5 con il conto da collegare e accendi il pulsante «Algo Trading».
2. Fai doppio clic su installa.cmd e segui le domande:
   - se manca Python, lo installa (dal sito ufficiale python.org, solo per questo utente);
   - ti mostra i terminali aperti e ti fa scegliere il conto;
   - alla fine mostra un codice di otto cifre.
3. Il titolare di quel conto entra nel sito con il suo accesso, apre
   Impostazioni > MetaTrader sulla VPS e scrive il codice. Da lì il conto è suo.
4. Torna qui: l'installazione mostra le passkey di quella persona, le sole che potranno
   confermare ordini su quel conto. Scrivi «si» per autorizzarle.

Più conti sulla stessa macchina: ripeti installa.cmd una volta per conto (ogni conto nel suo
terminale MetaTrader, aperto). Ogni conto ha il suo codice, e lo scrive sul sito il suo titolare.

Da quel momento ogni ponte parte da solo a ogni accesso a Windows, e se si ferma riparte entro
cinque minuti. Se il suo MetaTrader è chiuso, il ponte lo riapre. La sessione di Windows deve restare
attiva: chiudi il Desktop remoto con la X, senza scegliere «Disconnetti l'utente» o «Esci».


Dopo un riavvio della VPS
-------------------------
Dopo un riavvio (aggiornamenti di Windows, manutenzione del fornitore) i ponti ripartono solo quando
qualcuno entra in Windows. Perché ripartano da soli, Windows deve entrare da solo con il tuo utente:
1. Scarica Autologon di Microsoft: https://learn.microsoft.com/sysinternals/downloads/autologon
2. Aprilo sulla VPS, scrivi il nome utente e la password di Windows e premi «Enable».
   La password resta cifrata dentro Windows: il ponte non la vede e non la chiede.
3. In ogni MetaTrader la password del conto deve essere salvata (nella finestra di accesso al conto,
   «Salva password»): così il ponte, ripartendo, riapre il terminale già collegato.
Per toglierlo: riapri Autologon e premi «Disable».


Dove stanno le cose
-------------------
Ogni conto ha la sua cartella, conti\<numero del conto>:
  config.toml             le sue impostazioni e i suoi tetti
  data\bridge.log         cosa fa il ponte (collegamenti, ordini rifiutati e perché)
  data\orders.log         ogni ordine inviato o annullato, con la risposta di MetaTrader
  data\ponte-errori.log   gli errori che hanno fermato il ponte (per esempio un config.toml sbagliato)
  data\limiti.json        i limiti di rischio e le notizie rosse ricevuti dal sito
  data\                   anche la chiave con cui il conto si fa riconoscere dal sito: non copiarla altrove


Conto reale
-----------
Su un conto reale il ponte invia ordini solo se nel suo config.toml c'è scritto

    allow_live = true

Se all'installazione hai risposto di no, per attivarlo apri conti\<numero>\config.toml con il
Blocco note, cambia la riga e fai doppio clic su avvia.cmd.


I tetti
-------
Nel config.toml di ogni conto ci sono i limiti che valgono qualunque cosa chieda il sito:
rischio massimo per ordine (max_risk), lotti massimi per ordine (max_lots), distanza minima dello
stop dall'ingresso in pip (min_stop_pips), ordini in attesa (max_pending), ordini al giorno
(max_orders_per_day). Si cambiano solo da qui, e dopo la modifica serve avvia.cmd.

Il ponte invia soltanto ordini limite con stop loss e take profit, sulle coppie elencate,
e solo se la conferma arriva da una passkey del titolare autorizzata su questa macchina.


Automatismi
-----------
Alla chiusura di ogni candela M15 il ponte guarda se è una wickless contraria (ribassista per un
acquisto, rialzista per una vendita) a un ordine o a una posizione che ha inviato lui. Se sì:
l'ordine in attesa si annulla; la posizione in guadagno ha lo stop portato al prezzo d'ingresso; quella
in perdita ha il take profit portato al prezzo d'ingresso. Non tocca mai ordini e posizioni messi a mano
o arrivati dal copiatore, e lo stop non lo peggiora mai.

Si accendono e spengono dal sito, conto per conto (Impostazioni > MetaTrader sulla VPS), e restano
ricordati qui in data\automatismi.json: valgono anche se il sito non risponde. Per spegnerli comunque
da questa macchina scrivi nel config.toml del conto

    auto_orders = false

e fai doppio clic su avvia.cmd. Ogni intervento finisce in data\orders.log e arriva su Telegram.


Limiti di rischio
-----------------
Chi possiede il conto li decide sul sito (Impostazioni > MetaTrader sulla VPS) e il ponte li ricorda
in data\limiti.json, così valgono anche se il sito non risponde. Prima di ogni ordine controlla:
- la perdita del giorno, dalla chiusura giornaliera del broker, contando anche le posizioni aperte;
- il rischio aperto: quanto si perderebbe se scattassero tutti gli stop degli ordini del sito;
- le notizie rosse sulle valute della coppia: niente ordini nuovi in una finestra prima e dopo, e gli
  ordini del sito in attesa su quella coppia si annullano all'inizio della finestra;
- la pausa dopo una posizione del sito chiusa in perdita.
Un limite si può superare scrivendo il motivo nella conferma dell'ordine, se il titolare lo permette:
il motivo viene firmato dalla passkey con l'ordine, e resta in data\orders.log e sul sito.


Operazioni chiuse ed esiti incerti
----------------------------------
Il ponte manda al sito le operazioni delle posizioni aperte dai suoi ordini (ingresso, uscita con
stop o take profit, commissioni, swap): il titolare vede nel suo registro il risultato vero. Si
spegne dal sito. Ogni ordine porta nel commento il segno della sua conferma: se una risposta si perde,
il sito chiede al ponte che fine ha fatto l'ordine e lo dice («era partito» o «non è partito»).


I file con il doppio clic
-------------------------
installa.cmd            installa un conto, o lo ricollega
avvia.cmd               riavvia i ponti (dopo una modifica a un config.toml)
ferma.cmd               ferma i ponti
controlla.cmd           mostra cosa vede ogni ponte in MetaTrader e le ultime righe del registro
collega.cmd             collega di nuovo un conto al sito (nuovo codice), per esempio a un'altra persona
autorizza-passkey.cmd   autorizza le passkey nuove (per esempio dopo aver cambiato telefono)
disinstalla.cmd         ferma i ponti e toglie l'avvio automatico

Valgono per tutti i conti installati; collega.cmd chiede quale.


Aggiornamento
-------------
Quando sul sito c'è un pacchetto nuovo: estrailo sopra questa cartella (la cartella conti resta
com'è) e fai doppio clic su avvia.cmd. Le impostazioni nuove entrano da sole nel config.toml di ogni
conto, con il loro valore di partenza, e quelle che hai già restano come sono.


Se qualcosa non va
------------------
Sul sito, in Impostazioni > MetaTrader sulla VPS, ognuno vede lo stato del suo conto e il motivo
per cui un ordine in quel momento non partirebbe (per esempio «Algo Trading» spento).
Qui, controlla.cmd mostra le ultime righe dei registri e gli errori recenti che hanno fermato il ponte.
