Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 629

 
TarasBY:
Qualsiasi compito può essere risolto in diversi modi. Sesto anno sul mercato, ma mai avuto la necessità di cambiare Magik (anche nei giorni della "gioventù verde").
Ci sono tutti i tipi di cose. Per esempio, se la gestione delle posizioni deve essere trasferita a un altro EA.
 
tara:
Ci sono tutti i tipi di cose. Per esempio, se la gestione della posizione deve essere trasferita a un altro consulente.
Beh, se l'altro consigliere è anche il suo, allora puoi alimentarlo con qualsiasi mago aggiuntivo.
 
tara:
Ci sono tutti i tipi di cose. Per esempio, se la gestione delle posizioni deve essere trasferita a un altro EA.
Divido un EA in due parti: analitica e di trading. La parte analitica è unica per ogni EA, ma la parte amministrativa è la stessa per tutti (forse non tutte le funzioni amministrative sono coinvolte in ogni EA). E non ho bisogno di trasferire gli ordini tra gli EA.
 

Ho rovistato nell'aiuto e cercato nel sito, ma non ho trovato nessun esempio di come usare la funzione MessageBox. Si prega di avvisare:

1. È possibile cambiare la posizione della finestra visualizzata da MessageBox?

2. Posso cambiare i nomi dei pulsanti, per esempio da "Ok" e "Cancel" a "aha" e "no way"?

3. cosa fanno i flag MB_DEFBUTTON in questa funzione - di quali pulsanti stiamo parlando e a cosa serve?

 

Buon giorno (o notte).

Per favore consigliatemi, se metto in loop il codice (for o while, qualsiasi cosa), e metto nel loop il codice per ottenere il valore di uno degli indicatori (o il prezzo in una variabile), funzionerà?

La variabile, che si trova nel ciclo, riceverà i suoi valori ad un nuovo tick, perché la procedura è in loop?

 
culler:

Buon giorno (o notte).

Per favore consigliatemi, se metto in loop il codice (for o while, qualsiasi cosa), e metto nel loop il codice per ottenere il valore di uno degli indicatori (o il prezzo in una variabile), funzionerà?

La variabile situata nel ciclo riceverà sempre un valore ad un nuovo tick, perché la procedura è in loop?

In un tale ciclo, prima ad esempio di ottenere il prezzo Ask (o qualcos'altro che viene con il tick), mettete RefreshRates() prima di questa azione per richiedere il valore Ask corrente, non il vecchio valore Ask che veniva con il tick che ha iniziato il ciclo. Se si richiede il valore dell'indicatore all'interno del ciclo, il valore attuale dovrebbe essere corretto.

Per essere sicuri al 100%, fate un semplice Expert Advisor con il vostro ciclo e visualizzate le informazioni sul grafico attraverso Comment(), e vedrete immediatamente se i valori sono corretti nel ciclo.
 
paladin80:

In un tale ciclo, prima di ottenere, per esempio, il prezzo Ask (o qualcos'altro che viene con il tick), mettete RefreshRates() prima di questa azione per richiedere il valore Ask attuale, non il vecchio valore Ask che veniva con il tick che ha iniziato il ciclo. Se all'interno del ciclo si richiede il valore dell'indicatore, si dovrebbe ottenere il valore corrente corretto.

Per essere sicuri al 100%, fate un semplice Expert Advisor con il ciclo e visualizzate le informazioni sul grafico attraverso Comment() e vedrete immediatamente se i valori ottenuti nel ciclo sono corretti.


Grazie.
Quindi, funzionerà. Questo è buono.

A proposito, è corretto usare questo approccio in un ciclo, o è perverso?

Ho notato che a causa di un tale ciclo MT4 si blocca completamente.

 
culler:


A proposito, è questo il giusto approccio al ciclo o è un po' perverso?

Ho notato che a causa di questo ciclo, MT4 si blocca completamente.


E ci sono amanti della perversione. Intendo il looping.
 
Ciao a tutti. Puoi dirmi come testare un EA a 0 spread. Forse qualcosa deve essere prescritto nel codice.
 
culler:


Grazie.
Quindi funzionerà. È fantastico.

A proposito, questo approccio al ciclo è corretto o è un po' perverso?

Ho notato che il ciclo fa sì che MT4 si blocchi completamente.


Dall'aiuto"Ogni script e ogni esperto lavora in un proprio thread separato. "

"Uno script in loop o un Expert Advisor non può interrompere il lavoro di altri programmi".

cioè si può usare il looping.

Sto usando uno script e un tale modello per questi compiti:

void OnStart()
  {
   while(!IsStopped()) // пока скрипт не удалён с графика
     {
      bool is_new_tick=RefreshRates();
      // если true значит пришли новые котировки
      if(is_new_tick)
        {
         // код который необходимо выполнять при новых котировках
        }
      //остальной код
      Sleep(100);
     }
  }