Errori, bug, domande - pagina 134

 
EQU:

Seduto... Guardare...

Non crederò mai che MQL5 e MQL4 siano stati scritti dallo stesso team.((((

MQ4 - volare...

MQ5 è un gioco da ragazzi. Senza offesa - ma...((((


Quanto tempo è passato dal rilascio di MT4? Tra 2 anni e MT5 sarà considerato un "sistema di trading perfetto"...
 
Dmitriy2:

Non ho visto questo thread... stessa cosa...

Il fatto è che non ho intenzione di fare stupidamente controlli su ogni linea per tutte le occasioni confondendo e ingombrando il codice. Se questo è fuori questione allora... si aggiungono le stampelle, un progetto piuttosto grande è finalmente completamente rifatto e funzionante...

E in generale, sono solo stupito di questo approccio... Si scopre che non è la prima volta che si pone una tale domanda (e sono sicuro che più di una volta in futuro si presenterà in altre persone), e ogni volta "per la prima volta" a spendere un sacco di tempo di lavoro tuo e di altri per spiegare che cosa è necessario fare per bypassare questo bug ...

L'unica cosa da fare è aggiungere in TESTER che raccomandato in quel thread solo UN sonno (1000) all'inizio di Expert Advisor.

Non deve essere tale che la shell implichi dei glitch, e questi glitch devono essere evitati nel codice. E il TERMINALE funziona bene e correttamente, non ci sono ERRORI (in questa situazione). Ma il funzionamento del tester è DIVERSO da quello del terminale.

ps EQU ciao:)

Ancora una volta, lo ripeto. Abbiamo raccomandato in anticipo come lavorare con gli indicatori, lo abbiamo descritto nella documentazione (qualcuno semplicemente non legge la documentazione).

Subito dopo aver creato una maniglia dell'indicatore, non ci sono ancora dati. Devono essere calcolati in un altro thread. Il fatto di ottenere immediatamente i dati nel terminale del cliente, consideratelo una fortuna. Ancora una volta si può non ottenere i dati.

Il tester è più deterministico del terminale - lì tutto è molto più sincrono. E subito dopo aver creato una maniglia non otterrete mai dei dati. In questo caso "mai" è equivalente a "qualche volta". Per "qualche volta" è ancora necessario organizzare un qualche tipo di controllo. Quindi mettete un anello di controllo con uno slittamento. E tutto sarà come nella vita.

PS Beh, non creare un nuovo handle ad ogni iterazione - è sbagliato da qualsiasi punto di vista.

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

Ancora una volta, lo ripeto. Abbiamo raccomandato in anticipo come devono essere gestiti gli indicatori e lo abbiamo descritto nella documentazione (qualcuno semplicemente non legge la documentazione).

Subito dopo la creazione della maniglia dell'indicatore, non ci sono ancora dati. Devono essere calcolati in un altro thread. Il fatto di ottenere immediatamente i dati nel terminale del cliente, consideratelo una fortuna. Ancora una volta si può non ottenere i dati.

Il tester è più deterministico del terminale - lì tutto è molto più sincrono. E subito dopo aver creato una maniglia non otterrete mai dei dati. In questo caso "mai" è equivalente a "qualche volta". Per "qualche volta" è ancora necessario organizzare un qualche tipo di controllo. Quindi mettete un anello di controllo con uno slittamento. E tutto sarà come nella vita.

PS Beh, non dovresti creare un nuovo handle ad ogni iterazione - è sbagliato da qualsiasi punto di vista.

Allora abbiamo bisogno di due funzioni (tempo extra...). Questo tiene conto del fatto che i dati dell'indicatore nel codice sono sempre diversi. Andrà bene?

   if(ХендлПараболик(ТФОткрытияпоSAR,SAR_stepОткрытияпоSAR,SAR_maximumОткрытияпоSAR,2)==true)
      ЗначениеПараболик=Параболик(ТФОткрытияпоSAR,SAR_stepОткрытияпоSAR,SAR_maximumОткрытияпоSAR,1);

//+----------------------------------------------------------------------------+
//Функция создания и проверки хендла Parabolic SAR                    MQL5     |
//+----------------------------------------------------------------------------+
bool ХендлПараболик(ENUM_TIMEFRAMES период,double step,double maximum,int бар)
  {
   Parabolic=iSAR(СИМВОЛ,период,step,maximum);
   for(int i=0;i<100;i=i+1)
     {
      if(BarsCalculated(Parabolic)>бар)
         return(true);
      Sleep(50);
     }
   return(false);
  }
//+------------------------------------------------------------------+


//+----------------------------------------------------------------------------+
//Функция Parabolic SAR                                               MQL5     |
//+----------------------------------------------------------------------------+
double Параболик(ENUM_TIMEFRAMES период,double step,double maximum,int бар)
  {
   double ЗначениеParabolic[1];
   CopyBuffer(Parabolic,0,бар,1,ЗначениеParabolic);
   return(ЗначениеParabolic[0]);
  }
 
Qualcuno sa come ottenere l'indice della sessione di trading corrente per la funzione SymbolInfoSessionTrade() . La guida dice solo il numero della sessione per la quale voglio ottenere l'ora di inizio e di fine. L'indicizzazione delle sessioni inizia da 0.
Документация по MQL5: Получение рыночной информации / SymbolInfoSessionQuote
Документация по MQL5: Получение рыночной информации / SymbolInfoSessionQuote
  • www.mql5.com
Получение рыночной информации / SymbolInfoSessionQuote - Документация по MQL5
 
 
Rosh:
Leggi l'articolo Restrizioni e controlli in esperti

Grazie per il suggerimento.
 

Si prega di avvisare. Questa linea all'inizio dell'EA è necessaria

void OnTick()
{
   if(!MQL5InfoInteger(MQL5_TRADE_ALLOWED)) return;
Se no, quando è necessario?
 
gpwr:

Si prega di avvisare. Questa linea all'inizio dell'EA è necessaria

Se no, quando è necessario?

Questa funzione controlla se questa casella di controllo è abilitata:


 
gpwr:

Si prega di avvisare. Questa linea all'inizio dell'EA è necessaria

Se no, in quali casi è necessario?

Se il trading in mql5-programma è proibito (per esempio, se hai deselezionato la casella che permette il trading in questo EA quando lo avvii), allora non verrà eseguito alcun trading. L'Expert Advisor stesso funzionerà come al solito. Controllate voi stessi.
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций - Документация по MQL5
 
Urain:

Questa funzione controlla se questa casella di controllo è abilitata:

No, questo è un messaggio su un'altra casella di controllo che è selezionata quando l'esperto o lo script viene avviato