Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 448

 
Mickey Moose:


Esatto, è per questo che voglio tirarlo fuori.

ottenere il codice sorgente da questo file è molto più difficile che risolvere questo tipo di problema)

puoi fare una cosa figa in generale: un EA (o qualsiasi cosa tu abbia senza fonti) invierà la posta a un grafico vicino :-)

proprio a mio piacimento ha fatto http://luxtrade.tk/atcl:start (thread del forum: https://www.mql5.com/ru/forum/224745)

e nei pacchetti c'è SMTP-server(https://core.tcl.tk/tcllib/doc/tcllib-1-18/embedded/www/tcllib/files/modules/smtpd/smtpd.html)

In altre parole, è possibile utilizzare Eval("package require smtpd") nell'indicatore, quindi impostare il callback per la consegna e ricevere la posta necessaria in una volta, senza lasciare MetaTrader, nello stesso processo

ATcl
  • luxtrade.tk
Рад представить вам библиотеку ATcl v1 beta - интерпретатор Tcl для MT4. Расширяте возможности ваших программ MQL, используйте СУБД, дополняйте сетевыми средствами, интегрируйте их с любыми программами используя Tcl.
 
Maxim Kuznetsov:

si potrebbe fare una cosa divertente in generale: un EA (o qualsiasi cosa abbiate senza codice sorgente) invierà posta a un grafico vicino :-)

appena fatto http://luxtrade.tk/atcl:start (thread del forum: https://www.mql5.com/ru/forum/224745) a mio piacimento

e c'è un server SMTP nei pacchetti(https://core.tcl.tk/tcllib/doc/tcllib-1-18/embedded/www/tcllib/files/modules/smtpd/smtpd.html)

In altre parole, è possibile utilizzare Eval("package require smtpd") in un indicatore, quindi specificare il callback per la consegna e ricevere la posta necessaria in una sola volta, senza lasciare MetaTrader, nello stesso processo

Cercherò di risolverlo e, se necessario, potrò condividere i risultati

 
Artyom Trishkin:

Questo dovrebbe solo punteggiare l'intera storia sulla distanza in barre che avete impostato nelle impostazioni.

Grazie, ma sto cercando di scoprire il numero della barra in cui si trova la freccia e solo allora confrontarlo con un 10 (per esempio) non posso farlo senza un ciclo annidato.

Ho bisogno di sapere in questo momento in quale barra si trova la freccia dell'indicatore chiamato.

Credo di non essere molto bravo ad esprimermi). Con un esempio, penso, sarà più chiaro quello che voglio fare

Per esempio, con una condizione if(Open[i+1]>Cloce[i+1]) voglio impostare Text su High[i+1] con il numero della barra dove si trova la freccia
 
Mickey Moose:

Cercherò di capirlo, e se lo faccio posso condividere i risultati

Se avete domande, potete chiedere di persona o contattarmi nel mio profilo. Visito spesso il sito, ma non guardo tutto il forum - è difficile tenerne il conto e potrei accidentalmente perdere una domanda
 

Puoi dirmi come implementare in MQL5 per chiudere tutte le operazioni su tutte le coppie di valute quando raggiungono un certo profitto per tutte le operazioni, non importa se sono aperte da questo Expert Advisor o in qualsiasi altro modo?

L'ho fatto così, è giusto?

   if(AccountInfoDouble(ACCOUNT_PROFIT)>profit_close_all)
         for(int i=0; i<OrdersTotal(); i++)
            trade.PositionClose(OrderGetTicket(i),40);
 

Artyom Trishkin, deciso. I cicli annidati sono davvero inutili. Grazie )

 
Roman Sharanov:

Puoi dirmi come implementare in MQL5 la chiusura di tutte le operazioni su tutte le coppie di valute quando raggiungono un certo profitto per tutte le operazioni, indipendentemente dal fatto che siano aperte da questo Expert Advisor o in qualsiasi altro modo?

L'ho fatto così, è giusto?

No, non lo è. In mql5, OrdersTotal() è il numero di ordini pendenti, e quelli attivi sono chiamati posizioni. Di conseguenza, il ciclo dovrebbe essere costruito dal numero di posizioni, PositionsTotal()
 
Roman Sharanov:

Ho fatto questo, è giusto?

if(AccountInfoDouble(ACCOUNT_PROFIT)>profit_close_all)
         for(int i=PositionsTotal()-1; i>=0; i--)
            trade.PositionClose(PositionGetTicket(i),40);

Qualcosa del genere.

State usando un ciclo da zero, mentre avete bisogno di andare da più a zero, perché state chiudendo gli ordini proprio nel ciclo. E il secondo, vi è già stato detto di usare PositionsTotal().

 
Capito, grazie per l'aiuto!
 
Roman Sharanov:
Capito, grazie per l'aiuto!

Basta non dimenticare di cambiare OrderGetTicket() in PositionGetTicket() nella linea evidenziata.

Forum sul trading, sistemi di trading automatico e test di strategia

Qualsiasi domanda per i principianti su MQL4, aiuto e discussione su algoritmi e codici

Konstantin Nikitin, 2018.02.03 08:38

if(AccountInfoDouble(ACCOUNT_PROFIT)>profit_close_all)
         for(int i=PositionsTotal()-1; i>=0; i--)
            trade.PositionClose(OrderGetTicket(i),40);

Qualcosa del genere.

Si usa il ciclo da zero e viceversa, da più a zero, perché si chiudono gli ordini proprio nel ciclo. E il secondo, vi è già stato detto di usare PositionsTotal().