Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 514

 
Karputov Vladimir:

Снова нет конкретики. Ладно: пальцем в небо - DebugBreak.

Применять примерно так:

Karputov Vladimir
:

Di nuovo, nessun dettaglio. OK: dito nel cielo -DebugBreak.

Applica in questo modo:

OK, Cosa ti serve per i dettagli? Ho scritto un po' prima.

Il punto è questo:

vengono aperti due ordini pendenti.

Uno di essi sarà eseguito, e l'altro sarà cancellato perché non è necessario.

Anche il primo si chiuderà dopo un po' (più o meno).

L'idea è quella di tornare al punto di partenza. E tutto dovrebbe ripetersi.

Ma no.

Prima di tutto questo processo ho messo:

   b1 = OrdersTotal();                                      //количество ордеров               
   c1 = PositionSelect(_Symbol);                            //наличие позиции

Se entrambi sono zero, eseguiamo il circuito, altrimenti no.

Nel debug, ho messo questi due punti nell'osservazione. Entrambi sono 0. Ma al secondo turno viene piazzato solo un ordine.

Perché è così?

 
kashi_ann:

OK, di cosa hai bisogno per i dettagli? Ho scritto prima.

Ecco l'idea:

Sono aperti 2 ordini pendenti.

Uno viene eseguito, l'altro viene cancellato quando non è necessario.

Anche il primo si chiuderà dopo un po' (più o meno).

L'idea è quella di tornare al punto di partenza. E tutto dovrebbe ripetersi.

Ma non è così.

...

La tua logica, devi rispondere tu stesso alla domanda.

kashi_ann:

...

Nel debug, ho messo questi due elementi nell'osservazione. Sono entrambi 0. Ma al secondo turno, viene fatto un solo ordine.

Perché è così?

Di nuovo, solo tu puoi rispondere, dato che la logica è tua.

In generale, vorrei ripeterlo ancora una volta: una domanda formulata correttamente contiene il 90% della risposta. Quindi, per favore, mettete dei punti di interruzione prima del punto del vostro codice in cui agite con la posizione. E poi il debugging passo dopo passo.

 
toni_stark:
Ciao, Potresti suggerire il codice che esegue l'azione all'inizio di un nuovo giorno (00.00), o in altre parole, come visualizzare la condizione "Se c'è un nuovo giorno (00.00)" in MQL?

Ci sono due linguaggi mql.

L'algoritmo è il seguente:

Ricorda il tempo della candela precedente su TF D1 in una variabile statica e confrontalo con il tempo della candela attuale sullo stesso TF. Se l'ora è cambiata, allora esegui l'azione e ricorda l'ora di una nuova candela nella stessa variabile.

 
La variabile statica è presente in MQL4?
 
toni_stark:
Ciao, Potresti dirmi il codice che farà sì che l'EA esegua qualche azione all'inizio di un nuovo giorno, cioè 00.00, o in altre parole, come visualizzare la condizione "Se è un nuovo giorno (00.00)" in MQL?

In alternativa

if (StatTime==1)

 Time=iTime(NULL,1440,0);

 StatTime=0;

 }

       if(Time!=iTime(NULL,1440,0))

           {

  StatTime=1;

           } 

 
-Aleks-:

In alternativa

if (StatTime==1)

 Time=iTime(NULL,1440,0);

 StatTime=0;

 }

       if(Time!=iTime(NULL,1440,0))

           {

  StatTime==1;

           } 

Non è del tutto chiaro che tipo di variabile StatTime sia?
 
toni_stark:
Non è molto chiaro che tipo di variabile StatTime sia?

datetimeTempo

intStatTime

C'era un errore nel codice: nonStatTime==1; maStatTime=1;

       if(Time!=iTime(NULL,1440,0))

           {

  StatTime=1;

           }  

 
Karputov Vladimir:

La tua logica, dovresti rispondere tu stesso alla domanda.

Di nuovo, solo tu puoi rispondere, perché la logica è tua.

In generale, lo ripeto ancora una volta: una domanda posta correttamente contiene il 90% della risposta. In generale, mettete i punti di rottura prima del punto del codice in cui agite con la posizione. E dopo si fa il debugging passo dopo passo.

Sì, quindi è solo una questione di logica. Ero più preoccupato che oltre all'ordine delle azioni, devo anche tenere conto del tempo di aggiornamento dei dati sul server.

Ho usato ibreakpoint, ovviamente.

Credo che dovrò riscrivere tutto, sembra un'assurdità.
 
C'è qualcuno qui da Ufa?
 

2016.02.15_14:27 GMT+3. Ciao, domanda per i moderatori. Sto allegando

screenshot. Impossibile ottenere i dati del buffer dell'indicatore di ZigZag. Su

Posso vedere nello screenshot che la cartella "indicators" è nel percorso del file. Infatti

C'è effettivamente una cartella "Indicatori" nel terminale. Probabilmente a causa di questa discrepanza e

Non riesco ad aprire il file ZigZag.mq4.
E i dati della media mobile e degli indicatori frattali come entrare negli array, non

solo gli ultimi valori? Qualche consiglio. Questo è tutto per ora. In attesa di una risposta. 14:36 GMT+3. 15:25 GMT+3.

Scritto in programmazione procedurale.