Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 77

 
FinEngineer: 2012.12.22 11:40:32 Pair_delta_RSI (EURGBP,M1) array out of range in 'Pair_delta_RSI.mq5' (92,37)
risulta che appare anche questo errore... cioè ci sono due errori...
Inoltre, siete preoccupati per due errori: "dati calcolati insufficienti" e "matrice fuori portata".) Ma per qualche motivo non hai scritto nulla sul secondo errore (non hai dato un codice di esempio con la linea 92), anche se l'hai sottolineato diverse volte.
 
Yedelkin:

Inserire il codice correttamente.

Lì funzionava bene, quel "pezzo di codice che è responsabile dei dati insufficienti". E correttamente segnalato che quando il primo tick arriva, i dati per RSI non è ancora calcolato dal terminale. Se non vi piace ricevere messaggi di errore, provate a fare come sopra, cioè a controllare i dati calcolati non solo in OnCalculate(), ma anche in OnInit(). In altre parole, provate ad aspettare il calcolo dei dati per gli indicatori tecnici selezionati in OnInit() e poi passate all'elaborazione dei tick in OnCalculate() quando è garantito il calcolo dei dati per gli indicatori.

Aggiungendo. Dopo tutto, la rimozione di una parte del codice di controllo non aumenta la quantità di dati calcolati dell'indicatore :)

Ho inserito questo controllo nella funzione OnInit, ma in questa funzione non sappiamo cosa sia 'rates_total'... Appare l'errore...'rates_total' - identificatore non dichiarato... Cosa fare?
 
Yedelkin:
Siete anche preoccupati per due errori: "dati calcolati insufficienti" e "matrice fuori portata". Ma per qualche motivo non hai scritto nulla sul secondo errore (non hai dato un esempio di codice con la linea 92), anche se l'hai sottolineato diverse volte.
int limit;
   if(prev_calculated==0)
      limit=0;
   else limit=prev_calculated-1;
//считаем индикатор дельта рси
   for(int i=limit;i<rates_total; i++)
      DeltaRSI_Buffer[i]=RSI1_Buffer[i]-RSI2_Buffer[i];
   return(rates_total);
Ecco la linea 92 da qualche parte qui intorno...ecco un frammento di codice...ci deve essere un errore da qualche parte)
 
FinEngineer: Ho inserito questo controllo nella funzione OnInit, ma in questa funzione non sappiamo cosa sia 'rates_total'... esce l'errore...'rates_total' - identificatore non dichiarato... cosa fare?
Avete gestito l'esempio della funzione BarsCalculated() come consigliato in precedenza? Non c'è nessun tasso_totale
 
FinEngineer da qualche parte qui intorno alla linea 92... ecco un pezzo di codice... c'è un errore da qualche parte... si scopre)

Capisco. Sulla linea

DeltaRSI_Buffer[i]=RSI1_Buffer[i]-RSI2_Buffer[i];
c'è un'uscita fuori dalla matrice. E l'output è in RSI1_Buffer[i]. ...È difficile rispondere ancora, non ci dovrebbe essere nessun output fuori dall'array.
 
Ciao a tutti ...chi può dirmi come sarebbe il seguente codice in mql5:
per (int i=3; i<Bars; i++)
{
Up=iFractals(NULL, 0, MODE_UPPER, i); if (Up>0) break;
}
 
i999i:
Ciao a tutti ...chi può dirmi come sarebbe il seguente codice in mql5:
per (int i=3; i<Bars; i++)
{
Up=iFractals(NULL, 0, MODE_UPPER, i); if (Up>0) break;
}

Questo articolo è per aiutare.

Cambia il doppio iFractals(string symbol, int timeframe, int mode, int shift) in quattro a

double iFractalsMQL4(string symbol,
                     int tf,
                     int mode,
                     int shift)
  {
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   int handle=iFractals(symbol,timeframe);
   if(handle<0)
     {
      Print("Объект iFractals не создан: Ошибка ",GetLastError());
      return(-1);
     }
   else
      return(CopyBufferMQL4(handle,mode-1,shift));
  }

 
Domanda su strategy tester: ho bisogno di selezionare un set di parametri con la percentuale massima di operazioni redditizie - come faccio? Il criterio di ottimizzazione "Equilibrio + min DD" sembra essere più o meno adatto, ma il profitto come moltiplicatore blocca tutto il resto...
 
f2011:
Domanda su strategy tester: ho bisogno di selezionare un set di parametri con la percentuale massima di operazioni redditizie - come posso farlo? Penso che "Balance + min DD" sia più o meno adatto come criterio di ottimizzazione, ma il profitto come moltiplicatore annulla tutto il resto...

Che cosa ha a che fare questo con il saldo e la percentuale di operazioni di profitto?

Penso che ci fosse un articolo, google "Come creare i propri criteri per ottimizzare un robot di trading sito:mql5.com".

 
R0MAN:

Che cosa ha a che fare questo con il saldo e la percentuale di operazioni di profitto?

Penso che ci fosse un articolo, google "Come fare i tuoi criteri di ottimizzazione per un robot di trading sito:mql5.com".


Trovato, grazie.

https://www.mql5.com/ru/articles/286

Создание собственных критериев оптимизации параметров эксперта
Создание собственных критериев оптимизации параметров эксперта
  • 2011.06.24
  • Dmitriy Skub
  • www.mql5.com
Терминал МetaTrader 5 дает новые возможности для оптимизации параметров создаваемых экспертов. Кроме уже имеющихся в тестере критериев оптимизации, разработчики получили инструмент для создания собственных критериев. Это открывает поистине безграничные возможности в тестировании и оптимизации экспертов. В статье рассматриваются практические способы построения таких критериев - как простых, так и достаточно сложных.