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

 
novichok2018 #:

Non solo. Vede chiaramente la posizione aperta (manualmente), i suoi arresti e quando è chiusa. È come se fosse un commercio.

L'Expert Advisor lavora con il server di trading, e tutti i cambiamenti negli ordini sono richiesti sul server.

In parole povere: avete aperto una posizione manualmente, l'Expert Advisor su un nuovo tick o dal timer ha chiesto al server lo stato del conto, ha ottenuto la risposta dal server che l'ordine è aperto, e poi ha inviato un messaggio all'host.

 
Tretyakov Rostyslav #:

L'Expert Advisor lavora con il server di trading e tutti i cambiamenti negli ordini sono richiesti sul server.

In parole povere: hai aperto un trade manualmente, l'Expert Advisor su un nuovo tick o timer chiede al server lo stato del conto, ottiene una risposta dal server che il trade è aperto e poi invia un messaggio all'host.

Se questo è il caso, allora il master dell'EA vede altri trade aperti su altri simboli diversi dal suo, o meglio i cambiamenti nel conto causati da essi, mentre dovrebbe vedere solo i trade sul suo simbolo.

 
novichok2018 #:

Se questo è il caso, allora il proprietario dell'EA vede altri trade aperti non sul suo simbolo, o meglio i cambiamenti di conto causati da essi, mentre dovrebbe vedere solo i trade sul suo simbolo.

Se non c'è una richiesta per il suo simbolo, ad esempio if(OrderSymbol()=="EURUSD")

allora vede tutti i mestieri.

 
Tretyakov Rostyslav #:

Se il suo EA non chiede un simbolo come if(OrderSymbol()=="EURUSD")

allora vede tutti i mestieri.

Tuttavia, è possibile aggiungere nel codice, in modo che l'EA apra una posizione (o la rifletta) non sul grafico in cui si trova, ma usando lo stesso simbolo, ma su un altro? O non è possibile in linea di principio?

 
novichok2018 #:

Quindi, è possibile specificare nel codice che l'EA apre una posizione (o la riflette) non sul grafico dove è impostata, ma sullo stesso simbolo, ma su un grafico diverso? O non è possibile in linea di principio?

Qualsiasi richiesta per lo stato del conto o del commercio va nella griglia, dove non ci sono condizioni e tempi. La risposta alla sua domanda: non è possibile.

 
novichok2018 #:

Quindi, è possibile specificare nel codice che l'EA apre una posizione (o la riflette) non sul grafico dove è impostata, ma sullo stesso simbolo, ma su un grafico diverso? O non è possibile in linea di principio?

Volete che l'EA #2 veda tutte le posizioni aperte dall'EA #1, giusto?

Beh, è facile.

 
Alekseu Fedotov #:

Vuoi che l'EA #2 (diciamo) veda tutte le posizioni aperte dall'EA #1, giusto?

Beh, è facile.

Vuole che il monitor non veda da nessuna parte che interferisce con il trading EA.

 

Alexey Viktorov #:

  HideTestIndicators(true); 
   MaCurrent=iMA(NULL,0,56,0,MODE_EMA,PRICE_CLOSE,0); 
   MaPrevious=iMA(NULL,0,56,0,MODE_EMA,PRICE_CLOSE,1); 
   HideTestIndicators(false);



Grazie per la risposta precedente, ma ora un altro problema. Quando si testa per più di un anno la memoria si esaurisce. Il tester scrive "Canale_1" esaurire la memoria. Inoltre, "Canale_1" : non inizializzato. Questi messaggi appaiono dopo aver testato per un anno o più su 3 computer. L'indicatore (Canale_1) è collegato tramite una risorsa. Non ha fatto alcuna allocazione di memoria dinamica tramite new. L'intero problema è apparso dopo le modifiche descritte nel post precedente. Ho iniziato a fare un ciclo attraverso l'indicatore collegato e ogni volta che cambio il parametro intu (periodo) in esso.

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2022.02.05
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 
Aleksandr Kononov #:

Grazie per la risposta precedente, ma ora un altro problema. Quando si testa per più di un anno la memoria si esaurisce. Il tester scrive "Canale_1" esaurire la memoria. Inoltre, "Canale_1" : non inizializzato. Questi messaggi appaiono dopo aver testato per un anno o più su 3 computer. L'indicatore (Canale_1) è collegato tramite una risorsa. Non ha fatto alcuna allocazione di memoria dinamica tramite new. L'intero problema è apparso dopo le modifiche descritte nel post precedente. Ho iniziato a fare il loop dell'indicatore e ogni volta che cambio il suo parametro intuitivo (periodo).

Forse è questo il problema? Prova a cancellare periodicamente la risorsa

bool  ResourceFree( 
   const string  resource_name      // имя ресурса 
   );

Ma poi bisogna crearlo dinamicamente.

bool  ResourceCreate( 
   const string      resource_name,       // имя ресурса 
   const string      path                 // относительный путь к файлу 
   );

Cioè, prima cancellare la risorsa, poi ricrearla. L'unico problema è che non so come funzionerà. O se funzionerà affatto. Dovremo provare...

 
Alekseu Fedotov #:

Vuoi che l'EA #2 (diciamo) veda tutte le posizioni aperte dall'EA #1, giusto?

Beh, è facile.

Sì, esattamente: che l'EA #2, vedrebbe tutte le posizioni aperte dall'EA #1. Solo se fosse facile per me, non chiederei aiuto.

Finora, vedo la seguente soluzione: scrivere un indicatore che crei un oggetto "punto" con le coordinate della posizione aperta dall'EA #1 e metterlo su un grafico con EA #2 installato.

Se la mia logica è corretta, ho ancora bisogno di aiuto per scrivere questo indicatore.