Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 994

 
Kolya32:
Grazie anche a te. Anche questo funziona)

Anch'io voglio ringraziarti :)))

Questo

double Candle = (iClose(_Symbol,PERIOD_H1,1) - iOpen(_Symbol,PERIOD_H1,1)) / _Point;
if(Candle < 0){Candle = Candle * -1;}
string Candle2 =  DoubleToString(Candle, 0);
int Candle3 = StringToInteger(Candle2);

può essere sostituito con questo e funzionerà allo stesso modo.

int Candle = (int)fabs((iClose(_Symbol,PERIOD_H1,1) - iOpen(_Symbol,PERIOD_H1,1)) / _Point);
Документация по MQL5: Математические функции / MathAbs
Документация по MQL5: Математические функции / MathAbs
  • www.mql5.com
Математические функции / MathAbs - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 


Buona giornata. Domanda. Come posso associare i dati in tick alle barre timeframe? Qui sotto c'è una parte del codice. Cambia il colore del buffer. L'ho capito

con i colori, ma non è chiaro come collegare qui...? Ho qualche idea sulla struttura di MqlRates, ma non è chiaro quale valore prendere...? Ho visto come funziona (esempio nella documentazione), ma il valore salta e non è chiaro perché

//--- Подготовка данных
   int count=(limit>1 ? rates_total : 2),copied=0;
   copied=CopyBuffer(handle_ma,0,0,count,BufferPrice);
   if(copied!=count) return 0;
//----   
   for(int i=limit; i>=0 && !IsStopped(); i--)
     {
      bp=NormalizeDouble(BufferPrice[i],_Digits);
//--- High signal
   if(bp>iOpen(NULL,PERIOD_CURRENT,i) && bp<iClose(NULL,PERIOD_CURRENT,i))
     {
      ExtOpenBuffer[i]=open[i];
      ExtHighBuffer[i]=high[i];
      ExtLowBuffer[i]=low[i];
      ExtCloseBuffer[i]=close[i];
      ExtColorsBuffer[i]=1;   / уфер изменения цвета
     }
//--- Low signal
   if(bp<iOpen(NULL,PERIOD_CURRENT,i) && bp>iClose(NULL,PERIOD_CURRENT,i))
     {
      ExtOpenBuffer[i]=open[i];
      ExtHighBuffer[i]=high[i];
      ExtLowBuffer[i]=low[i];
      ExtCloseBuffer[i]=close[i];
      ExtColorsBuffer[i]=2;
     }
     }
 
Alexey Viktorov:

Anch'io voglio ringraziarti :)))

int Candle = (int)fabs((iClose(_Symbol,PERIOD_H1,1) - iOpen(_Symbol,PERIOD_H1,1)) / _Point);
Grazie anche a te. Non ho provato questo design, ma credetemi sulla parola, funziona)
 
Kolya32:
Grazie anche a te. Non ho provato questo design, ma ti prendo in parola che funziona).

Non avresti dovuto provarci. Era uno scherzo di ringraziamento, ma il codice è serio. Perché convertire il doppio in int tramite stringa quando c'è una funzione di valore assoluto...

 
kopeyka2:


Buona giornata. È sorta una domanda. Come collegare i dati tick alle barre timeframe. Di seguito una parte del codice. Sta cambiando il colore del buffer. L'ho capito

con i colori, ma non è chiaro come collegare qui...? Ho qualche idea sulla struttura di MqlRates, ma non è chiaro quale valore prendere...? Ho visto come funziona (esempio nella documentazione), ma il suo valore salta e non capisco perché.

Non si controlla ciò che viene ricevuto in

if(bp>iOpen(NULL,PERIOD_CURRENT,i) && bp<iClose(NULL,PERIOD_CURRENT,i))
if(bp<iOpen(NULL,PERIOD_CURRENT,i) && bp>iClose(NULL,PERIOD_CURRENT,i))

Le funzioni restituiscono 0 in caso di errore. La vostra logica funzionerà anche in caso di dati errati da iOpen() nel primo caso e iClose() nel secondo.

Per ricevere i dati dei tick in mql5 c'è la struttura MqlTick e la funzione CopyTicks(), in cui si possono ottenere i dati del numero necessario degli ultimi tick nella struttura. Poi, per collegarlo con una barra del timeframe, è necessario ottenere il numero della barra per il tempo di tick. iBarShift() e il campo della struttura tick.time

 
Artyom Trishkin:

Non si controlla ciò che si riceve in

Le funzioni restituiscono 0 in caso di errore. La vostra logica funzionerà anche in caso di dati di errore da iOpen() nel primo caso e iClose() nel secondo caso.

Per ottenere i dati dei tick in mql5, c'è una struttura MqlTick e la funzione CopyTicks(), in cui è possibile ottenere i dati per il numero necessario di ultimi tick nella struttura. Poi, per collegarlo con una barra del timeframe, è necessario ottenere il numero della barra per il tempo di tick. iBarShift() e il campo della struttura tick.time

Grazie. La difficoltà qui (nella mia domanda) è che le candele sono ombreggiate dai tick. È più facile con la barra dell'orizzonte temporale. Ma... Ed è per questo che sono di nuovo qui))))
 
kopeyka2:
Grazie. La difficoltà qui (nella mia domanda) è che le candele sono dipinte con le zecche. È più facile con la barra dell'orizzonte temporale. Ma... Ed è per questo che sono di nuovo qui))))

Per favore. Lì (nella tua domanda) non capisco niente...

 
Artyom Trishkin:

Per favore. Non capisco niente qui (nella tua domanda)...

Credo di aver trovato un simile 3LineBreak https://www.mql5.com/ru/code/485
 
Signori, non riesco a capire dove sia il parametro numero continuo di trade perdenti nel tester di mt5 o devo prescriverlo al robot? mt4 ce l'ha e non riesco a trovare come implementarlo.
File:
l9rnznuztu.jpg  73 kb
 
freelancerAntonyan:
Signori, non riesco a capire dove sia il parametro numero continuo di trade perdenti nel tester di mt5 o deve essere prescritto nel robot? mt4 ce l'ha. Non riesco a trovare come implementarlo.

Puoi fare i conti da solo, scegliendo nei criteri personalizzati.