Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 910

 

¡Hola!

En mi Asesor Experto, se comprueba la vela anterior y si las condiciones lo permiten, se abre la posición, si no, no se abre. El problema es que la posición se abre antes de comprobar el estado de la vela anterior. Luego veo que la posición se abre en el diario y luego veo que no debería abrirse. ¿Cómo solucionarlo?

 
evillive:

Faltan los paréntesis de las cifras.

¡Gracias, lo he solucionado! El problema era más profundo, mi incomprensión de lo que sería la salida en esta forma de escribir, en general las expectativas no coincidían con el resultado, jodió los contadores - todo funciona como yo pensaba.
 

Ayuda, ¿por qué el EA no abre órdenes durante las pruebas? (¿No hace nada?) ¡Por favor, ayuda, por favor!

extern double    OrderValue =  0.01;         
extern int       Up         =  70;
extern int       Dn         =  30;
extern int       rrr        =   5;
extern int       S1_period  =   5;
extern int       S1_slowing =   3;
extern double    TP         =  30;
extern double    SL         =  30;

double    S1a          = 0;
double    S1b          = 0;
      
double MyOrderStateB;
double MyOrderStateS;

int    OpenOrderB      ;   
int    OpenOrderS      ;   

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  
   {
    if (Digits == 3 || Digits == 5)
     {
       TP *=10;
       SL  *=10;
      
     }
  
  
  
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----

   S1a = NormalizeDouble(iStochastic(NULL, 0, S1_period, 3, S1_slowing, MODE_SMA, 1, MODE_MAIN, 1), 0);
   S1b = NormalizeDouble(iStochastic(NULL, 0, S1_period, 3, S1_slowing, MODE_SMA, 1, MODE_SIGNAL, 1), 0);
   
   if(MyOrderStateB == 1)Sleep(3000);
    else MyOrderStateB = 0;
   if(MyOrderStateS == 1)Sleep(3000);
    else MyOrderStateS = 0;
   
//----
   return(0);
  }
//+------------------------------------------------------------------+

void GetBuy(){
     
   if(S1a == S1b && S1a<20.0000 && S1b<20.0000 )
 {OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), 3, SL, TP, NULL, 0, 0,clrBlue);
     MyOrderStateB = 1; }
   else Sleep(2);
}
void GetSell(){
      
   if(S1a == S1b && S1a>80.0000 && S1b>80.0000 )

    {OrderSend(Symbol(), OP_SELL, OrderValue, NormalizeDouble(Bid, Digits), 3, SL, TP, NULL, 0, 0,clrRed);
      MyOrderStateS = 1; }    
       else Sleep(2);
   } 

 
Viktorline14:

Ayuda, ¿por qué el EA no abre órdenes durante las pruebas? (¿No hace nada?) ¡Por favor, ayuda, por favor!


¿No puedes crear un puesto correcto?

No hay ninguna llamada a la función Start() para abrir órdenes

 
Vinin:

¿No puedes crear un puesto correcto?

No hay llamadas a funciones en Start() para abrir órdenes

 
Hermano, ¿cómo se añade esto?
 
Viktorline14:
Hermano, ¿cómo se añade esto?
Lo siento por tu madre y tu padre. No te han enseñado a comunicarte.
 

Vinin:
Жалко мне твоих папу и маму. Не научили культуре общения

Lo siento, realmente necesito ayuda ya que esta es mi primera experiencia con la escritura de EA.

Por favor, ayuda

 

Así que lo resolví, no hay errores, pero hay advertencias.

Esta debe ser la razón por la que el probador está dando errores

 
Viktorline14:

Así que lo resolví, no hay errores, pero hay advertencias.

Esta debe ser la razón por la que el probador está dando errores

Chicos, ¡¡¡ayuda por favor!!!
Razón de la queja: