Ichimoku_02





//+------------------------------------------------------------------+
//|                                                    Ichimoku_v0.5 |
//|                                          Copyright © 2007, Volky |
//|          Not recommended for using with your real money trading. |
//|                                                                  |
//+------------------------------------------------------------------+
//Try with EURUSD 4H, USDJPY 1H, EURJPY 1H

//You can go to "Expert Properties > Inputs", and choose which kind of signals should be executed. "1" means YES, "0" means NO.
//There are 4 types of signals with this EA.
//CrossSignals1: Tenkan crosses Kijun on the "right" side of the Kumo.
//CrossSignals2: Tenkan crosses Kijun inside the Kumo.
//CrossSignals3: Tenkan crosses Kijun on the "wrong" side of the Kumo.
//KijunSignals: Prices run away from Kijun.

extern double CrossSignals1=1;
extern double CrossSignals2=1;
extern double CrossSignals3=1;
extern double KijunSignals=1;

int start()
  {
   double tenkan, kijun, senkouA, senkouB, chinkou;
   double pretenkan, prekijun, presenkouA, presenkouB, prechinkou;
   double KumoHigh, KumoLow;
   double buycross1, sellcross1, buycross2, sellcross2, buycross3, sellcross3, buyprice1, sellprice1;
   double lots=1;
   double profit=1000;
   double stop=1000;
   double noopen1, noopen2, noopen3, noopen4, noopen5, noopen6, noopen7, noopen8;
   int cnt, ticket, total;
   
   if(Bars<100)
     {
      Print("bars less than 100");
      return(0);  
     }

   tenkan=iIchimoku(NULL,0,9,26,52,MODE_TENKANSEN,1);
   kijun=iIchimoku(NULL,0,9,26,52,MODE_KIJUNSEN,1);
   senkouA=iIchimoku(NULL,0,9,26,52,MODE_SENKOUSPANA,1);
   senkouB=iIchimoku(NULL,0,9,26,52,MODE_SENKOUSPANB,1);
   chinkou=iIchimoku(NULL,0,9,26,52,MODE_CHINKOUSPAN,26);
   pretenkan=iIchimoku(NULL,0,9,26,52,MODE_TENKANSEN,2);
   prekijun=iIchimoku(NULL,0,9,26,52,MODE_KIJUNSEN,2);
   presenkouA=iIchimoku(NULL,0,9,26,52,MODE_SENKOUSPANA,2);
   presenkouB=iIchimoku(NULL,0,9,26,52,MODE_SENKOUSPANB,2);

      //KUMO
   if (senkouA>senkouB)
    {KumoHigh=senkouA;
     KumoLow=senkouB;
    }
   if (senkouA<=senkouB)
    {KumoHigh=senkouB;
     KumoLow=senkouA;
    }
   double KumoAv=(KumoHigh+KumoLow)/2;
   
   total=OrdersTotal();

   for(cnt=0;cnt<total;cnt++)
    {
     OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
     if(OrderMagicNumber()==1) noopen1=1;
     if(OrderMagicNumber()==2) noopen2=1;
     if(OrderMagicNumber()==3) noopen3=1;     
     if(OrderMagicNumber()==4) noopen4=1;
     if(OrderMagicNumber()==5) noopen5=1;
     if(OrderMagicNumber()==6) noopen6=1;
     if(OrderMagicNumber()==7) noopen7=1; 
     if(OrderMagicNumber()==8) noopen8=1;
    }   
   
   if (pretenkan>prekijun && tenkan<=kijun) noopen1=1;
   if (pretenkan<prekijun && tenkan>=kijun) noopen2=1;
   if ((pretenkan>prekijun && tenkan<=kijun)||(iClose(NULL,0,2)>=KumoLow && iClose(NULL,0,1)<KumoLow)) noopen3=1;
   if ((pretenkan<prekijun && tenkan>=kijun)||(iClose(NULL,0,2)<KumoHigh && iClose(NULL,0,1)>=KumoHigh)) noopen4=1;
   if ((pretenkan>prekijun && tenkan<=kijun)||(iClose(NULL,0,2)>=KumoHigh && iClose(NULL,0,1)<KumoHigh)) noopen5=1;
   if ((pretenkan<prekijun && tenkan>=kijun)||(iClose(NULL,0,2)<KumoLow && iClose(NULL,0,1)>=KumoLow)) noopen6=1;
   if (pretenkan>prekijun && tenkan<=kijun) noopen7=1;
   if (pretenkan<prekijun && tenkan>=kijun) noopen8=1;
   
   
   //on the "right side" of Kumo
   if (noopen1==0 && pretenkan<=prekijun && tenkan>kijun && iClose(NULL,0,1)>=KumoHigh) buycross1=1;
   if (noopen2==0 && pretenkan>=prekijun && tenkan<kijun && iClose(NULL,0,1)<KumoLow) sellcross1=1;
   
   //inside the Kumo
   if (noopen3==0 && pretenkan<=prekijun && tenkan>kijun && iClose(NULL,0,1)>=KumoLow && iClose(NULL,0,1)<KumoHigh) buycross2=1;
   if (noopen4==0 && pretenkan>=prekijun && tenkan<kijun && iClose(NULL,0,1)>=KumoLow && iClose(NULL,0,1)<KumoHigh) sellcross2=1;
   
   //on the "wrong side" of Kumo
   if (noopen5==0 && pretenkan<=prekijun && tenkan>kijun && iClose(NULL,0,1)<KumoLow) buycross3=1;
   if (noopen6==0 && pretenkan>=prekijun && tenkan<kijun && iClose(NULL,0,1)>=KumoHigh) sellcross3=1;

   //Price Leaves Kijun
   if (noopen7==0 && iLow(NULL,0,2)<=prekijun && iLow(NULL,0,1)>kijun && iLow(NULL,0,1)>=KumoHigh) buyprice1=1;
   if (noopen8==0 && iLow(NULL,0,2)>=prekijun && iLow(NULL,0,1)<kijun && iHigh(NULL,0,1)<=KumoLow) sellprice1=1;
   
   noopen1=0;
   noopen2=0;
   noopen3=0;
   noopen4=0;
   noopen5=0;
   noopen6=0;
   noopen7=0;
   noopen8=0;
   
   //POSITION OPENINGS
    if(CrossSignals1==true && buycross1==1 && noopen1==0) ticket=OrderSend(Symbol(),OP_BUY,lots,Ask,3,0,Ask+profit*Point,"BUY1",1,0,Green);
    if(CrossSignals1==true && sellcross1==1 && noopen2==0) ticket=OrderSend(Symbol(),OP_SELL,lots,Bid,3,0,Bid-profit*Point,"SELL1",2,0,Red);
    if(CrossSignals2==true && buycross2==1 && noopen3==0) ticket=OrderSend(Symbol(),OP_BUY,lots,Ask,3,0,Ask+profit*Point,"BUY2",3,0,Green);
    if(CrossSignals2==true && sellcross2==1 && noopen4==0) ticket=OrderSend(Symbol(),OP_SELL,lots,Bid,3,0,Bid-profit*Point,"SELL2",4,0,Red);
    if(CrossSignals3==true && buycross3==1 && noopen5==0) ticket=OrderSend(Symbol(),OP_BUY,lots,Ask,3,0,Ask+profit*Point,"BUY3",5,0,Green);
    if(CrossSignals3==true && sellcross3==1 && noopen6==0) ticket=OrderSend(Symbol(),OP_SELL,lots,Bid,3,0,Bid-profit*Point,"SELL3",6,0,Red);
    if(KijunSignals==true && buyprice1==1 && noopen7==0) ticket=OrderSend(Symbol(),OP_BUY,lots,Ask,3,0,Ask+profit*Point,"BUYP1",7,0,Green);
    if(KijunSignals==true && sellprice1==1 && noopen8==0) ticket=OrderSend(Symbol(),OP_SELL,lots,Bid,3,0,Bid-profit*Point,"SELLP1",8,0,Red);
    
   //CLOSING
    for(cnt=0;cnt<total;cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      
      if(OrderMagicNumber()==1 && pretenkan>prekijun && tenkan<=kijun) 
       {OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);
        }
      
      if(OrderMagicNumber()==2 && pretenkan<prekijun && tenkan>=kijun) 
       {OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);
       }
       
      if(OrderMagicNumber()==3)
       {if ((pretenkan>prekijun && tenkan<=kijun)||(iClose(NULL,0,2)>=KumoLow && iClose(NULL,0,1)<KumoLow)) OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);
       }
      
      if(OrderMagicNumber()==4)
       {if ((pretenkan<prekijun && tenkan>=kijun)||(iClose(NULL,0,2)<KumoHigh && iClose(NULL,0,1)>=KumoHigh)) OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);
       }
      
      if(OrderMagicNumber()==5)
       {if ((pretenkan>prekijun && tenkan<=kijun)||(iClose(NULL,0,2)>=KumoHigh && iClose(NULL,0,1)<KumoHigh)) OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);
       }
      
      if(OrderMagicNumber()==6)
       {if ((pretenkan<prekijun && tenkan>=kijun)||(iClose(NULL,0,2)<KumoLow && iClose(NULL,0,1)>=KumoLow)) OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);
       }
      
      if(OrderMagicNumber()==7 && pretenkan>prekijun && tenkan<=kijun) 
       {OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);
        }
      
      if(OrderMagicNumber()==8 && pretenkan<prekijun && tenkan>=kijun) 
       {OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);
       }
      
      
     }
     
