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

 
Vladimir Pastushak:


Questo è sbagliato e lo sono anche gli altri esempi.

Se metti uno stop a 1.2356 e sul nuovo tick metti di nuovo uno stop a 1.2356, otterrai l'errore 1

Questo viene dal primo blocco. L'ho cambiato, ma l'errore è rimasto. Questa condizione con una fermata è stata implementata per l'EA per non fare passaggi inutili. E su un nuovo tick, l'EA non imposterà di nuovo lo stesso stop - perché dopo questa condizione controllerò altre condizioni, per esempio, se lo stop è uguale al valore che voglio impostare.

 
Alexandr Sokolov:

Questo viene dal primo blocco. L'ho cambiato, ma l'errore rimane. Ho creato questa condizione con uno stop per evitare che l'EA faccia passaggi inutili. E su un nuovo tick l'EA non piazza di nuovo lo stesso stop - perché dopo che questa condizione è controllata le altre, per esempio, se lo stop è uguale al valore da impostare

OrderStopLoss()

Tutto Ordine...... () deve essere normalizzato

 
Vladimir Pastushak:

Tutto Ordine...... () deve essere normalizzato.

L'ho fatto - e non è servito a niente. Allo stesso tempo, come prima non ho questo errore nel tester, e MQL in qualche modo lo trova

 
Dove deve essere salvato il file di testo in modo che possa essere letto da un altro terminale?
 
yiduwi:
Quale percorso va usato per salvare un file di testo in modo che possa essere letto da un altro terminale?

ENUM_TERMINAL_INFO_STRINGA

Identificatore

Descrizione

Tipo di proprietà

LINGUA_TERMINALE

Lingua terminale

stringa

AZIENDA_TERMINALE

Nome dell'azienda

stringa

NOME TERMINALE

Nome del terminale

stringa

TERMINALE_PATH

La cartella da cui il terminale è in esecuzione

stringa

PERCORSO_DATI_TERMINALE

Cartella dove sono memorizzati i dati del terminale

stringa

PERCORSO DEI DATI DEL TERMINALE

Cartella condivisa di tutti i terminali client installati sul computer

stringa


Документация по MQL5: Проверка состояния / TerminalInfoString
Документация по MQL5: Проверка состояния / TerminalInfoString
  • www.mql5.com
Проверка состояния / TerminalInfoString - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Chi può aiutare a risolvere il problema https://www.mql5.com/ru/forum/160683/page833#comment_11584454?
 
Artyom Trishkin:

Grazie.

 
Seric29:
Chi può aiutare a risolvere il problema https://www.mql5.com/ru/forum/160683/page833#comment_11584454?

fare un esempio uno a uno dall'articolohttps://www.mql5.com/ru/articles/18

i codici dell'articolo funzionano al 100% in mt4, l'ho controllato a gennaio di quest'anno

In alternativa, avete un progetto compilato per una dll a 64 bit, il terminale MT4 è a 32 bit, dovete configurare e compilare il progetto per una .dll a 32 bit

Как за 10 минут написать DLL библиотеку для MQL5 и обмениваться данными?
Как за 10 минут написать DLL библиотеку для MQL5 и обмениваться данными?
  • www.mql5.com
Так уж сложилось, что сейчас мало кто из разработчиков помнит, как написать простую DLL библиотеку и в чем особенности связывания разнородных систем. Я постараюсь за 10 минут на примерах показать весь процесс создания простых DLL библиотек и раскрою некоторые технические детали нашей реализации связывания. Демонстрация будет на примере Visual...
 

Ciao, cari utenti del forum.

Puoi spiegare in quale caso il codice è scritto correttamente e in quale non correttamente e perché (vedi sotto)?

for (z=OrdersTotal()-1; z>=0; z --)
    {
      OrderSelect (z, SELECT_BY_POS);
      if (OrderSymbol()!=Symbol()) continue;
      if (OrderMagicNumber()!=MAGIC) continue;
      if(OrderType()==OP_BUY)  CloseBUY();
    }
for(int i=OrdersTotal()-1;i>=0;i--)
            {
            if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
            {
             if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
             {
             if(OrderType()==OP_BUY)  CloseBUY();
             }
            }
            }

Se possibile, in modo più dettagliato. Grazie.

 
novichok2018:

Salve, cari utenti del forum.

Puoi spiegare in quale caso il codice è scritto correttamente e in quale non correttamente e perché (vedi sotto)?

Se possibile, in modo più dettagliato. Grazie.

Anche il compilatore ti evidenzierà nel primo caso"il risultato di OrderSelect deve essere controllato" ;-)

Se cambiate per il primo if (!OrderSelect(...)) continuate; le opzioni sono identiche.

Nel primo il codice è visivamente lineare, nel secondo sembra una scala. Preferisco la prima variante, è più facile da leggere e in generale, la comparsa di schede logiche profonde {{{{ }}}} suggerisce che è il momento di cambiare qualcosa :-)

Motivazione: