ESTRATEGIA ICHIMOKU - página 3

 

Ok funciona en la prueba de la estrategia ahora, sin embargo, más de un comercio se coloca - varios cada minuto. ¿Qué parte del código debería cambiarse?

Y entiendo que a estas alturas debéis estar bastante molestos, pero si no preguntas no recibes.

//+------------------------------------------------------------------+
//|                                              ICHIMOKU_SIMPLE.mq4 |
//|                      Copyright © 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

extern double Lots = 1.0; 
//----
int start()
   {
   double tenkan_sen=iIchimoku(NULL, 0, 9, 26, 52, MODE_TENKANSEN, 1);
   double kijun_sen=iIchimoku(NULL, 0, 9, 26, 52, MODE_KIJUNSEN, 1);
   int ticket;
//----

// check for long position (BUY) possibility
      if(tenkan_sen>kijun_sen)
         {
         ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+Point,"ichimoku",16384,0,Green);
         if(ticket>0)
            {
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
            }
         else Print("Error opening BUY order : ",GetLastError()); 
         return(0); 
         
         }   //  added by RaptorUK
            
   // SELL 
     {
      OrderSelect(SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELL && // check for opened position 
         OrderSymbol()==Symbol()) // check for symbol
         {
         if(OrderType()==OP_BUY) // long position is opened
            {
            // should it be closed?
            if(tenkan_sen<kijun_sen)   //  removed surplus (  RaptorUK
               {
               OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position
               return(0); // exit
               }
            }
         }
      }
  return(0);
   }
 
ToBa:

Ok funciona en la prueba de la estrategia ahora, sin embargo, más de un comercio se coloca - varios cada minuto. ¿Qué parte del código debería cambiarse?

Y entiendo que a estas alturas debéis estar bastante molestos, pero si no preguntas no recibes.

¿Molestado? no, yo no... sólo intento ayudarte a aprender y parece que lo estás haciendo... ahora tienes que seguir aprendiendo.
 

Okey dokey, sé que tiene que ver con esta línea.

Pero no sé qué significan los números. He tratado de eliminar algunas partes, pero me sale ')' - cuenta de parámetros equivocados C:\ Archivos de programa (x86)\MetaTrader 4\\Nexperts\ICHIMOKU_F1.mq4 (21, 51)

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+Point,"ichimoku",16384,0,Green);
 
Lea la documentación... haga clic aquí --> OrderSend
 
ToBa:

Ok funciona en la prueba de la estrategia ahora, sin embargo, más de un comercio se coloca - varios cada minuto.

Primero tienes que averiguar qué quieres que haga en lugar de colocar varias órdenes cada minuto.......
 

Ok he hecho un progreso significativo. Sin embargo, el t/p se ejecuta tan pronto como el precio del par aumenta en 0,0001.

El código ahora se ve así:

//+------------------------------------------------------------------+
//|                                              ICHIMOKU_SIMPLE.mq4 |
//|                      Copyright © 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

extern double Lots = 1.0;
//----

int start()
   {
   double tenkan_sen=iIchimoku(NULL, 0, 9, 26, 52, MODE_TENKANSEN, 1);
   double kijun_sen=iIchimoku(NULL, 0, 9, 26, 52, MODE_KIJUNSEN, 1);
   int ticket,total,order_id;
   
// BUY
      total=OrdersTotal();
   if(total<1 && tenkan_sen>kijun_sen)
         {
         ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+Point,"ichimoku",16384,0,Green);
         } 
                      
// SELL 
   if(tenkan_sen<kijun_sen)   
         {
         OrderClose(order_id,1,Ask,3,Red);
         return(0);
         }     
  return(0);
   }
 
un t/p parece colocarse automáticamente; no sé qué parte cambiar
 
ToBa:
un t/p parece colocarse automáticamente; no sé qué parte cambiar
Es parte del OrderSend...
 
Ok ahora sé que es este bit - Ask+*Point pero en lugar de poner un número, quiero que el t/p sea cuando tenkan-sen<kijun-sen
 
Póngalo a 0 y entonces tendrá que seguir comprobando cuando tenkan-sen<kijun-sen y entonces cuando sea usted cierra la orden... el inconveniente de esto es que si tiene una orden abierta y pierde la conexión a Internet su operación permanecerá abierta y una operación ganadora puede convertirse en una operación perdedora.