Escribió un asesor, hay un problema. - página 6

 
khorosh >> :

¿Qué son las comillas de 4 o 5 decimales?

4 dígitos... también lo probé con 5 dígitos. NormalizeDouble no funciona :(

 
En general, todo es un poco extraño.... ¡¡¡¡¡¡¡En el primer post di una captura de pantalla del EA, empecé a actualizarlo, aparecieron errores ordersend error 130, volví todo a su estado original, pero los errores no han desaparecido!!!!!!! ¡¡¡¡Pero todo funcionaba en su estado original!!!! ¿Qué demonios es esto?
 
Noterday >> :

Eso es lo que estoy diciendo. ¿Por qué un stop de 10 pips es incorrecto...


La cuestión es la siguiente: un Stop de 10 pips puede ser erróneo porque la distancia mínima a la que se puede colocar un Stop Loss es superior a 10 pips (por ejemplo: 15 pips). Este valor lo fija la sala de operaciones.
 
¡He probado 200! Sigue siendo lo mismo...
 
Noterday >> :
¡Yo también he probado con 200! Sigue siendo lo mismo...


¿Puedes publicar el código original de 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);
  }
 

El principio de establecer un stop loss en la función OrderSend() es correcto. Por lo tanto, no hay necesidad de cambiar nada allí.

Cuando se ejecuta la función Print(), ZigZag=0, por lo que el stop loss : 0+15*Punto, es decir, igual a 0,0015. Por eso genera el error OrderSend Error 130.

double ZZ_1 = NormalizeDouble(iCustom(NULL,0, "ZigZag",21,5,3,0,1),4);// 21,5,3 son variables externas del indicador, deben especificarse en el orden en que se declaran en el indicador ZigZag.

Del mismo 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);

Aquí no se especifican variables externas.

 

Pero son opcionales, tal y como está escrito en la documentación de MQL4.

Y en

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);


ninguna variable externa :)

Por cierto, mi función PRINT da salida a ZigZag normalmente:


 
Noterday >> :

Pero son opcionales, tal y como está escrito en la documentación de MQL4.

Y en

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);


ninguna variable externa :)

Por cierto, mi función PRINT da salida a ZigZag normalmente:



Si no hay variables externas en estos indicadores, no hay reclamación :). Pero todavía tengo que pensar en las paradas. Tal vez te sirva para entenderlo.
 
ellizii >> :

Si no hay variables externas en estos indicadores, no hay reclamación :). Pero todavía tengo que pensar en las paradas. Tal vez te sirva para entenderlo.

No te preocupes por ello :) Para los desarrolladores: BASIC TESTER/OPTIMIZER

Estoy seguro de que ocurre lo mismo con Stopomi.