Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 144

 
DC2008:

Leggere attentamente:

Valore di ritorno

La funzione restituisce l'indice dell'elemento trovato, tenendo conto della serialità dell'array. Se fallisce, la funzione restituisce -1.

Pertanto, dovrebbe essere così:

1. Correggetemi se ho capito male.

Trovati tutti i minimi nell'intervallo:

double Low[];
CopyLow(_Symbol,_Period,tss,tspp,Low);

Poiché c'è un array con i minimi, usiamo la funzione ArrayMinimum per trovare solo il minimo dall'array, senza enumerare lo scarto nel tempo(tss,tspp)

double min= Low[ArrayMinimum(Low)];  
Alert("min=",min);

2. Nello script, ho messo il codice in una funzione:

void OnDeinit(const int reason)

tutti i parametri temporali sono mostrati correttamente, ma la variabile min=0.0, anche se quando le offerte erano in corso mostrava il minimo dell'intervallo specificato. Quale potrebbe essere il problema?

 
forexman77:

1. Correggetemi se ho capito male.

Abbiamo trovato tutti i minimi nell'intervallo:

Poiché c'è un array con i minimi, usiamo la funzione ArrayMinimum per trovare solo il minimo dall'array, senza enumerare lo scarto nel tempo(tss,tspp)

2. Nello script, il codice è inserito nella funzione:

tutti i parametri temporali sono mostrati correttamente, ma la variabile min=0.0, anche se quando le offerte erano in corso mostrava il minimo dell'intervallo specificato. Quale potrebbe essere il problema?

Nell'ambito della variabile. Rendilo globale.
Документация по MQL5: Основы языка / Переменные / Локальные переменные
Документация по MQL5: Основы языка / Переменные / Локальные переменные
  • www.mql5.com
Основы языка / Переменные / Локальные переменные - Документация по MQL5
 
zfs:
Nell'ambito della variabile. Rendilo globale.
Spostata la variabile "double min;" al globale ancora =0,0.
 
forexman77:
Spostata la variabile "double min;" al globale ancora =0.0

Script:

void OnStart()
  {
   double Low[];
   CopyLow(_Symbol,_Period,0,10,Low);
   double min=Low[ArrayMinimum(Low)];
   Alert("min=",min);
  }
Non ci sono OnInit e OnDeinit negli script.
 

Hai un errore nella tua documentazione https://www.mql5.com/ru/docs/constants/chartconstants/charts_samples

int ChartFirstVisibleBar(constlong chart_ID=0)
{
//--- preparare una variabile per ottenere il valore della proprietà
risultato lungo=-1;
//--- resettare il valore di errore
ResetLastError();
//--- ottenere il valore della proprietà
se(!ChartGetInteger(chart_ID,CHART_WINDOW_YD ISTANCE,0,result)) dovrebbe essere CHART_FIRST_VISIBLE_BAR
{
//--- stampare il messaggio di errore nel giornale "Esperti"
Print(__FUNCTION__+", Error Code = ",GetLastError());
}
//--- restituisce il valore della proprietà del grafico
return((int)risultato);
}

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Примеры работы с графиком
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Примеры работы с графиком
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Примеры работы с графиком - Документация по MQL5
 
DC2008:

Script:

Non ci sono OnInit e OnDeinit negli script.

Grazie mille!!!

Ha funzionato per me!!!

 

Per favore ditemi quali programmi usare per proteggere l'EA e per limitare il tempo di lavoro, per esempio ho bisogno di proteggere l'EA dalla decompilazione, quindi funziona solo per 5 giorni.

Ho bisogno di un programma dove posso limitare permanentemente il tempo di esecuzione dell'EA per dare l'EA ad altre persone per i test.

 

Nel testare un EA, ho incontrato la seguente difficoltà.

L'Expert Advisor non fa trading (deve farlo) se:

 if(Stop <=Start) { return;}

Durante i test, ho impostato i parametri Stop da 1 a 33, Start da 1 a 33.

Naturalmente, il tester produce circa 2/3 di risultati nulli perché Stop > Start nel tester si verifica a volte durante l'overshooting.

Questi test nulli richiedono molto tempo.

Domanda: Come possiamo disabilitare il test dei test nulli nel codice di Expert Advisor?

Logicamente, il tempo di prova dovrebbe essere ridotto dopo il divieto?

 
forexman77:

Nel testare un EA, ho incontrato la seguente difficoltà.

L'Expert Advisor non fa trading (deve farlo) se:

Durante i test, ho impostato i parametri Stop da 1 a 33, Start da 1 a 33.

Naturalmente, il tester produce circa 2/3 di risultati nulli perché Stop > Start nel tester si verifica a volte durante l'overshooting.

Questi test nulli richiedono molto tempo.

La domanda è come disabilitare i test null nel codice EA.

https://www.mql5.com/ru/docs/common/expertremove

Questo funziona nel tester. // Almeno funzionava nella build precedente all'ultima. È passato un po' di tempo da quando l'ho controllato.

Документация по MQL5: Общие функции / ExpertRemove
Документация по MQL5: Общие функции / ExpertRemove
  • www.mql5.com
Общие функции / ExpertRemove - Документация по MQL5
 
MetaDriver:

https://www.mql5.com/ru/docs/common/expertremove

Funziona nel tester. // almeno ha funzionato nella build precedente all'ultima. è passato un po' di tempo da quando ho controllato.

Ho bisogno di un passaggio di prova. L'EA non fa trading se:

if(Stop <=Start) { return;}

Voglio fare questo per ridurre il tempo dei test.

Forse c'è una funzione nel tester specifica per i parametri di ingresso per impostare gli stessi parametri dell'EA?

Se otteniamoStop <=Start, saltiamo questo passaggio.