//+------------------------------------------------------------------+
//                        DO NOT DELETE THIS HEADER
//             DELETING THIS HEADER IS COPYRIGHT INFRIGMENT 
//
//                   Copyright 漏2011, ForexEAdvisor.com
//                 ForexEAdvisor Strategy Builder version 0.2
//                        http://www.ForexEAdvisor.com 
//
// THIS EA CODE HAS BEEN GENERATED USING FOREXEADVISOR STRATEGY BUILDER 0.2 
// on: 1/16/2018 12:54:18 PM
// Disclaimer: This EA is provided to you "AS-IS", and ForexEAdvisor disclaims any warranty
// or liability obligations to you of any kind. 
// UNDER NO CIRCUMSTANCES WILL FOREXEADVISOR BE LIABLE TO YOU, OR ANY OTHER PERSON OR ENTITY,
// FOR ANY LOSS OF USE, REVENUE OR PROFIT, LOST OR DAMAGED DATA, OR OTHER COMMERCIAL OR
// ECONOMIC LOSS OR FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, STATUTORY, PUNITIVE,
// EXEMPLARY OR CONSEQUENTIAL DAMAGES WHATSOEVER RELATED TO YOUR USE OF THIS EA OR 
// FOREXEADVISOR STRATEGY BUILDER     
// Because software is inherently complex and may not be completely free of errors, you are 
// advised to verify this EA. Before using this EA, please read the ForexEAdvisor Strategy Builder
// license for a complete understanding of ForexEAdvisor' disclaimers.  
// USE THIS EA AT YOUR OWN RISK. 
//  
// Before adding this expert advisor to a chart, make sure there are NO
// open positions.
//                      DO NOT DELETE THIS HEADER
//             DELETING THIS HEADER IS COPYRIGHT INFRIGMENT 
//+------------------------------------------------------------------+
extern int MagicNumber=10001;
extern double Lots =0.05;
extern double StopLoss=20;
extern double TakeProfit=30;
extern int TrailingStop=50;
extern int Slippage=3;
extern int point=30;
enum MyEnum
   {
    MM1, // Khung M1
    MM5, // Khung M5
    MM15, // Khung M15
    MM30, // Khung M30
    HH1, // Khung H1
    HH4, // Khung H4
    };
input MyEnum Periodtrade=MM5;
enum MyEnum1
   {
    M1, // Khung M1
    M5, // Khung M5
    M15, // Khung M15
    M30, // Khung M30
    H1, // Khung H1
    H4, // Khung H4
    };
input MyEnum1 Periodcandle=M1;
enum MyEnum2
   {
    trendsignalup, //TRENDUP
    TrendupM1,  //Trendup_M1
    TrendupM5,  //Trendup_M5
    TrendupM15,  //Trendup_M15
    TrendupM30,  //Trendup_M30
    };
input MyEnum2 trendtang=TrendupM5;
enum MyEnum3
   {
    trendsignaldown, //TRENDDOWN
    TrenddownM1,  //Trenddown_M1
    TrenddownM5,  //Trenddown_M5
    TrenddownM15,  //Trenddown_M15
    TrenddownM30,  //Trenddown_M30
    };
