Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 927

 
Seric29:

Voglio dire che se la condizione è vera, allora fate 2 azioni identiche, per esempio

Ho dichiarato delle variabili e non viene fatto nulla tranne questa azionePrezzo_UrNij = Bar_Cl[iHgCL]>Bar_Op[iHgOP] ? Bar_Cl[iHgCL]:Bar_Op[iHgOP]; o questa azionePrezzo_UrVerh = Bar_Cl[iLwCL]<Bar_Op[iLwOP] ? Bar_Cl[iLwCL]:Bar_Op[iLwOP]; come fargli eseguire 2 azioni identiche con entrambi i livelli superiore e inferiore per condizione. Qualcuno può suggerire come scriverlo in una forma più breve?

1. Tale codice è molto difficile da leggere.

          int iHgCL=iHighest(_Symbol,PERIOD_D1,MODE_CLOSE,4,qt+1); int iHgOP=iHighest(_Symbol,PERIOD_D1,MODE_OPEN,4,qt+1);

Difficilmente qualcuno cercherebbe una dichiarazione di variabile al di fuori dell'inizio di una linea.

2. Dovete solo chiamare la funzione di costruzione dei livelli due volte all'interno del blocco if

vs_Line_TR( Line_TR, iTime(_Symbol,PERIOD_D1,qt+2),  Price_UrNij, iTime(_Symbol,PERIOD_D1,qt), Price_UrNij, clrGreen, DRAW_LINE, 2, false, false);
vs_Line_TR( Line_TR, iTime(_Symbol,PERIOD_D1,qt+2),  Price_UrVerh, iTime(_Symbol,PERIOD_D1,qt), Price_UrVerh, clrGreen, DRAW_LINE, 2, false, false);
 

Qual è la differenza d'uso? Qual è la sfumatura?

MqlDateTime dt;
datetime time=TimeTradeServer(dt)

и

MqlDateTime tm;
TimeToStruct(TimeTradeServer(),tm);
 
Fast528:

Dimmi qual è la differenza d'uso, qual è la sfumatura?

Probabilmente non c'è alcuna differenza.

 
Alexey Viktorov:

Probabilmente non c'è alcuna differenza.

Immagino che il primo caso sia se volete usare la variabile tempo e la struttura, e il secondo caso siano solo i dati della struttura?

 
Fast528:

Immagino che il primo caso sia se volete usare la variabile tempo e la struttura, e il secondo caso siano solo i dati della struttura?

Non ho prestato attenzione alla variabile tempo.

A cosa serve? Dopo tutto, non costa nulla tradurre la struttura in tempo. Ma in questo caso non ci sarà memoria riservata per la variabile.

O se abbiamo bisogno solo del tempo senza divisione in parti, perché riservare la memoria alla struttura?

 
Alexey Viktorov:

Non ho prestato attenzione alla variabile tempo.

A cosa serve? Non costa nulla tradurre la struttura in tempo. Ma in questo caso non ci sarà memoria riservata per la variabile.

O se hai bisogno solo del tempo senza divisione, perché dovrei riservare la memoria per la struttura?

Ho bisogno che l'indicatore visualizzi le posizioni di entrata/uscita sul grafico e tracci una linea tra loro, per esempio, sul periodo di oggi meno 1 giorno, come si fa di solito in un indicatore o robot?

 

Esecuzione di un test.

Il programma apre il file in OnInit():

CFileTxt file;
int file_handle=file.Open("file_name.lic",FILE_READ);
if(file_handle==INVALID_HANDLE)
     {      
      return INIT_FAILED;
     }

Non solo non trova il file nella cartella, ma cancella anche un altro file nella cartella MQL5\Files dell'agente di test dopo il test. Ci sono due file in totale che vengono cancellati all'avvio.

Errore5004 su FileOpen().

Il problema è solo nel tester.

Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
Juer:

Esecuzione del test.

Il programma apre il file in OnInit():

Non solo non trova il file nella cartella, ma cancella anche un altro file nella cartella MQL5\Files dell'agente di test dopo il test. Ci sono due file in totale che vengono cancellati all'avvio.

Errore5004 su FileOpen().

Il problema è solo nel tester.

Le cartelle degli agenti sono state ripulite. Questo è corretto. Se hai bisogno di infilare un file precedentemente salvato, usa il riferimento al file salvato nella cartella condivisa.


Esempio dai miei codici:

//--- STEP 6
   if(m_file_txt.Open(InpFileName,FILE_WRITE|FILE_COMMON)==INVALID_HANDLE)
 
Vladimir Karputov:

Le cartelle degli agenti sono state ripulite. Questo è corretto. Se hai bisogno di infilare un file precedentemente salvato, usa il riferimento al file salvato nella cartella condivisa.


Un esempio dai miei codici:

Quale cartella condivisa? Non lo uso affatto. Inizio sempre in modalità portatile. Ho tutto nella cartella di installazione.

 
Juer:

Quale cartella condivisa? Non lo uso affatto. Io corro sempre in modalità portatile. Ho tutto nella cartella di installazione.

Cartella condivisa:FILE_COMMON. Cerca, leggi. Pensare.