Errori, bug, domande - pagina 3047

 
Yury Lemeshev:
Buon pomeriggio. Aiuto. SymbolSelect eSymbolExist funzionano diversamente?

Print(SymbolSelect( "EURUSD",true)); Ottengo un errore - vero
Print(SymbolExist("EURUSD",false)); Ottengo un errore - 'true' - variabile attesa.

Leggere attentamente la documentazione:SymbolExist

bool  SymbolExist(
   const string  name,    // имя символа
   bool&   is_custom      // признак пользовательского символа
   );


Ecco come appare nel codice:

   Print(SymbolSelect("EURUSD",true));
   bool exist=false;
   Print(SymbolExist("EURUSD",exist));
Документация по MQL5: Получение рыночной информации / SymbolExist
Документация по MQL5: Получение рыночной информации / SymbolExist
  • www.mql5.com
SymbolExist - Получение рыночной информации - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vladimir Karputov:

Leggere attentamente la documentazione:SymbolExist


Ecco come appare nel codice:

Grazie, Vladimir

 

Domanda sull'inizializzazione degli indicatori da parte dell'Expert Advisor durante il test in modalità visiva.

Se inizializzo gli indicatori in OnInit() { } dell'Expert Advisor, allora nel tester visivo l'indicatore di solito non appare e non viene disegnato.

Allo stesso tempo, nel log si passa l'inizializzazione e si riceve l'handle. Si sente che nella modalità visiva il tester non ha tempo di fare qualcosa e l'indicatore non si attacca al grafico.

Se inizializzo gli indicatori in OnTick() { } dell'EA, il problema scompare, ma crea inutili scritture, controlli e così via.


Se decommento l'IndicatorInitialization() in OnTick e lo commento in OnInit, inizia a funzionare.

int  TicksTesterIndicatorHandle = INVALID_HANDLE;
bool InitComplite=false;
int OnInit()
  {
   IndicatorInitialization();
   return(INIT_SUCCEEDED);
  }

void OnDeinit(const int reason)
  {
   IndicatorRelease(TicksTesterIndicatorHandle);
  }

void OnTick()
  {
//if(!InitComplite)
//  {
//   IndicatorInitialization();
//  }
  }
//+------------------------------------------------------------------+
bool IndicatorInitialization()
  {
//---Получить хэндл индикатора TicksTesterIndicator
   TicksTesterIndicatorHandle=iCustom(NULL, _Period, "OnInit_TestIndicator");

//--- Нужно проверить, не были ли возвращены значения Invalid Handle
   if(TicksTesterIndicatorHandle<0)
     {
      Print("Ошибка при создании индикатора TicksTesterIndicator - номер ошибки: ",GetLastError(),"!!!");
      return(false);
     }
   else
     {
      Print("TicksTesterIndicator инициализирован, хэндл: ", TicksTesterIndicatorHandle);
      ArraySetAsSeries(Buf, true);
      InitComplite=true;
     }
   return(true);
  }
 

Continuazione della storiadei filemagici:

Dopo che MetaEditor si blocca e poi si riavvia - questo file è ora visualizzato come un insieme di testo rosso, ma lo stesso blocco note lo apre normalmente (rimosso inutilmente)

File:
main.txt  1 kb
 

Pomeriggio,

Android MT5/MT4: nella finestra di inserimento degli ordini i colori delle linee di tick sono confusi. Anche negli schemi di colore delle carte.

 

Ciao a tutti!

Impossibile superare l'errore [Prezzo non valido] quando si inserisce un ordine in sospeso. L'intero problema è che tali errori cadono sui controlli standard della pubblicazione EA. Non posso guardare i log di conseguenza per capire qual è il motivo. Non l'ho riprodotto nei miei test. Naturalmente, la complessità è che non so per quali parametri stia il simbolo nei controlli standard. Ho provato a usare il terminale MetaQuotes per giocarci. L'ordine si apre nello stesso posto, anche allo stesso prezzo e non c'è nessun errore. I prezzi sono normalizzati da CSymbolinfo::NormilizePrice(), ci sono controlli per StopsLevel, freeze level, per la correttezza dei prezzi degli ordini pendenti, aggiorno i dati dei prezzi con ogni controllo.

Rapporto dei controlli standard

Forse qualcuno conosce tutti i casi in cui un tale errore può verificarsi sugli ordini in sospeso? L'unico che mi viene in mente è

  • Prezzo non normalizzato
  • Prezzo sopra/sotto il prezzo di mercato per un certo tipo di ordine
  • Livello di congelamento (non sicuro)
Sarò felice per qualsiasi consiglio :)
 

Buongiorno.

È possibile fare un test cutoff per parametri nel tester?

Per esempio, se si raggiunge un drawdown del 40% su un test, questo si ferma e le risorse vanno a favore dei test successivi.

 
Dmitry Homenkov:

Ciao a tutti!

Impossibile superare l'errore [Prezzo non valido] quando si inserisce un ordine in sospeso. L'intero problema è che tali errori cadono sui controlli standard della pubblicazione EA. Non posso guardare i log di conseguenza per capire qual è il motivo. Non l'ho riprodotto nei miei test. Naturalmente, la complessità è che non so per quali parametri stia il simbolo nei controlli standard. Ho provato a usare il terminale MetaQuotes per giocarci. L'ordine si apre nello stesso posto, anche allo stesso prezzo e non c'è nessun errore. I prezzi sono normalizzati da CSymbolinfo::NormilizePrice(), ci sono controlli per StopsLevel, freeze level, per la correttezza dei prezzi degli ordini pendenti, aggiorno i dati dei prezzi con ogni controllo.


Forse qualcuno conosce tutti i casi in cui tale errore può verificarsi sugli ordini in sospeso? L'unico che mi viene in mente è

  • Prezzo non normalizzato
  • Prezzo sopra/sotto il prezzo di mercato per un certo tipo di ordine
  • Livello di congelamento (non sicuro)
Sarò felice di ricevere qualsiasi consiglio :)

Articolo: Quali test deve superare un robot di trading prima di essere pubblicato nel Marketplace?

Какие проверки должен пройти торговый робот перед публикацией в Маркете
Какие проверки должен пройти торговый робот перед публикацией в Маркете
  • www.mql5.com
Все продукты Маркета перед публикацией проходят обязательную предварительную проверку для обеспечения единого стандарта качества. В этой статье мы расскажем о наиболее частых ошибках, которые допускают разработчики в своих технических индикаторах и торговых роботах. А также покажем как самостоятельно проверить свой продукт перед отправкой в Маркет.
 
Yury Lemeshev:

È possibile fare un test cutoff per parametri nel tester?

Per esempio, se viene raggiunto un drawdown del 40% su un test, questo si ferma e le risorse vengono utilizzate per i test successivi.

Questo è possibile per i tuoi EA: devi contare il criterio di uscita all'interno (se è pesante - in OnTimer), raggiunta la soglia - TesterStop()/ExpertRemove().

 

Qualcosa di non necessario.

Motivazione: