ESTRATEGIA ICHIMOKU - página 2

 

He "simplificado" un poco la codificación y he empezado a probar la estrategia.

//+------------------------------------------------------------------+
//|                                              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;
extern double Tenkan = 9;
extern double Kijun = 26;   
//----
int start()
   {
   double tenkan_sen;
   double kijun_sen;
   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);
   }

La prueba de la estrategia muestra que la calidad del modelado es del 90% y no hay errores en el diario.

El diario dice: 2012.01.18 20:29:44 ICHIMOKU_F1 GBPCHF,H1: cargado con éxito
2012.01.18 20:29:47 ICHIMOKU_F1 entradas: Lotes=1; Tenkan=9; Kijun=26;

Sin embargo, no se ha realizado ninguna operación y, por tanto, no hay resultados.

¿Podría haber un problema con el código?

 
RaptorUK:

Inicializas estas variables pero no les das ningún valor . . .

. . por lo que la prueba siempre será falsa. Este EA nunca colocará una Orden.

¿Te perdiste mi post anterior?
 
Supongo que sí, mis disculpas. Pero no es un poco inusual, en este caso, como el tenkan-sen y kijun-sen tendrá diferentes valores en cada orden abierta. Así que seguramente esto significaría que los valores no se pueden dar. La única propiedad que sería la misma para cada orden abierta es que el valor del tenkan-sen sea mayor que el valor del kijun-sen.
 
ToBa:
Supongo que sí, mis disculpas. Pero no es un poco inusual, en este caso, como el tenkan-sen y kijun-sen tendrá diferentes valores en cada orden abierta.

Pero no estás obteniendo los valores que cambian con cada nueva barra... declaras las variables y nunca las estableces... así que nunca cambian, ¿esperabas que cambiaran por arte de magia?

 
ToBa:

He "simplificado" un poco la codificación y he empezado a probar la estrategia.

La prueba de la estrategia muestra que la calidad de modelado es del 90% y no hay errores en el diario.

El diario dice: 2012.01.18 20:29:44 ICHIMOKU_F1 GBPCHF,H1: cargado con éxito
2012.01.18 20:29:47 ICHIMOKU_F1 entradas: Lotes=1; Tenkan=9; Kijun=26;

Sin embargo, no se ha realizado ninguna operación y, por tanto, no hay resultados.

¿Podría haber un problema con el código?


"simplificado" ¿Por qué este camino? ....

Si has dado a tenkan-sen y kijun-sen la codificación correcta para obtener su valor y lo pones en este

entonces obtendrás cada tick tenkan_sen>kijun_sen una nueva operación

¿Cuántas operaciones quieres abrir?

 
deVries:


"simplificado" ¿Por qué esta manera....

Si has dado a tenkan-sen y kijun-sen la codificación correcta para obtener su valor y lo pones en este

entonces obtendrás cada tick tenkan_sen>kijun_sen una nueva operación

¿Cuántas operaciones quieres tener abiertas?


El objetivo es colocar una sola orden abierta (1.0 lote) tan pronto como el tenkan-sen sea mayor que el kijun-sen y mantener la posición hasta que el tenkan-sen sea menor que el kijun-sen.
 
ToBa:

El objetivo es colocar una sola orden abierta (1.0 lote) tan pronto como el tenkan-sen sea mayor que el kijun-sen y mantener la posición hasta que el tenkan-sen sea menor que el kijun-sen.
¿De dónde sacas estos valores?
 
RaptorUK:
¿De dónde sacas estos valores?
No sé exactamente a qué te refieres. Desde el ejemplo del MACD, parece que está bien usar: if(MacdCurrent<0 && MacdCurrent>SignalCurrent && MacdPrevious<SignalPrevious &&

MathAbs(MacdCurrent)>(MACDOpenLevel*Point) && MaCurrent>MaPrevious) y no se dan valores.

 
Ok, por fin veo lo que quieres decir. Aunque no tengo ni idea de cómo recuperar los valores.
 
ToBa:
Vale, por fin veo lo que quieres decir. Aunque no tengo ni idea de cómo recuperar los valores.
Bien, eso es un progreso :-)
Razón de la queja: