Ha scritto un consigliere, c'è un problema. - pagina 6

 
khorosh >> :

Cosa sono le virgolette 4 o 5 decimali?

4 cifre... provato anche su 5 cifre. NormalizeDouble non funziona :(

 
In generale, è tutto un po' strano.... Nel primo post ho dato uno screenshot dell'EA, ho iniziato ad aggiornarlo, sono apparsi errori ordersend error 130, ho riportato tutto al suo stato originale, ma gli errori non sono scomparsi!!!!!!! Ma tutto funzionava nel suo stato originale!!!! Che diavolo è questo?
 
Noterday >> :

Questo è quello che sto dicendo. Perché uno stop di 10 pip è sbagliato...


Ecco il punto: uno Stop a 10 pips può essere sbagliato perché la distanza minima alla quale si può piazzare uno Stop Loss è più di 10 pips (per esempio: 15 pips). Questo valore è impostato dalla sala da gioco.
 
Ne ho provati 200! È sempre lo stesso...
 
Noterday >> :
Ne ho provati anche 200! Ancora lo stesso...


Puoi postare il codice originale EA?

 
#property copyright "Мостовнек"
#property link      ""

int init()
  {
   return(0);
  }
int deinit()
  {
   return(0);
  }

extern int Frame = 1;


int start()
  {
  int total;
  
  for (int i = 0; i <= OrdersTotal(); i++)
     {
       if (OrderSelect( i-1, SELECT_BY_POS) == true)
       total++;
     }
  
  
    double Buffer1 = NormalizeDouble(iCustom(NULL, Frame,"Osc_Mx",0,0,1),4);
    double Buf1    = NormalizeDouble(iCustom(NULL, Frame,"Osc_Mx",0,6,1),4);
    double Buffer2 = NormalizeDouble(iCustom(NULL, Frame,"Osc_Mn",0,0,1),4);
    double Buf2    = NormalizeDouble(iCustom(NULL, Frame,"Osc_Mn",0,6,1),4);
    
    double ZZ_1    = NormalizeDouble(iCustom(NULL,0,"ZigZag",0,0,1),4);

//-----------------------------------------------------  

  if ( total == 0 && (( Buffer1 != EMPTY_VALUE || Buf1 != EMPTY_VALUE) && ( ZZ_1 == Buffer1 || ZZ_1 == Buf1)))
    {
     OrderSend(Symbol(),OP_SELL,0.1,Bid,10, ZZ_1+15*Point,Bid-20*Point,"SELL",0,0,Red);
     Print("Zigzag = ", ZZ_1," | Buffer1 = ", Buffer1);
    }
  
  if ( total == 0 && (( Buffer2 != EMPTY_VALUE || Buf2 != EMPTY_VALUE) && ( ZZ_1 == Buffer2 || ZZ_1 == Buf2)))
    {
     OrderSend(Symbol(),OP_BUY,0.1,Ask,10, ZZ_1-15*Point,Ask+20*Point,"BUY",0,0,Blue);
     Print("Zigzag = ", ZZ_1," | Buffer2 = ", Buffer1);
    }

return(0);
  }
 

Il principio di impostare uno stop loss nella funzione OrderSend() è corretto. Quindi non c'è bisogno di cambiare nulla lì.

Quando la funzione Print() viene eseguita, ZigZag=0, quindi lo stop loss: 0+15*Point, cioè uguale a 0,0015. Ecco perché genera l'errore OrderSend Error 130.

double ZZ_1 = NormalizeDouble(iCustom(NULL,0, "ZigZag",21,5,3,0,1),4);// 21,5,3 sono variabili esterne dell'indicatore, devono essere specificate nell'ordine in cui sono dichiarate nell'indicatore ZigZag.

Allo stesso modo, double Buffer1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,0,1),4);
double Buf1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,6,1),4);
double Buffer2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,0,1),4);
double Buf2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,6,1),4);

Nessuna variabile esterna è specificata qui.

 

Ma sono opzionali, come scritto nella documentazione di MQL4.

E in

double Buffer1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,0,1),4);
double Buf1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,6,1),4);
double Buffer2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,0,1),4);
double Buf2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,6,1),4);


nessuna variabile esterna :)

A proposito, la mia funzione PRINT emette ZigZag normalmente:


 
Noterday >> :

Ma sono opzionali, come scritto nella documentazione di MQL4.

E in

double Buffer1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,0,1),4);
double Buf1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,6,1),4);
double Buffer2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,0,1),4);
double Buf2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,6,1),4);


nessuna variabile esterna :)

A proposito, la mia funzione PRINT emette ZigZag normalmente:



Se non ci sono variabili esterne in questi indicatori, non c'è nessuna pretesa :). Ma devo ancora pensare alle fermate. Forse avrai un'idea.
 
ellizii >> :

Se non ci sono variabili esterne in questi indicatori, non c'è nessuna pretesa :). Ma devo ancora pensare alle fermate. Forse avrete un'idea.

Non preoccuparti :) Agli sviluppatori: TESTER/OPTIMIZZATORE DI BASE

Sono sicuro che è lo stesso con stopomi.