input MyEnum3 trendgiam=TrenddownM5;
extern int RSI5M=14;
extern int CCI5M=14;
extern int MFI5M=14;
extern int RSI5M20=40;
extern int RSI5M80=60;
extern int CCI5Ma=-100;
extern int CCI5Mb=100;
extern int MFI5M20=30;
extern int MFI5M80=70;
extern int STO5M20=20;
extern int STO5M80=80;
extern int FastEMA=8;
extern int SlowEMA=17;
extern int SignalSMA=9;
//Th锚m t脿i kho岷 ng瓢峄漣 d霉ng
double IDnguoidung=482596;
//Date Lock
bool use_demo=True;
int demo_year=2018;
int demo_month=9;
int demo_day=30;
//Account Number Lock
int acc_number=IDnguoidung;
//+------------------------------------------------------------------+
//    expert start function
//+------------------------------------------------------------------+
int start()
{
  double MyPoint=point;
  if(Digits==3 || Digits==5) MyPoint=point*10;
  double TheStopLoss=0;
  double TheTakeProfit=0;
  //khung th峄漣 gian
  double M1=PERIOD_M1;
  double M5=PERIOD_M5;
  double M15=PERIOD_M15;
  double M30=PERIOD_M30;
  double H1=PERIOD_H1;
  double H4=PERIOD_H4;
  double MM1=PERIOD_M1;
  double MM5=PERIOD_M5;
  double MM15=PERIOD_M15;
  double MM30=PERIOD_M30;
  double HH1=PERIOD_H1;
  double HH4=PERIOD_H4;
  //膽瓢峄漬g xu h瓢峄沶g----
    double macd_M1=iMACD(NULL,PERIOD_M1,FastEMA,SlowEMA,SignalSMA,PRICE_CLOSE,MODE_MAIN,0); 
    double macd_MM1=iMACD(NULL,PERIOD_M1,FastEMA,SlowEMA,SignalSMA,PRICE_CLOSE,MODE_SIGNAL,0); 
    double macd_M5=iMACD(NULL,PERIOD_M5,FastEMA,SlowEMA,SignalSMA,PRICE_CLOSE,MODE_MAIN,0); 
    double macd_MM5=iMACD(NULL,PERIOD_M5,FastEMA,SlowEMA,SignalSMA,PRICE_CLOSE,MODE_SIGNAL,0);
    double macd_M15=iMACD(NULL,PERIOD_M15,FastEMA,SlowEMA,SignalSMA,PRICE_CLOSE,MODE_MAIN,0); 
    double macd_MM15=iMACD(NULL,PERIOD_M15,FastEMA,SlowEMA,SignalSMA,PRICE_CLOSE,MODE_SIGNAL,0);
    double macd_M30=iMACD(NULL,PERIOD_M30,FastEMA,SlowEMA,SignalSMA,PRICE_CLOSE,MODE_MAIN,0); 
    double macd_MM30=iMACD(NULL,PERIOD_M30,FastEMA,SlowEMA,SignalSMA,PRICE_CLOSE,MODE_SIGNAL,0); 
    double macd_H1=iMACD(NULL,PERIOD_H1,FastEMA,SlowEMA,SignalSMA,PRICE_CLOSE,MODE_MAIN,0); 
    double macd_HH1=iMACD(NULL,PERIOD_H1,FastEMA,SlowEMA,SignalSMA,PRICE_CLOSE,MODE_SIGNAL,0);
    double macd_H4=iMACD(NULL,PERIOD_H4,FastEMA,SlowEMA,SignalSMA,PRICE_CLOSE,MODE_MAIN,0); 
    double macd_HH4=iMACD(NULL,PERIOD_H4,FastEMA,SlowEMA,SignalSMA,PRICE_CLOSE,MODE_SIGNAL,0);
    double macd_D1=iMACD(NULL,PERIOD_D1,FastEMA,SlowEMA,SignalSMA,PRICE_CLOSE,MODE_MAIN,0); 
    double macd_DD1=iMACD(NULL,PERIOD_D1,FastEMA,SlowEMA,SignalSMA,PRICE_CLOSE,MODE_SIGNAL,0); 
    double macd_W1=iMACD(NULL,PERIOD_W1,FastEMA,SlowEMA,SignalSMA,PRICE_CLOSE,MODE_MAIN,0); 
    double macd_WW1=iMACD(NULL,PERIOD_W1,FastEMA,SlowEMA,SignalSMA,PRICE_CLOSE,MODE_SIGNAL,0); 
    double macd_MN1=iMACD(NULL,PERIOD_MN1,FastEMA,SlowEMA,SignalSMA,PRICE_CLOSE,MODE_MAIN,0); 
    double macd_MMN1=iMACD(NULL,PERIOD_MN1,FastEMA,SlowEMA,SignalSMA,PRICE_CLOSE,MODE_SIGNAL,0);
    //---X谩c 膽峄媙h trend t峄玭g khung th峄漣 gian
    double Trendup_M1=(macd_M1>macd_MM1);
    double Trenddown_M1=(macd_M1<macd_MM1);
    double Trendup_M5=(macd_M5>macd_MM5);
    double Trenddown_M5=(macd_M5<macd_MM5);
    double Trendup_M15=(macd_M15>macd_MM15);
    double Trenddown_M15=(macd_M15<macd_MM15);
    double Trendup_M30=(macd_M30>macd_MM30);
    double Trenddown_M30=(macd_M30<macd_MM30);
    double Trendup_H1=(macd_H1>macd_HH1);
    double Trenddown_H1=(macd_H1<macd_HH1);
    double Trendup_H4=(macd_H4>macd_HH4);
    double Trenddown_H4=(macd_H4<macd_HH4);
    double Trendup_D1=(macd_D1>macd_DD1);
    double Trenddown_D1=(macd_D1<macd_DD1);
    double Trendup_W1=(macd_W1>macd_WW1);
    double Trenddown_W1=(macd_W1<macd_WW1);
    double Trendup_MN1=(macd_MN1>macd_MMN1);
    double Trenddown_MN1=(macd_MN1<macd_MMN1);
    double TRENDUP=(Trendup_M1&&Trendup_M5);
    double TRENDDOWN=(Trenddown_M1&&Trenddown_M5); 
    //trend_signal ng岷痭 h岷
    double trendsignalup=TRENDUP;
    double trendsignaldown=TRENDDOWN;
    double TrendupM1=Trendup_M1;
    double TrenddownM1=Trenddown_M1;
    double TrendupM5=Trendup_M5;
    double TrenddownM5=Trenddown_M5;
    double TrendupM15=Trendup_M15;
    double TrenddownM15=Trenddown_M15;
    double TrendupM30=Trendup_M30;
    double TrenddownM30=Trenddown_M30;
     //--- Cau hinh nen
  double body1=(Close[1]-Open[1]);
  double body2=(Close[2]-Open[2]);
  double body3=(Close[3]-Open[3]);
  double body4=(Close[4]-Open[4]);
  double body5=(Close[5]-Open[5]);
  double middle1=((Open[1]+Close[1])/2);
  double middle2=((Open[2]+Close[2])/2);
  double middle3=((Open[3]+Close[3])/2);
  double middle4=((Open[4]+Close[4])/2);
  double middle5=((Open[5]+Close[5])/2);
  double abody1=MathAbs(body1);
  double abody2=MathAbs(body2);
  double abody3=MathAbs(body3);
  double abody4=MathAbs(body4);
  double abody5=MathAbs(body5);
  double range1=(High[1]-Low[1]);
  double range2=(High[2]-Low[2]);
  double range3=(High[3]-Low[3]);
  double range4=(High[4]-Low[4]);
  double range5=(High[5]-Low[5]);
  double ratio1=abody1/range1;
  double ratio2=abody2/range2;
  double ratio3=abody3/range3;
  double ratio4=abody4/range4;
  double ratio5=abody5/range5;
  double bodytop1=MathMax(Open[1],Close[1]);
  double bodytop2=MathMax(Open[2],Close[2]);
  double bodytop3=MathMax(Open[3],Close[3]);
  double bodytop4=MathMax(Open[4],Close[4]);
  double bodytop5=MathMax(Open[5],Close[5]);
  double bodybottom1=MathMin(Open[1],Close[1]);
  double bodybottom2=MathMin(Open[2],Close[2]);
  double bodybottom3=MathMin(Open[3],Close[3]);
  double bodybottom4=MathMin(Open[4],Close[4]);
  double bodybottom5=MathMin(Open[5],Close[5]);
  double shadowtop1=(High[1]-bodytop1);
  double shadowtop2=(High[2]-bodytop2);
  double shadowtop3=(High[3]-bodytop3);
  double shadowtop4=(High[4]-bodytop4);
  double shadowtop5=(High[5]-bodytop5);
  double shadowbottom1=(bodybottom1-Low[1]);
  double shadowbottom2=(bodybottom2-Low[2]);
  double shadowbottom3=(bodybottom3-Low[3]);
  double shadowbottom4=(bodybottom4-Low[4]);
  double shadowbottom5=(bodybottom5-Low[5]);
  double longcandle1=(ratio1>0.6);
  double longcandle2=(ratio2>0.6);
  double longcandle3=(ratio3>0.6);
  double longcandle4=(ratio4>0.6);
  double longcandle5=(ratio5>0.6);
  //--- Mau nen Buy
  double MorningStar=((body3<0)&&(body1>0)&&longcandle3&&(Open[2]<Close[3])&&(Open[1]>Close[2])&&(abody2<abody3)&&(abody2<abody1)&&(Low[2]<Low[1])&&(Low[2]<Low[3])&&(High[2]<Close[1]));
  double PiercingLine=((body2<0)&&(body1>0)&&longcandle2&&longcandle1&&(Open[1]<Low[2])&&(Close[1]>middle2)&&(Close[1]<Open[2]));
  double AbandoneBabyBottom=((body3)<0&&(body1>0)&&(longcandle3)&&(ratio1<0.3)&&(High[2]<Low[3])&&(High[2]<Low[1]));
  double ThreeInsideUp=((body3<0)&&(body2>0)&&(body1>0)&&((body3<0)&&(body2>0)&&(longcandle2)&&(bodybottom2>bodybottom3)&&(bodytop2<bodytop3))&&(Close[1]>Close[2]));
  double ThreeOutsideUp=((body3<0)&&(body2>0)&&(body1>0)&&((body3<0)&&(body2>0)&&(bodybottom2<bodybottom3)&&(bodytop2>bodytop3)&&(longcandle2))&&(Close[1]>Close[2]));
  double ThreeWhiteSoldiers=((body3>0)&&(body2>0)&&(body1>0)&&(High[2]>High[3])&&(High[1]>High[2])&&(Close[2]>Close[3])&&(Close[1]>Close[2])&&(Open[2]>Open[3])&&(Open[2]<Close[3])&&(Open[1]>Open[2])&&(Open[1]<Close[2]));
  double ConcealingBabySwallow=((body4<0)&&(body3<0)&&(body2<0)&&(body1<0)&&(ratio4>0.8)&&(ratio3>0.8)&&(ratio1>0.8)&&(Open[2]<Close[3])&&(High[2]>Close[3])&&(shadowtop2>0.6*(abody2+shadowbottom2))&&(bodybottom1<bodybottom2)&&(bodytop1>High[2]));
  double BullishHarami=((body2<0)&&(body1>0)&&(longcandle2)&&(bodybottom1>bodybottom2)&&(bodytop1<bodytop2));
  double BullishEngulfing=((body2<0)&&(body1>0)&&(bodybottom1<bodybottom2)&&(bodytop1>bodytop2)&&(longcandle1));
  double DragonflyDojiBottom=((body2<0)&&(longcandle2)&&(Low[1]<Low[2])&&(shadowbottom1>3*abody1)&&(shadowtop1<shadowbottom1/3));
  double GravestoneDojiBottom=((body2<0)&&(longcandle2)&&(Low[1]<Low[2])&&(shadowtop1>3*abody1)&&(shadowbottom1<shadowtop1/3));
  double DojiStarBottom=((body2<0)&&(longcandle2)&&(Low[1]<Low[2])&&(Open[1]<Close[2])&&(ratio1<0.3)&&(range1<0.3*range2));
  double BullishHaramiCross=((body2<0)&&(longcandle2)&&(bodybottom1>bodybottom2)&&(bodytop1<bodytop2)&&(ratio1<0.3)&&(range1<0.3*range2));
  double ThreeStarsInTheSouth=((body3<0)&&(body2<0)&&(body1<0)&&(shadowtop3<range3/4)&&(shadowbottom3>abody3/2)&&(Low[2]>Low[3])&&(High[2]<High[3])&&(abody2<abody3)&&(shadowtop2<range2/4)&&(shadowbottom2>abody2/2)&&(Low[1]>Low[2])&&(High[1]<High[2])&&(abody1<abody2)&&(shadowtop1<range1/4)&&(shadowbottom1<range1/4));
  double BullishBreakaway=((body5<0)&&(body4<0)&&(body1>0)&&(Open[4]<Open[5])&&(Close[3]<Close[4])&&(Close[2]<Close[3])&&(longcandle1)&&(Close[1]<Close[5])&&(Close[1]>Open[4]));
  double Hammer=((body2<0)&&(longcandle2)&&(Low[1]<Low[2])&&(shadowbottom1>2*abody1)&&(shadowtop1<0.3*abody1));
  double InvertedHammer=((body2<0)&&(longcandle2)&&(Low[1]<Low[2])&&(shadowtop1>2*abody1)&&(shadowtop1<0.3*abody1));
  double RisingThreeMethods=((body5>0)&&(body4<0)&&(body2<0)&&(body1>0)&&(longcandle5)&&(longcandle1)&&(Close[3]<Close[4])&&(Close[2]<Close[3])&&(High[3]<High[4])&&(High[2]<High[3])&&(Low[2]>Low[5])&&(Open[1]>Close[2])&&(Close[1]>High[5])&&(Close[1]>High[4])&&(Close[1]>High[3])&&(Close[1]>High[2]));
  double BullishThreeLineStrike=((body4>0)&&(body3>0)&&(body2>0)&&(body1<0)&&(longcandle4)&&(longcandle3)&&(longcandle2)&&(Close[3]>Close[4])&&(Close[2]>Close[3])&&(Open[1]>Close[2])&&(Close[1]<Open[4]));
  double BullishMatHold=((body5>0)&&(body4<0)&&(body2<0)&&(body1>0)&&(longcandle5)&&(Close[4]>Close[5])&&(Close[3]<Close[4])&&(Close[2]<Close[3])&&(High[3]<High[4])&&(High[2]<High[3])&&(Low[2]>Low[5])&&(Open[1]>Close[2])&&(Close[1]>High[5])&&(Close[1]>High[4])&&(Close[1]>High[3])&&(Close[1]>High[2]));
  //--- Mau nen Sell
  double EveningStar=((body3>0)&&(body1<0)&&(longcandle3)&&(Open[2]>Close[3])&&(Open[1]<Close[2])&&(ratio2<0.3)&&(abody2<abody3)&&(abody2<abody1)&&(High[2]>High[1])&&(High[2]>High[3])&&(Low[2]>Open[3])&&(Low[2]>Close[1]));
  double DarkCloudCover=((body2>0)&&(body1<0)&&(longcandle2)&&(longcandle1)&&(Open[1]>High[2])&&(Close[1]<middle2)&&(Close[1]>Open[2]));
  double AbandoneBabyTop=((body3>0)&&(body1<0)&&(longcandle3)&&(ratio2<0.3)&&(Low[2]>High[3])&&(Low[2]>High[1]));
  double ThreeInsideDown=((body3<0)&&(body2>0)&&(body1>0)&&((body3>0)&&(body2<0)&&(longcandle2)&&(bodybottom2<bodybottom3)&&(bodytop2>bodytop3))&&(Close[1]<Close[2]));
  double ThreeOutsideDown=((body3>0)&&(body2<0)&&(body1<0)&&((body3>0)&&(body2<0)&&(bodybottom2>bodybottom3)&&(bodytop2<bodytop3)&&(longcandle2))&&(Close[1]<Close[2]));
  double ThreeBlackCrows=((body3<0)&&(body2<0)&&(body1<0)&&(longcandle3)&&(longcandle2)&&(longcandle1)&&(Low[2]<Low[3])&&(Low[1]<Low[2])&&(Close[2]<Close[3])&&(Close[1]<Close[2])&&(Open[2]<Open[3])&&(Open[2]>Close[3])&&(Open[1]<Open[2])&&(Open[1]>Close[2]));
  double UpsideGapTwoCrows=((body3>0)&&(body2<0)&&(body1<0)&&(longcandle3)&&(Open[2]>Close[3])&&(bodytop1>bodytop2)&&(bodybottom1<bodybottom2)&&(Close[1]>Close[3]));
  double BearishHarami=((body2>0)&&(body1<0)&&(longcandle2)&&(bodybottom1>bodybottom2)&&(bodytop1<bodytop2));
  double BearishEngulfing=((body2>0)&&(body1<0)&&(bodybottom1<bodybottom2)&&(bodytop1>bodytop2)&&(longcandle1));
  double DragonflyDojiTop=((body2>0)&&(longcandle2)&&(High[1]>High[2])&&(shadowbottom1>3*abody1)&&(shadowtop1<shadowbottom1/3));
  double GravestoneDojiTop=((body2>0)&&(longcandle2)&&(High[1]>High[2])&&(shadowtop1>3*abody1)&&(shadowbottom1<shadowtop1/3));
  double DojiStarTop=((body2>0)&&(longcandle2)&&(High[1]>High[2])&&(Open[1]>Close[2])&&(ratio1<0.3)&&(range1<0.3*range2));
  double BearishHaramiCross=((body2>0)&&(longcandle2)&&(bodybottom1>bodybottom2)&&(bodytop1<bodytop2)&&(ratio1<0.3)&&(range1<0.3*range2));
  double AdvanceBlock=((body3>0)&&(body2>0)&&(body1>0)&&(High[3]<High[2])&&(High[2]<High[1])&&(Open[2]>bodybottom3)&&(Open[2]<bodytop3)&&(Open[1]>bodybottom2)&&(Open[1]<bodytop2)&&(abody2<abody2)&&(abody1<abody2));
  double TwoCrows=((body3>0)&&(body2<0)&&(body1<0)&&(longcandle3)&&(Open[2]>Close[3])&&(Close[2]>Close[3])&&(Open[1]<bodytop1)&&(Open[1]>bodybottom2)&&(Close[1]<bodytop3)&&(Close[1]>bodybottom3));
  double BearishBreakaway=((body5>0)&&(body4>0)&&(body1<0)&&(Open[4]>Open[5])&&(Close[3]>Close[4])&&(Close[2]>Close[3])&&(longcandle1)&&(Close[1]>Close[5])&&(Close[1]<Open[4]));
  double ShootingStar=((body2>0)&&(longcandle2)&&(High[1]>High[2])&&(shadowtop1>2*abody1)&&(shadowbottom1<0.3*abody1));
  double HangingMan=((body2>0)&&(longcandle2)&&(High[1]>High[2])&&(shadowbottom1>2*abody1)&&(shadowtop1<0.3*abody1));
  double FallingThreeMethods=((body5<0)&&(body4>0)&&(body2>0)&&(body1<0)&&(longcandle5)&&(longcandle1)&&(Close[3]>Close[4])&&(Close[2]>Close[3])&&(Low[3]>Low[4])&&(Low[2]>Low[3])&&(High[2]<High[5])&&(Open[1]<Close[2])&&(Close[1]<Low[5])&&(Close[1]<Low[4])&&(Close[1]<Low[3])&&(Close[1]<Low[2]));
  double BearishThreeLineStrike=((body4<0)&&(body3<0)&&(body2<0)&&(body1>0)&&(longcandle4)&&(longcandle3)&&(longcandle2)&&(Close[3]<Close[4])&&(Close[2]<Close[3])&&(Open[1]<Close[2])&&(Close[1]>Open[4]));
  double BearshMatHold=((body5<0)&&(body4>0)&&(body2>0)&&(body1<0)&&(longcandle5)&&(Close[4]<Close[5])&&(Close[3]>Close[4])&&(Close[2]>Close[3])&&(Low[3]>Low[4])&&(Low[2]>Low[3])&&(High[2]<High[5])&&(Open[1]<Close[2])&&(Close[1]<Low[5])&&(Close[1]<Low[4])&&(Close[1]<Low[3])&&(Close[1]<Low[2]));  
  if( TotalOrdersCount()==0 )
  {
     int result=0;
     if((trendtang)&&((Periodcandle)&&((MorningStar)||(PiercingLine)||(AbandoneBabyBottom)||(ThreeInsideUp)||(ThreeOutsideUp)||(ThreeWhiteSoldiers)||( ConcealingBabySwallow)||(BullishHarami)||(BullishEngulfing)||(DragonflyDojiBottom)||(GravestoneDojiBottom)||(DojiStarBottom)||(BullishHaramiCross)||(ThreeStarsInTheSouth)||(BullishBreakaway)||(Hammer)||(InvertedHammer)||(RisingThreeMethods)||(BullishThreeLineStrike)||(BullishMatHold)))&&(iRSI(NULL,Periodtrade,RSI5M,PRICE_CLOSE,0)<RSI5M20)&&(iCCI(NULL,Periodtrade,CCI5M,PRICE_CLOSE,0)<CCI5Ma)&&(iMFI(NULL,Periodtrade,MFI5M,0)<MFI5M20)&&(iStochastic(NULL,Periodtrade,5,3,3,MODE_SMA,1,MODE_MAIN,0)<STO5M20)) // Here is your open buy rule
     {
        result=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"EA Generator www.ForexEAdvisor.com",MagicNumber,0,Blue);
        if(result>0)
        {
         TheStopLoss=0;
         TheTakeProfit=0;
         if(TakeProfit>0) TheTakeProfit=Ask+TakeProfit*MyPoint;
         if(StopLoss>0) TheStopLoss=Ask-StopLoss*MyPoint;
         OrderSelect(result,SELECT_BY_TICKET);
         OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
        }
        return(0);
     }
     if((trendgiam)&&((Periodcandle)&&((EveningStar)||(DarkCloudCover)||(AbandoneBabyTop)||(ThreeInsideDown)||(ThreeOutsideDown)||(ThreeBlackCrows)||(UpsideGapTwoCrows)||(BearishHarami)||(BearishEngulfing)||(DragonflyDojiTop)||(GravestoneDojiTop)||(GravestoneDojiTop)||(DojiStarTop)||(BearishHaramiCross)||(AdvanceBlock)||(TwoCrows)||(BearishBreakaway)||(ShootingStar)||(HangingMan)||(FallingThreeMethods)||(BearishThreeLineStrike)||(BearshMatHold)))&&(iRSI(NULL,Periodtrade,RSI5M,PRICE_CLOSE,0)>RSI5M80)&&(iCCI(NULL,Periodtrade,CCI5M,PRICE_CLOSE,0)>CCI5Mb)&&(iMFI(NULL,Periodtrade,MFI5M,0)>MFI5M80)&&(iStochastic(NULL,Periodtrade,5,3,3,MODE_SMA,1,MODE_MAIN,0)>STO5M80)) // Here is your open Sell rule
     {
        result=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"EA Generator www.ForexEAdvisor.com",MagicNumber,0,Red);
        if(result>0)
        {
         TheStopLoss=0;
         TheTakeProfit=0;
         if(TakeProfit>0) TheTakeProfit=Bid-TakeProfit*MyPoint;
         if(StopLoss>0) TheStopLoss=Bid+StopLoss*MyPoint;
         OrderSelect(result,SELECT_BY_TICKET);
         OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
        }
        return(0);
     }
  }
  
  for(int cnt=0;cnt<OrdersTotal();cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELL &&   
         OrderSymbol()==Symbol() &&
         OrderMagicNumber()==MagicNumber 
         )  
        {
         if(OrderType()==OP_BUY)  
           {
            if(TrailingStop>0)  
              {                 
               if(Bid-OrderOpenPrice()>MyPoint*TrailingStop)
                 {
                  if(OrderStopLoss()<Bid-MyPoint*TrailingStop)
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green);
                     return(0);
                    }
                 }
              }
           }
         else 
           {
            if(TrailingStop>0)  
              {                 
               if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop))
                 {
                  if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(),0,Red);
                     return(0);
                    }
                 }
              }
           }
        }
     }
   return(0);
}

int TotalOrdersCount()
{
  int result=0;
  for(int i=0;i<OrdersTotal();i++)
  {
     OrderSelect(i,SELECT_BY_POS ,MODE_TRADES);
     if (OrderMagicNumber()==MagicNumber) result++;

   }
  return (result);
}