buycross1=0;
sellcross1=0;
buycross2=0; 
sellcross2=0;
buycross3=0;
sellcross3=0;
buyprice1=0;
sellprice1=1;            
  }





Sample





Analysis



Market Information Used:

Series array that contains close prices for each bar
Series array that contains the lowest prices of each bar
Series array that contains the highest prices of each bar


Indicator Curves created:


Indicators Used:

Ichimoku Kinko Hyo


Custom Indicators Used:

Order Management characteristics:
Checks for the total of open orders

It automatically opens orders when conditions are reached
It Closes Orders by itself

Other Features:

BackTest : EURUSD on H1

From 2009-08-01 to 2009-10-01 Profit Factor:0.54 Total Net Profit:-9832.70

BackTest : EURUSD on H1

From 2009-12-01 to 2010-01-17 Profit Factor:1.96 Total Net Profit:9816.80

BackTest : EURUSD on H1

From 2010-03-01 to 2010-03-27 Profit Factor:2.96 Total Net Profit:7749.10

BackTest : EURUSD on H1

From 2010-04-01 to 2010-04-30 Profit Factor:2.83 Total Net Profit:9252.80

BackTest : EURUSD on H1

From 2010-05-01 to 2010-05-31 Profit Factor:0.00 Total Net Profit:0.00

BackTest : EURUSD on H1

From 2010-06-01 to 2010-06-30 Profit Factor:0.00 Total Net Profit:0.00

BackTest : GBPUSD on H1

From 2010-01-01 to 2010-02-27 Profit Factor:0.37 Total Net Profit:-9815.10

BackTest : GBPUSD on H1

From 2010-01-01 to 2010-04-16 Profit Factor:0.34 Total Net Profit:-9829.00

BackTest : USDCAD on H1

From 2009-01-01 to 2010-01-01 Profit Factor:0.19 Total Net Profit:-10426.20

BackTest : USDCAD on H1

From 2009-12-01 to 2010-01-01 Profit Factor:0.09 Total Net Profit:-9891.33

BackTest : USDCHF on H1

From 2009-12-01 to 2010-01-01 Profit Factor:0.20 Total Net Profit:-9920.08

BackTest : USDJPY on H1

From 2009-11-01 to 2009-11-30 Profit Factor:1.60 Total Net Profit:2954.53

Request Backtest for Ichimoku_02


From : (yyyy/mm/dd) To: (yyyy/mm/dd)

Pair: Period: