Errori, bug, domande - pagina 2908

 

Se c'è un thread più appropriato per le domande sulla codebase, sposta la domanda lì. Questi "bug" sono troppo lunghi e probabilmente non letti con molta attenzione da MQ.

Un tale problema. Voglio pubblicare un modulo per MQL Wizard per generare segnali universali, cioè personalizzabili dall'utente e utilizzando indicatori arbitrari, piuttosto che il set limitato che viene fornito con la libreria standard. Ho allegato l'Expert Advisor generato utilizzando il nuovo modulo come codice mq5. Ma naturalmente, non ci sono segnali hardcoded nel modulo, perché l'intero punto del modulo è la personalizzazione. Di conseguenza, l'Expert Advisor non fa trading né viene verificato automaticamente.

Quali sono le opzioni per risolvere il problema?

 
Stanislav Korotky:

Se c'è un thread più appropriato per le domande sulla codebase, sposta la domanda lì. Questi "bug" sono troppo lunghi e probabilmente non letti con molta attenzione da MQ.

Un tale problema. Voglio pubblicare un modulo per MQL Wizard per generare segnali universali, cioè personalizzabili dall'utente e utilizzando indicatori arbitrari, piuttosto che il set limitato che viene fornito con la libreria standard. Ho allegato l'Expert Advisor generato utilizzando il nuovo modulo come codice mq5. Ma naturalmente, non ci sono segnali hardcoded nel modulo, perché l'intero punto del modulo è la personalizzazione. Di conseguenza, l'Expert Advisor non fa trading né viene verificato automaticamente.

Quali sono le opzioni per risolvere il problema?

Ho bypassato gli ordini di apertura EA a tempo, aprendo un ordine con SL e TP in OnInit. in mt4. Ho superato la convalida sei mesi fa.

Ho anche impostato la condizione: se è nel tester, apriamo un ordine, altrimenti lo saltiamo. La convalida viene eseguita nel tester.

 
Stanislav Korotky:

Se c'è un thread più appropriato per le domande sulla codebase, sposta la domanda lì. Questi "bug" sono troppo lunghi e probabilmente non letti con molta attenzione da MQ.

Un tale problema. Voglio pubblicare un modulo per MQL Wizard per generare segnali universali, cioè personalizzabili dall'utente e utilizzando indicatori arbitrari, piuttosto che il set limitato che viene fornito con la libreria standard. Ho allegato l'Expert Advisor generato utilizzando il nuovo modulo come codice mq5. Ma naturalmente, non ci sono segnali hardcoded nel modulo, perché l'intero punto del modulo è la personalizzazione. Di conseguenza, l'Expert Advisor non fa trading né viene verificato automaticamente.

Quali sono le opzioni per risolvere il problema?

Ho pensato che sarebbe stato possibile fare un wrapper di trigger usando la direttiva #property tester_set, ma si scopre che non imposta automaticamente questi parametri per default, ma aggiunge solo una voce di menu al tester per la selezione manuale.

 
Stanislav Korotky:

Ho pensato che sarebbe stato possibile fare un wrapper per il launcher usando la direttiva #property tester_set, ma si è scoperto che non imposta automaticamente questi parametri di default, ma aggiunge solo una voce di menu al tester per la selezione manuale.

Ho anche provato la direttiva #property tester_file "DefaultSettings.tpl". Il file specificato viene copiato nell'agente nella cartella principale, ma non viene applicato automaticamente (almeno in termini di impostazioni di Expert Advisor).

 
Aleksei Ostroborodov:
La valutazione del prodotto, il numero di voti e le recensioni non vengono visualizzati nel mercato, anche se sono presenti all'interno della descrizione https://www.mql5.com/en/market/
Grazie per la soluzione del caso specifico.
Ma che dire degli altri prodotti? Ho la stessa situazione con altri quattro EA. Devo postare un link ogni volta?
 

Il tester passa alla scheda "impostazioni" durante l'ottimizzazione EA ad ogni nuova esecuzione, nessun modo per controllare lo stato degli agenti, semplicemente corre via in un'altra scheda. L'ho notato oggi, attualmente la build 2697.

Distribuisce un numero non uniforme di compiti agli agenti locali e nessuno di essi viene eseguito



Qualche idea?

Как в MetaTrader 5 быстро разработать и отладить торговую стратегию
Как в MetaTrader 5 быстро разработать и отладить торговую стратегию
  • www.mql5.com
Скальперские автоматические системы по праву считаются вершиной алгоритмического трейдинга, но при этом они же являются и самыми сложными для написания кода. В этой статье мы покажем, как с помощью встроенных средств отладки и визуального тестирования строить стратегии, основанные на анализе поступающих тиков. Для выработки правил входа и...
 
Come posso ottenere il tick che era prima di un dato tempo attraverso CopyTicks?
 
fxsaber:
Come ottenere il tick che era prima di un dato tempo tramite CopyTicks?

Beh, se le barre massime della finestra sono illimitate,

probabilmente è qualcosa del genere:

MqlTick Prev_Tick(ulong t) {  // t - время в миллисекундах
   MqlTick ticks[];
   int bar =iBarShift(_Symbol,PERIOD_M1,t/1000); 
   if (bar>=0 && CopyTicksRange(_Symbol,ticks,COPY_TICKS_ALL,iTime(_Symbol,PERIOD_M1,bar)*1000,t)>0) 
      return ticks[ArraySize(ticks)-1];
   else {
      MqlTick tick;  // если до заданного времени нет тиков возвращаем пустой тик.
      return tick;
   }
}

controllato, ma non con pregiudizio.

Se si bypassano le barre(iBarShift), allora se il tempo cade in un fine settimana, trovare il tick più vicino può essere abbastanza costoso.


 
Nikolai Semko:

Se si fa a meno delle barre (iBarShift), può essere abbastanza costoso trovare il tick più vicino se l'ora cade in un fine settimana.

Sì, la spunta a destra è elementare, quella a sinistra è orribile.

 
fxsaber:

Sì, la spunta a destra è elementare, quella a sinistra è orribile.

Sì.
Quello che manca è che nella funzione

int  CopyTicks( 
   string           symbol_name,           // имя символа 
   MqlTick&         ticks_array[],         // массив для приёма тиков 
   uint             flags=COPY_TICKS_ALL,  // флаг, определяющий тип получаемых тиков 
   ulong            from=0,                // дата, начиная с которой запрашиваются тики 
   uint             count=0                // количество тиков, которые необходимо получить 
   );

il parametro count è int e quella funzione supporterebbe valori di conteggio negativi, cioè all'indietro.

Motivazione: