ayúdenme por favor [resuelto] - página 3

 
mrluck1:
Sí señor, sólo 1 comercio hecho, pero su ejemplo era grande, será muy útil como base para crear nuevos eas
bool trade_made = false;

void OnTick()
  {
   double up   = iIchimoku(NULL,5,9,26,52,3,0),
          down = iIchimoku(NULL,5,9,26,52,4,0);
   static bool was_above = true;
   bool is_above = (MathMax(up,down)< Bid);
   if(!trade_made && !was_above && is_above && open_orders()<1)
     {
      if(OrderSend(NULL,0,0.01,Ask,3, Bid-150*Point, Bid+100*Point)<0)
        {
         printf("OrderSend() failed. Error code: %i",GetLastError());    
        }
      else t rade_made=true;
     }
   was_above = is_above;
  }

int open_orders()
  {
   int count = 0;
   for(int i=OrdersTotal()-1; i>=0; i--) // good habit to count down
     {
      if(!OrderSelect(i,SELECT_BY_POS))  continue;  // select the order
      if(OrderSymbol() != _Symbol)       continue;  // optional check for same symbol
      if(OrderMagicNumber()!= magic_no)  continue;  // optional check for magic number
      if(OrderType() < 2)                count++;   // 0 == OP_BUY and 1 == OP_SELL
     }
   return(count);
  }
 
mrluck1:

Marco: He probado tu nueva actualización, pero no hace ninguna operación, he puesto tal y como has puesto la última, solo he quitado la segunda int, en el ticket. Pero la primera operación nunca se hace en el probador de estrategias, ¿qué hacer ahora?

Debería colocar una operación porque:


     if (MathMax (up,down) < Bid )

    ticket= OrderSend (NULL,0,0.01,Ask,3, Bid-150*Point, Bid+100*Point);


//+------------------------------------------------------------------+
//|                                                    One Order.mq4 |
//|      Copyright 2017, Marco vd Heijden, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Marco vd Heijden, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

bool order=0;int ticket;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(order==0)
     {
      double up=iIchimoku(NULL,5,9,26,52,3,0);
      double down=iIchimoku(NULL,5,9,26,52,4,0);
        {
         if(MathMax(up,down)<Bid)
           {
            ticket=OrderSend(NULL,0,0.01,Ask,3,Bid-150*Point,Bid+100*Point);
              {
               if(ticket>-1)
                 {
                  order=1;
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+

Acabo de probarlo y colocó UNA orden...


 

Muchas graciashonest_knave eso es exactamente lo que necesitaba, estaré siempre en deuda,

Gracias también al Sr. Marco por su ayuda.

 
mrluck1:

Muchas graciashonest_knave eso es exactamente lo que necesitaba, estaré siempre en deuda,

De nada. Pero ¿estás de acuerdo en que la respuesta rara vez es tan simple como parece? Lo que puede explicar algunos de los comentarios aquíCODE Help( Urgente).
 
honest_knave:
De nada. ¿Pero está de acuerdo en que la respuesta rara vez es tan sencilla como parece? Lo que puede explicar algunos de los comentarios aquíCODE Help( Urgente).
Ya he quitado ese comentario, un simple EA es un problema para mí, no sé nada realmente para decir algo
 
mrluck1:
ya he quitado ese comentario, un simple EA es un problema para mí, no sé nada realmente para decir algo

Oye, todos seguimos aprendiendo. Y tu corazón estaba en el lugar correcto.

Me alegro de que hayas arreglado tu problema.

Hay muchas maneras de hacer lo mismo... Marco y yo abordamos el problema desde diferentes direcciones, y ambas son igualmente correctas.

Buena suerte

 

Si Sr.Marco vd Heijden funciona igual que el de honest_knave, lo he intentado de nuevo basandome en el ultimo codigo que usted dispone, funciono muy bien, tomare ambas respuestas, y usare la suya para este script ya que es mas similar a la idea original.

Gracias por tu ayuda

 
Creo que, a partir del código que publica, el EA no abrirá más órdenes de nuevo. A no ser que elimine el EA del gráfico, y lo vuelva a colocar (para inicializarlo). Supongo que ese era el propósito?
 
Hairi Baba:
Creo que, a partir del código que usted publica, el EA no abrirá más órdenes de nuevo. A menos que u quitar la EA de la tabla, y volver a adjuntar de nuevo (para inicializar). Supongo que ese era el propósito?

Ahora esperemos que elija la dirección correcta :)

Leí en algún lugar acerca de un tipo que se olvidó de que todavía tenía una posición abierta y adivina lo que pasó ... $$$$$

 
Hairi Baba:
Creo que, a partir del código que publica, el EA no abrirá más órdenes de nuevo. A no ser que elimine el EA del gráfico, y lo vuelva a colocar (para inicializarlo). ¿Supongo que ese era el propósito?
Sí, eso es lo que el OP quiere.