MetaTrader 4 Build 529 beta rilasciato con un nuovo compilatore - pagina 126

 
Wahoo:


Il significato fisico è quello di controllare che il simbolo il cui nome è inserito come stringa nei parametri di input dell'EA sia disponibile per il trading. Il codice identico in MT5 funziona.

Il codice che ti ho dato è solo un esempio. È un po' diverso, ma il significato non cambia.

P.S. E l'errore 138 nel tester?

Codice:

Risultato:

Controllare:

if (OrderSend(SYMBOL,OP_BUY,0.1,NormalizeDouble(ask,digits),1000,0,0,"Test",0,0,CLR_NONE)<0) {
   Print("ask = "+DoubleToStr(ask,Digits)+", bid = "+DoubleToStr(bid,Digits)+", digits = "+digits);
   }
Cosa ti impedisce di guardare la causa?
 
Renat:
Significa che i risultati dei passaggi sono stati inutili e scartati.


Grazie per la traduzione. Ero in difficoltà con la traduzione, non riuscivo a capirlo...

Ma la vecchia build impiega circa 3 ore per ottimizzare e trova circa 2000 parametri EA redditizi. La nuova build ottimizza normalmente per mezzo minuto o anche meno all'inizio, trova parametri redditizi e poi si interrompe bruscamente e finisce l'ottimizzazione.

Ripeto, ho scritto di questo strano comportamento di ottimizzazione circa un mese fa. Sembra che sia stato risolto. Ora ho lo stesso problema.

 
artmedia70:

Controllare:

Cosa ti impedisce di vedere la causa?


Non c'è niente di mezzo.

void OnTick()
  {
   if(OrdersTotal()==0)
     {
      string SYMBOL=Symbol();
      int digits=(int)SymbolInfoInteger(SYMBOL,SYMBOL_DIGITS);
      MqlTick lasttick={0};
      if(!SymbolInfoTick(SYMBOL,lasttick))
         return;
      double ask=lasttick.ask;
      double bid=lasttick.bid;

      if(OrderSend(SYMBOL,OP_BUY,0.1,NormalizeDouble(ask,digits),1000,0,0,"Test",0,0,CLR_NONE)<0) 
        {
         Print("ask = "+DoubleToStr(ask,Digits)+", bid = "+DoubleToStr(bid,Digits)+", digits = "+(string)digits);
        }
     }
  }

 
Domanda a Metacquotes: perché cambiare il tipo di iVolume da double a ulong? Perché è stato necessario cambiare il tipo di un solo indicatore tecnico? Perché non poteva essere lasciato com'era?
 
Wahoo:


Non c'è niente in mezzo.


Comunque, ecco qui. SymbolInfoTick sembra essere ancora un po' storto (sembra copiare l'ultimo prezzo REALE, non dalla storia):

void OnTick()
  {
   if(OrdersTotal()==0)
     {
      string SYMBOL=Symbol();
      int digits=(int)SymbolInfoInteger(SYMBOL,SYMBOL_DIGITS);
      MqlTick lasttick={0};
      if(!SymbolInfoTick(SYMBOL,lasttick))
         return;
      double ask=lasttick.ask;
      double bid=lasttick.bid;

      if(OrderSend(SYMBOL,OP_BUY,0.1,NormalizeDouble(ask,digits),1000,0,0,"Test",0,0,CLR_NONE)<0)
        {
         Print(SYMBOL+" ask = "+DoubleToStr(ask,Digits)+", bid = "+DoubleToStr(bid,Digits)+", digits = "+(string)digits);
         if(OrderSend(Symbol(),OP_BUY,0.1,NormalizeDouble(Ask,Digits),100,0,0,"Test",0,0,CLR_NONE)>0)
            Print("Opened using Ask ="+DoubleToStr(Ask,Digits));
        }

      //=== Final Check
      SymbolInfoTick(SYMBOL,lasttick);
      Print("Ask: "+(string)Ask+"  lastick.ask: "+(string)lasttick.ask);

     }
  }

Risultato:

 
Il volume doveva essere cambiato per motivi di compatibilità con MT5. Le barre interne in MT4 sono ora le stesse della 5.
 
Renat:
Ho dovuto cambiare il Volume per motivi di compatibilità con MT5. Ora le barre interne in MT4 sono le stesse del 5.

Questo non può essere il motivo della forte discrepanza tra i risultati del test sul tuo conto demo e, per esempio, sul conto Alpari dove il mio cliente sta testando.

In precedenza, anche con differenze di quotazioni, non c'era una performance così completamente diversa di un EA su diversi conti. Ora nella modalità visiva possiamo vedere che in un test la posizione è chiaramente positiva o negativa, ma in un altro test la situazione è completamente opposta.

 
Bisogna guardare in dettaglio le discrepanze con tutti i registri. Non puoi trarre conclusioni da una visione generale, il che significa che hai bisogno di dettagli.
 
Renat:
Bisogna guardare in dettaglio le discrepanze con tutti i registri. Non si possono trarre conclusioni da una visione generale, servono dettagli.
Capisco. Lo dettaglierò più tardi. In questo momento, la cosa principale all'ordine del giorno è ottenere l'algoritmo giusto.
 
MT 560, ME 881. Ancora a proposito della rinascita di vecchi bug, già apparentemente una volta chiusi da voi quando fate gli aggiornamenti, descritti in ServiceDesk.
Motivazione: