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

 

È possibile fare una tabella in MT4 con una struttura come in Excel (+ e - collassa e dispiega i dati)? Se sì, dove posso leggerlo?


 

Ciao a tutti, sto imparando i codici. C'è un errore, non riesco a capire come risolverlo.


int CountTrades(int type, int magic)

{

int count=0;

for(int i=OrdersTotal()-1;i>=0;i-)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

{

if(OrderSymbol()==Symbol() && (OrderType()==type||type==-1) &&

(OrderMagicNumber()==magico||magico==-1))

count++;

}

}

ritorno (count);


Ho evidenziato ciò che manca.


Gli errori sono i seguenti:

"-" operando atteso

")" - token inaspettato

"i" - identificatore non dichiarato


È come se non gli piacesse che ho messo il meno dopo la i nel primo errore. Forse dovrei sillabarlo in qualche modo?

Ho fatto tutto lettera per lettera con il tutorial - ma il codice non si compila.

Ho bisogno del vostro aiuto.

 
Falx:

Ciao a tutti, sto imparando i codici. C'è un bug, non riesco a capire come risolverlo.

Due meno e nessuna staffa per chiudere la funzione.
 
Aleksey Vyazmikin:
Due meno e nessuna parentesi per chiudere la funzione.

Grazie mille! Tutto risolto! Funziona!

 

Ho dovuto confrontare i due datetime per ore, l'ho fatto in questo modo:

string TimeCompare = StringSubstr(TimeToString(MyLastNewsTime[i],TIME_DATE|TIME_MINUTES),0,13);
string TimeCompare1 = StringSubstr(TimeToString(MyLastNewsTime1[i],TIME_DATE|TIME_MINUTES),0,13);
if(TimeCompare != TimeCompare1)
...

Ha funzionato, ma forse questo non è il modo più corretto? Cosa hanno da dire i programmatori?

 
Nauris Zukas:

Ho dovuto confrontare i due datetime per ore, l'ho fatto in questo modo:

Ha funzionato, ma forse questo non è il modo più corretto? Cosa hanno da dire i programmatori?


if(TimeHour(MyLastNewsTime[i])!=TimeHour(MyLastNewsTime1[i]))
 {
 }
 
Nikolay Ivanov:

Forse non mi sono spiegato bene, ma devi trovare due date all'ora esatta (i minuti e i secondi non sono importanti). Hai solo un confronto per ore.

 
Nauris Zukas:

Forse non mi sono spiegato bene, ma bisogna trovare due date all'ora esatta (i minuti e i secondi non sono importanti).


avete bisogno di trovare delle date, o di confrontare l'ora di 2 date?

 
Nikolay Ivanov:

trovare le date, o confrontare l'ora di 2 date?

Devi trovare le date all'ora esatta (i minuti e i secondi non sono importanti).

 
Nikolay Ivanov:

devi trovare le date, o confrontare l'ora di 2 date?

CopyTime funzionerebbe meglio?

Da questa parte.

int  CopyTime(
   string           symbol_name,     // имя символа
   ENUM_TIMEFRAMES  timeframe,       // период PERIOD_H1
   datetime         start_time,      // с какой даты
   int              count,           // сколько копируем 1
   datetime         time_array[]     // массив для копирования времени открытия
   );

Tradurre il tempo in una stringa e confrontarlo non è una buona opzione.

CopyTime - Доступ к таймсериям и индикаторам - Справочник MQL4
CopyTime - Доступ к таймсериям и индикаторам - Справочник MQL4
  • docs.mql4.com
Функция получает в массив time_array исторические данные времени открытия баров для указанной пары символ-период в указанном количестве. Необходимо отметить, что отсчет элементов от стартовой позиции ведется от настоящего к прошлому, то есть стартовая позиция, равная 0, означает текущий бар. При копировании заранее неизвестного количества...