gryps2/EA-code/Yoritsugu/Swing_GBPJPY_H1_v02.mq4

786 lines
54 KiB
MQL4
Raw Permalink Normal View History

2025-05-30 14:58:21 +02:00
<EFBFBD><EFBFBD>//+------------------------------------------------------------------+
//| TEST.mq4 |
//| Copyright 2016, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property strict
// Rc<EFBFBD>W<EFBFBD>[<EFBFBD>
enum ENUM_ONOFF{
off = 0, //OFF
on = 1 //ON
};
enum ENUM_PERIOD{
Period_M1 = 1, //1R<EFBFBD><EFBFBD>
Period_M5 = 5, //5R<EFBFBD><EFBFBD>
Period_M15 = 15, //15R<EFBFBD><EFBFBD>
Period_M30 = 30, //30R<EFBFBD><EFBFBD>
Period_H1 = 60, //1Bf<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Period_H4 = 240, //4Bf<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Period_D1 = 1440, //<EFBFBD>e<EFBFBD><EFBFBD>
Period_W1 = 10080, //1<EFBFBD><EFBFBD><EFBFBD>
Period_MN1 = 43200, //g<EFBFBD><EFBFBD>
};
input int Slippage = 3; //Slippage_Point
input int MaxSpreadPips = 5; //Spread_Pips
double xpoint;
double xspread;
input int MagicNumber = 12345;
input double Lots = 0.1;
input int TakeProfit_pips = 620;
input int StopLoss_pips = 230;
input int Rikaku_pips = 550;
input int Songiri_pips = 210;
extern ENUM_PERIOD EA_PERIOD = Period_H1;
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
input int TrailingStopStartPips = 110;
input int TrailingStopPips = 130;
//c$PR<EFBFBD>0 NR0n0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
input int ReLimitActionPips = 1000;
input int ReLimitPips = 1000;
int xBars=0, xxBars=0;
//g'Y<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0pe<EFBFBD>00 N<EFBFBD>g0eQ<EFBFBD>Rc<EFBFBD>[W0f0 NU0D00
int maxposition = 1;
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD><EFBFBD>Y$Pn00k0<z<EFBFBD>PU0[0<EFBFBD>04XTo00truek0W0f0 NU0D00
bool CandleStartStarting = true;
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0T Ype<EFBFBD>0 N<EFBFBD>k0<EFBFBD><EFBFBD><EFBFBD>0d0Q0~0Y00
input int BB_Period1_L = 8; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0Long<EFBFBD><EFBFBD>{g<EFBFBD><EFBFBD>1
input int BB_Period1_S = 20; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0Short<EFBFBD><EFBFBD>{g<EFBFBD><EFBFBD>1
input double BB_Hensa1 = 1.5; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0OP<EFBFBD>]1
input int BB_Period2_L = 80; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0Long<EFBFBD><EFBFBD>{g<EFBFBD><EFBFBD>2
input int BB_Period2_S = 50; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0Short<EFBFBD><EFBFBD>{g<EFBFBD><EFBFBD>2
input double BB_Hensa2 = 1.5; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0OP<EFBFBD>]2
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0T Ype<EFBFBD>0 N<EFBFBD>k0<EFBFBD><EFBFBD><EFBFBD>0d0Q0~0Y00
input int F_MA_period_L = 15; // <EFBFBD>y<EFBFBD>Rs^GW<EFBFBD>}n0Long<EFBFBD><EFBFBD>{g<EFBFBD><EFBFBD>
input int F_MA_period_S = 5; // <EFBFBD>y<EFBFBD>Rs^GW<EFBFBD>}n0Short<EFBFBD><EFBFBD>{g<EFBFBD><EFBFBD>
input int F_BB_Period_L = 30; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0Long<EFBFBD><EFBFBD>{g<EFBFBD><EFBFBD>
input int F_BB_Period_S = 20; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0Short<EFBFBD><EFBFBD>{g<EFBFBD><EFBFBD>
input double F_BB_Hensa = 1.0; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0OP<EFBFBD>]
input double F_BB_HabaFilter_percent_L = 1.2; // Long_<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0E^%<EFBFBD>E^<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 <EFBFBD>
input double F_BB_HabaFilter_percent_S = 0.6; // Short_<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0E^%<EFBFBD>E^<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 <EFBFBD>
//zln<EFBFBD>0<EFBFBD>0<EFBFBD>0n0T Ype<EFBFBD>0 N<EFBFBD>k0<EFBFBD><EFBFBD><EFBFBD>0d0Q0~0Y00
input double SAR_Entry_Step = 0.009; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0SARn0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 <EFBFBD>
input double SAR_Entry_Maximum = 0.2; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0SARn0
NP<EFBFBD>$P<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 <EFBFBD>
input double Open_Kairi_percent = 0.7; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>n0'YM0U0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0(%`=<EFBFBD>g0n0 dR)
input double Open_Kairi_percent2 = 0.9; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>n0'YM0U0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0(g'Y<EFBFBD>pg0n0)RߘD0)
input int K_BB_Period12 = 20; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0Long<EFBFBD><EFBFBD>{g<EFBFBD><EFBFBD>1
input double K_BB_Hensa12 = 3; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0OP<EFBFBD>]1
input int K_BB_Period22 = 50; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0Long<EFBFBD><EFBFBD>{g<EFBFBD><EFBFBD>2
input double K_BB_Hensa22 = 4.5; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0OP<EFBFBD>]2
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
// \pe<EFBFBD>p<EFBFBD>N Nn0Ahpek0<EFBFBD>_X0f0Pipsn0$P<EFBFBD>0<EFBFBD><EFBFBD>teY0<EFBFBD>0
xpoint = Point();
if (Digits() == 3 || Digits() == 5)
{
xpoint = xpoint * 10;
}
//O(uW0f0D0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0^<EFBFBD>h<EFBFBD>:yk0Y0<EFBFBD>0
HideTestIndicators(true);
return(0);
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
int i;
int ticket;
int CountBuy = 0,CountSell = 0;
double profit;
bool res;
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD><EFBFBD>Y$Pn00<z<EFBFBD>P<EFBFBD>x<EFBFBD><EFBFBD>b_ <EFBFBD>n04XT0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
if(Bars != xBars || CandleStartStarting == false)
{
xBars = Bars;
//-------- <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 --------
// @b gW0f0D0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Y0<EFBFBD>0
for(i=OrdersTotal()-1; i>=0; i--)
{
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0x<EFBFBD><EFBFBD>b(<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0uX0_04XT0<EFBFBD>0<EFBFBD>0<EFBFBD>0K0<EFBFBD>0<EFBFBD>bQ0<EFBFBD>QY0)
if (OrderSelect( i, SELECT_BY_POS, MODE_TRADES ) == false)
{
Print("OrderSelect returned the error of ", GetLastError() );
break;
}
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>x<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>0L0N<EFBFBD><EFBFBD>W0j0D04XTo00for<EFBFBD>en0HQ-<EFBFBD>k0;b<EFBFBD>0 <EFBFBD>
if (OrderSymbol() != Symbol()) continue;
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>x<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0L0N<EFBFBD><EFBFBD>W0j0D04XTo00for<EFBFBD>en0HQ-<EFBFBD>k0;b<EFBFBD>0 <EFBFBD>
if (OrderMagicNumber() != MagicNumber) continue;
if (OrderType() == OP_BUY)
{
profit = Bid - OrderOpenPrice(); // <EFBFBD><EFBFBD>D0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0`0c0_04XTn00+T0 d<EFBFBD>v<EFBFBD>0<EFBFBD><EFBFBD>{Y0<EFBFBD>0
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0b<EFBFBD>0L<EFBFBD>M0zlnY0<EFBFBD>0
if (profit >= Rikaku_pips * xpoint || profit <= -Songiri_pips * xpoint || Exit2() == 2)
{
res = OrderClose(OrderTicket(),
OrderLots(),
Bid,
NULL,
Green);
}
}
if (OrderType() == OP_SELL)
{
profit = OrderOpenPrice() - Ask; // <EFBFBD>X<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0`0c0_04XTn00+T0 d<EFBFBD>v<EFBFBD>0<EFBFBD><EFBFBD>{Y0<EFBFBD>0
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0b<EFBFBD>0L<EFBFBD>M0zlnY0<EFBFBD>0
if (profit >= Rikaku_pips * xpoint || profit <= -Songiri_pips * xpoint || Exit1() == 1)
{
res = OrderClose(OrderTicket(),
OrderLots(),
Ask,
NULL,
Green);
}
}
}
//-------- <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 <EFBFBD> --------
//-------- <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 --------
// @b gW0f0D0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0SL, TP<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Y0<EFBFBD>0
for(i=OrdersTotal()-1; i>=0; i--)
{
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0x<EFBFBD><EFBFBD>b(<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0uX0_04XT0<EFBFBD>0<EFBFBD>0<EFBFBD>0K0<EFBFBD>0<EFBFBD>bQ0<EFBFBD>QY0)
if (OrderSelect( i, SELECT_BY_POS, MODE_TRADES ) == false)
{
Print("OrderSelect returned the error of ", GetLastError() );
break;
}
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>x<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>0L0N<EFBFBD><EFBFBD>W0j0D04XTo00for<EFBFBD>en0HQ-<EFBFBD>k0;b<EFBFBD>0 <EFBFBD>
if (OrderSymbol() != Symbol()) continue;
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>x<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0L0N<EFBFBD><EFBFBD>W0j0D04XTo00for<EFBFBD>en0HQ-<EFBFBD>k0;b<EFBFBD>0 <EFBFBD>
if (OrderMagicNumber() != MagicNumber) continue;
if (OrderType() == OP_BUY)
{
profit = Bid - OrderOpenPrice(); // <EFBFBD><EFBFBD>D0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0`0c0_04XTn00+T0 d<EFBFBD>v<EFBFBD>0<EFBFBD><EFBFBD>{Y0<EFBFBD>0
// TrailingStop<EFBFBD>0<EFBFBD>x<EFBFBD><EFBFBD>Y0<EFBFBD>0
if (profit >= TrailingStopStartPips * xpoint && OrderStopLoss() < NormalizeDouble(Bid - TrailingStopPips * xpoint, Digits()))
{
res = OrderModify(OrderTicket(),
OrderOpenPrice(),
NormalizeDouble(Bid - TrailingStopPips * xpoint, Digits()),
OrderTakeProfit(),
0,
Green);
}
// c$Pn0nM0j0J0W0<EFBFBD>0<EFBFBD>x<EFBFBD><EFBFBD>Y0<EFBFBD>0
else if (Bid <= NormalizeDouble(OrderOpenPrice() - ReLimitActionPips * xpoint, Digits())
&& OrderTakeProfit() != NormalizeDouble(OrderOpenPrice() + ReLimitPips * xpoint, Digits()))
{
res = OrderModify(OrderTicket(),
OrderOpenPrice(),
OrderStopLoss(),
OrderOpenPrice() + ReLimitPips * xpoint,
0,
Green);
}
}
if (OrderType() == OP_SELL)
{
profit = OrderOpenPrice() - Ask; // <EFBFBD>X<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0`0c0_04XTn00+T0 d<EFBFBD>v<EFBFBD>0<EFBFBD><EFBFBD>{Y0<EFBFBD>0
// TrailingStop<EFBFBD>0<EFBFBD>x<EFBFBD><EFBFBD>Y0<EFBFBD>0
if (profit >= TrailingStopStartPips * xpoint && OrderStopLoss() > NormalizeDouble(Ask + TrailingStopPips * xpoint, Digits()))
{
res = OrderModify(OrderTicket(),
OrderOpenPrice(),
NormalizeDouble(Ask + TrailingStopPips * xpoint, Digits()),
OrderTakeProfit(),
0,
Green);
}
// c$Pn0nM0j0J0W0<EFBFBD>0<EFBFBD>x<EFBFBD><EFBFBD>Y0<EFBFBD>0
else if (Ask >= NormalizeDouble(OrderOpenPrice() + ReLimitActionPips * xpoint, Digits())
&& OrderTakeProfit() != NormalizeDouble(OrderOpenPrice() - ReLimitPips * xpoint, Digits()))
{
res = OrderModify(OrderTicket(),
OrderOpenPrice(),
OrderStopLoss(),
OrderOpenPrice() - ReLimitPips * xpoint,
0,
Green);
}
}
}
//-------- <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 <EFBFBD> --------
//-------- <EFBFBD>e<EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 --------
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0pe<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Y0<EFBFBD>0
for(i=OrdersTotal()-1; i>=0; i--)
{
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0x<EFBFBD><EFBFBD>b(<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0uX0_04XT0<EFBFBD>0<EFBFBD>0<EFBFBD>0K0<EFBFBD>0<EFBFBD>bQ0<EFBFBD>QY0)
if (OrderSelect( i, SELECT_BY_POS, MODE_TRADES ) == false)
{
Print("OrderSelect returned the error of ", GetLastError() );
break;
}
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>x<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>0L0N<EFBFBD><EFBFBD>W0j0D04XTo00for<EFBFBD>en0HQ-<EFBFBD>k0;b<EFBFBD>0 <EFBFBD>
if (OrderSymbol() != Symbol()) continue;
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>x<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0L0N<EFBFBD><EFBFBD>W0j0D04XTo00for<EFBFBD>en0HQ-<EFBFBD>k0;b<EFBFBD>0 <EFBFBD>
if (OrderMagicNumber() != MagicNumber) continue;
if (OrderType() == OP_BUY)
{
CountBuy = CountBuy + 1;
}
if (OrderType() == OP_SELL)
{
CountSell = CountSell + 1;
}
}
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>x<EFBFBD><EFBFBD>
xspread = (Ask - Bid) / xpoint;
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0ag<EFBFBD>N<EFBFBD>0<EFBFBD>x<EFBFBD><EFBFBD>W00b<EFBFBD>zW0f0D0<EFBFBD>0p0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0L<EFBFBD>F0
if (Entry() == 1 && CountBuy < maxposition && xxBars != Bars && xspread <= MaxSpreadPips)
{
ticket = OrderSend(Symbol(),
OP_BUY,
Lots,
Ask,
Slippage,
0,
0,
"Buy",
MagicNumber,
0,
Blue);
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0k0b<EFBFBD>RW0f0D0<EFBFBD>0p00TP, SL<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Y0<EFBFBD>0
if (ticket != -1)
{
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Oc0f0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0x<EFBFBD><EFBFBD>b(<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0uX0_04XT0UO<EFBFBD>0W0j0D0)
if( OrderSelect( ticket, SELECT_BY_TICKET ) == true )
{
res = OrderModify(OrderTicket(),
OrderOpenPrice(),
OrderOpenPrice() - StopLoss_pips * xpoint,
OrderOpenPrice() + TakeProfit_pips * xpoint,
0,
MediumSeaGreen);
}
}
xxBars = Bars;
}
else if (Entry() == 2 && CountSell < maxposition && xxBars != Bars && xspread <= MaxSpreadPips)
{
ticket = OrderSend(Symbol(),
OP_SELL,
Lots,
Bid,
Slippage,
0,
0,
"Sell",
MagicNumber,
0,
Red);
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0k0b<EFBFBD>RW0f0D0<EFBFBD>0p00TP, SL<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Y0<EFBFBD>0
if (ticket != -1)
{
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Oc0f0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0x<EFBFBD><EFBFBD>b(<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0uX0_04XT0UO<EFBFBD>0W0j0D0)
if( OrderSelect( ticket, SELECT_BY_TICKET ) == true )
{
res = OrderModify(OrderTicket(),
OrderOpenPrice(),
OrderOpenPrice() + StopLoss_pips * xpoint,
OrderOpenPrice() - TakeProfit_pips * xpoint,
0,
MediumSeaGreen);
}
}
xxBars = Bars;
}
//-------- <EFBFBD>e<EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 <EFBFBD> --------
}
//0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD><EFBFBD>Y$Pn00<z<EFBFBD>P<EFBFBD>x<EFBFBD><EFBFBD>b_ <EFBFBD>n0<EFBFBD>{<EFBFBD>Vo00<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
//-------- <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0TP, SLn0<EFBFBD>0<EFBFBD>0<EFBFBD>0 --------
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0k0TP, SL<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Y0<EFBFBD>0
for(i=OrdersTotal()-1; i>=0; i--)
{
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0x<EFBFBD><EFBFBD>b(<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0uX0_04XT0<EFBFBD>0<EFBFBD>0<EFBFBD>0K0<EFBFBD>0<EFBFBD>bQ0<EFBFBD>QY0)
if (OrderSelect( i, SELECT_BY_POS, MODE_TRADES ) == false)
{
Print("OrderSelect returned the error of ", GetLastError() );
break;
}
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>x<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>0L0N<EFBFBD><EFBFBD>W0j0D04XTo00for<EFBFBD>en0HQ-<EFBFBD>k0;b<EFBFBD>0 <EFBFBD>
if (OrderSymbol() != Symbol()) continue;
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>x<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0L0N<EFBFBD><EFBFBD>W0j0D04XTo00for<EFBFBD>en0HQ-<EFBFBD>k0;b<EFBFBD>0 <EFBFBD>
if (OrderMagicNumber() != MagicNumber) continue;
// <EFBFBD><EFBFBD>D0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n04XT
if (OrderType() == OP_BUY)
{
profit = Bid - OrderOpenPrice(); // <EFBFBD><EFBFBD>D0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0`0c0_04XTn00+T0 d<EFBFBD>v<EFBFBD>0<EFBFBD><EFBFBD>{Y0<EFBFBD>0
// TP, SLL0i0a0<EFBFBD>0<EFBFBD>0-<EFBFBD><EFBFBD>[U0<EFBFBD>0f0D0j0Q0<EFBFBD>0p00TP, SL<EFBFBD>0-<EFBFBD><EFBFBD>[Y0<EFBFBD>0
if (OrderStopLoss() == 0 && OrderTakeProfit() == 0)
{
res = OrderModify(OrderTicket(), OrderOpenPrice(),
OrderOpenPrice() - StopLoss_pips * xpoint,
OrderOpenPrice() + TakeProfit_pips * xpoint,
0, MediumSeaGreen);
}
}
// <EFBFBD>X<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n04XT
if (OrderType() == OP_SELL)
{
profit = OrderOpenPrice() - Ask; // <EFBFBD>X<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0`0c0_04XTn00+T0 d<EFBFBD>v<EFBFBD>0<EFBFBD><EFBFBD>{Y0<EFBFBD>0
// TP, SLL0i0a0<EFBFBD>0<EFBFBD>0-<EFBFBD><EFBFBD>[U0<EFBFBD>0f0D0j0Q0<EFBFBD>0p00TP, SL<EFBFBD>0-<EFBFBD><EFBFBD>[Y0<EFBFBD>0
if (OrderStopLoss() == 0 && OrderTakeProfit() == 0)
{
res = OrderModify(OrderTicket(), OrderOpenPrice(),
OrderOpenPrice() + StopLoss_pips * xpoint,
OrderOpenPrice() - TakeProfit_pips * xpoint,
0, MediumSeaGreen);
}
}
}
//-------- <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0TP, SLn0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 <EFBFBD> --------
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>}<EFBFBD>b |
//+------------------------------------------------------------------+
int Entry()
{
if (Entry_Rule1(BB_Period1_L,BB_Period2_L) == 1 && (Entry_Filter1(F_MA_period_L) == 1 || Entry_Filter1(F_MA_period_L) == 3)
&& (Entry_Filter2(F_BB_Period_L,F_BB_HabaFilter_percent_L) == 1 || Entry_Filter2(F_BB_Period_L,F_BB_HabaFilter_percent_L) == 3)
&& (Entry_Filter3() == 1 || Entry_Filter3() == 3)
&& (Entry_Filter4() == 1 || Entry_Filter4() == 3)
&& (Entry_Filter5() == 1 || Entry_Filter5() == 3)
)
{
return(1);
}
else if (Entry_Rule1(BB_Period1_S,BB_Period2_S) == 2 && (Entry_Filter1(F_MA_period_S) == 2 || Entry_Filter1(F_MA_period_S) == 3)
&& (Entry_Filter2(F_BB_Period_S,F_BB_HabaFilter_percent_S) == 2 || Entry_Filter2(F_BB_Period_S,F_BB_HabaFilter_percent_S) == 3)
&& (Entry_Filter3() == 2 || Entry_Filter3() == 3)
&& (Entry_Filter4() == 2 || Entry_Filter4() == 3)
&& (Entry_Filter5() == 2 || Entry_Filter5() == 3)
)
{
return(2);
}
else
{
return(0);
}
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| <EFBFBD>X<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0zln<EFBFBD>}<EFBFBD>b |
//+------------------------------------------------------------------+
int Exit1()
{
if (Exit_Rule1(BB_Period1_S,BB_Period2_S) == 3 && Exit_Rule2() == 3 && Exit_Rule3() == 3 && Exit_Rule4() == 3 && Exit_Rule5() == 3)
{
return(0);
}
else if (Exit_Rule1(BB_Period1_S,BB_Period2_S) == 1)
{
return(1);
}
else if( Exit_Rule2() == 1)
{
return(1);
}
else if (Exit_Rule3() == 1)
{
return(1);
}
else if( Exit_Rule4() == 1)
{
return(1);
}
else if (Exit_Rule5() == 1)
{
return(1);
}
else
{
return(0);
}
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| <EFBFBD><EFBFBD>D0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0zln<EFBFBD>}<EFBFBD>b |
//+------------------------------------------------------------------+
int Exit2()
{
if (Exit_Rule1(BB_Period1_L,BB_Period2_L) == 3 && Exit_Rule2() == 3 && Exit_Rule3() == 3 && Exit_Rule4() == 3 && Exit_Rule5() == 3)
{
return(0);
}
else if (Exit_Rule1(BB_Period1_L,BB_Period2_L) == 2)
{
return(2);
}
else if (Exit_Rule2() == 2)
{
return(2);
}
else if (Exit_Rule3() == 2)
{
return(2);
}
else if (Exit_Rule4() == 2)
{
return(2);
}
else if (Exit_Rule5() == 2)
{
return(2);
}
else
{
return(0);
}
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>01 |
//+------------------------------------------------------------------+
int Entry_Rule1(int Period1,int Period2)
{
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>01<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0<EFBFBD>0Bfo00 N<EFBFBD><EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0f0 NU0D00
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>n0+<EFBFBD><EFBFBD>L0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>n0+<EFBFBD><EFBFBD><EFBFBD>0
N<EFBFBD>bQ0g0 0<EFBFBD><EFBFBD>D0 0
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>n0-<EFBFBD><EFBFBD>L0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>n0-<EFBFBD><EFBFBD><EFBFBD>0 N<EFBFBD>bQ0g0 0<EFBFBD>X<EFBFBD>0 0
double UpperBB11 = iBands(NULL,EA_PERIOD, Period1, BB_Hensa1, 0, PRICE_CLOSE, MODE_UPPER, 1);
double LowerBB11 = iBands(NULL,EA_PERIOD, Period1, BB_Hensa1, 0, PRICE_CLOSE, MODE_LOWER, 1);
double UpperBB12 = iBands(NULL,EA_PERIOD, Period1, BB_Hensa1, 0, PRICE_CLOSE, MODE_UPPER, 2);
double LowerBB12 = iBands(NULL,EA_PERIOD ,Period1, BB_Hensa1, 0, PRICE_CLOSE, MODE_LOWER, 2);
double UpperBB21 = iBands(NULL,EA_PERIOD, Period2, BB_Hensa2, 0, PRICE_CLOSE, MODE_UPPER, 1);
double LowerBB21 = iBands(NULL,EA_PERIOD, Period2, BB_Hensa2, 0, PRICE_CLOSE, MODE_LOWER, 1);
double UpperBB22 = iBands(NULL,EA_PERIOD, Period2, BB_Hensa2, 0, PRICE_CLOSE, MODE_UPPER, 2);
double LowerBB22 = iBands(NULL,EA_PERIOD ,Period2, BB_Hensa2, 0, PRICE_CLOSE, MODE_LOWER, 2);
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>n0+<EFBFBD><EFBFBD>L0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>n0+<EFBFBD><EFBFBD><EFBFBD>0
N<EFBFBD>bQ0g0 0<EFBFBD><EFBFBD>D0 0
if (UpperBB12 < UpperBB22 && UpperBB11 >= UpperBB21)
{
return(1);
} // <EFBFBD><EFBFBD>D0
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>n0-<EFBFBD><EFBFBD>L0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>n0-<EFBFBD><EFBFBD><EFBFBD>0 N<EFBFBD>bQ0g0 0<EFBFBD>X<EFBFBD>0 0
else if (LowerBB12 > LowerBB22 && LowerBB11 <= LowerBB21)
{
return(2);
} // <EFBFBD>X<EFBFBD>0
else
{
return(0);
}
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>01<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0<EFBFBD>0Bfo00<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0f0 NU0D00
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>01 |
//+------------------------------------------------------------------+
int Entry_Filter1(int F_Period)
{
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>01<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0<EFBFBD>0Bfo00 N<EFBFBD><EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0f0 NU0D00
// <EFBFBD>y<EFBFBD>Rs^GW<EFBFBD>}n0<EFBFBD>PM0L0
N<EFBFBD>eTn0Bfo0 0<EFBFBD><EFBFBD>D0 00 N<EFBFBD>eTn0Bfo0 0<EFBFBD>X<EFBFBD>0 0
double MA2 = iMA(NULL,EA_PERIOD, F_Period, 0, MODE_SMA, PRICE_CLOSE, 2);
double MA1 = iMA(NULL,EA_PERIOD, F_Period, 0, MODE_SMA, PRICE_CLOSE, 1);
// <EFBFBD>y<EFBFBD>Rs^GW<EFBFBD>}n0<EFBFBD>PM0L0
N<EFBFBD>eTn0Bfo0 0<EFBFBD><EFBFBD>D0 0
if (MA2 < MA1)
{
return(1);
} // <EFBFBD><EFBFBD>D0
// <EFBFBD>y<EFBFBD>Rs^GW<EFBFBD>}n0<EFBFBD>PM0L0 N<EFBFBD>eTn0Bfo0 0<EFBFBD>X<EFBFBD>0 0
else if (MA2 > MA1)
{
return(2);
} // <EFBFBD>X<EFBFBD>0
else
{
return(0);
}
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>01<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0<EFBFBD>0Bfo00<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0f0 NU0D00
return(3);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>02 |
//+------------------------------------------------------------------+
int Entry_Filter2(int F_Period,double F_Haba)
{
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>02<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0<EFBFBD>0Bfo00 N<EFBFBD><EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0f0 NU0D00
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0E^<EFBFBD>
NtP<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 NtP<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0$P <EFBFBD>L00c<EFBFBD>[<EFBFBD><EFBFBD>N Nn0Bfk0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Y0<EFBFBD>0S0h0L0<EFBFBD>S<EFBFBD><EFBFBD>
double UpperBB1 = iBands(NULL,EA_PERIOD, F_Period, F_BB_Hensa, 0, PRICE_CLOSE, MODE_UPPER, 1);
double LowerBB1 = iBands(NULL,EA_PERIOD, F_Period, F_BB_Hensa, 0, PRICE_CLOSE, MODE_LOWER, 1);
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0E^<EFBFBD>
NtP<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 NtP<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0$P <EFBFBD>L00c<EFBFBD>[<EFBFBD><EFBFBD>N Nn0Bfk0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Y0<EFBFBD>0S0h0L0<EFBFBD>S<EFBFBD><EFBFBD>
if( (UpperBB1 - LowerBB1) / iClose(NULL,EA_PERIOD,1) * 100.0 <= F_Haba)
{
return(3);
} // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>Qeg<EFBFBD>0<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 <EFBFBD>
else
{
return(0);
}
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>02<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0<EFBFBD>0Bfo00<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0f0 NU0D00
return(3);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>03 |
//+------------------------------------------------------------------+
int Entry_Filter3()
{
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>03<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0<EFBFBD>0Bfo00 N<EFBFBD><EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0f0 NU0D00
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>03<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0<EFBFBD>0Bfo00<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0f0 NU0D00
return(3);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>04 |
//+------------------------------------------------------------------+
int Entry_Filter4()
{
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>04<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0<EFBFBD>0Bfo00 N<EFBFBD><EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0f0 NU0D00
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>04<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0<EFBFBD>0Bfo00<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0f0 NU0D00
return(3);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>05 |
//+------------------------------------------------------------------+
int Entry_Filter5()
{
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>05<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0<EFBFBD>0Bfo00 N<EFBFBD><EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0f0 NU0D00
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>05<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0<EFBFBD>0Bfo00<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0f0 NU0D00
return(3);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| zln<EFBFBD>0<EFBFBD>0<EFBFBD>01 |
//+------------------------------------------------------------------+
int Exit_Rule1(int Period1,int Period2)
{
// zln<EFBFBD>0<EFBFBD>0<EFBFBD>01<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0<EFBFBD>0Bfo00 N<EFBFBD><EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0f0 NU0D00
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>n0+<EFBFBD><EFBFBD>L0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>n0+<EFBFBD><EFBFBD><EFBFBD>0
N<EFBFBD>bQ0g0 0<EFBFBD><EFBFBD>D0 0
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>n0-<EFBFBD><EFBFBD>L0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>n0-<EFBFBD><EFBFBD><EFBFBD>0 N<EFBFBD>bQ0g0 0<EFBFBD>X<EFBFBD>0 0
double UpperBB11 = iBands(NULL,EA_PERIOD, Period1, BB_Hensa1, 0, PRICE_CLOSE, MODE_UPPER, 1);
double LowerBB11 = iBands(NULL,EA_PERIOD, Period1, BB_Hensa1, 0, PRICE_CLOSE, MODE_LOWER, 1);
double UpperBB12 = iBands(NULL,EA_PERIOD, Period1, BB_Hensa1, 0, PRICE_CLOSE, MODE_UPPER, 2);
double LowerBB12 = iBands(NULL,EA_PERIOD ,Period1, BB_Hensa1, 0, PRICE_CLOSE, MODE_LOWER, 2);
double UpperBB21 = iBands(NULL,EA_PERIOD, Period2, BB_Hensa2, 0, PRICE_CLOSE, MODE_UPPER, 1);
double LowerBB21 = iBands(NULL,EA_PERIOD, Period2, BB_Hensa2, 0, PRICE_CLOSE, MODE_LOWER, 1);
double UpperBB22 = iBands(NULL,EA_PERIOD, Period2, BB_Hensa2, 0, PRICE_CLOSE, MODE_UPPER, 2);
double LowerBB22 = iBands(NULL,EA_PERIOD ,Period2, BB_Hensa2, 0, PRICE_CLOSE, MODE_LOWER, 2);
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>n0+<EFBFBD><EFBFBD>L0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>n0+<EFBFBD><EFBFBD><EFBFBD>0
N<EFBFBD>bQ0g0 0<EFBFBD><EFBFBD>D0 0
if (UpperBB12 < UpperBB22 && UpperBB11 >= UpperBB21)
{
return(1);
} // <EFBFBD><EFBFBD>D0
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>n0-<EFBFBD><EFBFBD>L0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>n0-<EFBFBD><EFBFBD><EFBFBD>0 N<EFBFBD>bQ0g0 0<EFBFBD>X<EFBFBD>0 0
else if (LowerBB12 > LowerBB22 && LowerBB11 <= LowerBB21)
{
return(2);
} // <EFBFBD>X<EFBFBD>0
else
{
return(0);
}
// zln<EFBFBD>0<EFBFBD>0<EFBFBD>01<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0<EFBFBD>0Bfo00<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0f0 NU0D00
return(3);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| zln<EFBFBD>0<EFBFBD>0<EFBFBD>02 |
//+------------------------------------------------------------------+
int Exit_Rule2()
{
// zln<EFBFBD>0<EFBFBD>0<EFBFBD>02<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0<EFBFBD>0Bfo00 N<EFBFBD><EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0f0 NU0D00
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0SARL00<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>n0 NtPk0M0_0<EFBFBD>0<EFBFBD>
NTM0n0<EFBFBD>PM0k0j0c0_0<EFBFBD>0 <EFBFBD> 0<EFBFBD><EFBFBD>D0 0
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0SARL00<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>n0
NtPk0M0_0<EFBFBD>0<EFBFBD> NTM0n0<EFBFBD>PM0k0j0c0_0<EFBFBD>0 <EFBFBD> 0<EFBFBD>X<EFBFBD>0 0
double SAR1 = iSAR(NULL,EA_PERIOD, SAR_Entry_Step, SAR_Entry_Maximum, 1);
double SAR2 = iSAR(NULL,EA_PERIOD, SAR_Entry_Step, SAR_Entry_Maximum, 2);
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0SARL00<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>n0 NtPk0M0_0<EFBFBD>0<EFBFBD>
NTM0n0<EFBFBD>PM0k0j0c0_0<EFBFBD>0 <EFBFBD> 0<EFBFBD><EFBFBD>D0 0
if (SAR1 < iClose(NULL,EA_PERIOD,1) && iClose(NULL,EA_PERIOD,2) < SAR2)
{
return(1);
} // <EFBFBD><EFBFBD>D0
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0SARL00<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>n0
NtPk0M0_0<EFBFBD>0<EFBFBD> NTM0n0<EFBFBD>PM0k0j0c0_0<EFBFBD>0 <EFBFBD> 0<EFBFBD>X<EFBFBD>0 0
else if (SAR1 > iClose(NULL,EA_PERIOD,1) && iClose(NULL,EA_PERIOD,2) > SAR2)
{
return(2);
} // <EFBFBD>X<EFBFBD>0
else
{
return(0);
}
// zln<EFBFBD>0<EFBFBD>0<EFBFBD>02<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0<EFBFBD>0Bfo00<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0f0 NU0D00
return(3);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| zln<EFBFBD>0<EFBFBD>0<EFBFBD>03 |
//+------------------------------------------------------------------+
int Exit_Rule3()
{
// zln<EFBFBD>0<EFBFBD>0<EFBFBD>03<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0<EFBFBD>0Bfo00 N<EFBFBD><EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0f0 NU0D00
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>L0}<EFBFBD><EFBFBD>}g0<EFBFBD><EFBFBD>D0
if (iClose(NULL,EA_PERIOD,1) > iOpen(NULL,EA_PERIOD,1) &&(iClose(NULL,EA_PERIOD,1) - iOpen(NULL,EA_PERIOD,1))> iClose(NULL,EA_PERIOD,1) * Open_Kairi_percent / 100.0)
{
return(1);
} // <EFBFBD><EFBFBD>D0
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>L0p<EFBFBD><EFBFBD>}g0<EFBFBD>X<EFBFBD>0
else if (iClose(NULL,EA_PERIOD,1) < iOpen(NULL,EA_PERIOD,1) && (iOpen(NULL,EA_PERIOD,1) - iClose(NULL,EA_PERIOD,1))> iClose(NULL,EA_PERIOD,1) * Open_Kairi_percent / 100.0)
{
return(2);
} // <EFBFBD>X<EFBFBD>0
else
{
return(0);
}
// zln<EFBFBD>0<EFBFBD>0<EFBFBD>03<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0<EFBFBD>0Bfo00<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0f0 NU0D00
return(3);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| zln<EFBFBD>0<EFBFBD>0<EFBFBD>04 |
//+------------------------------------------------------------------+
int Exit_Rule4()
{
// zln<EFBFBD>0<EFBFBD>0<EFBFBD>04<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0<EFBFBD>0Bfo00 N<EFBFBD><EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0f0 NU0D00
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>L0'Y}<EFBFBD><EFBFBD>}g0<EFBFBD>X<EFBFBD>0
if (iClose(NULL,EA_PERIOD,1) > iOpen(NULL,EA_PERIOD,1) &&(iClose(NULL,EA_PERIOD,1) - iOpen(NULL,EA_PERIOD,1))> iClose(NULL,EA_PERIOD,1) * Open_Kairi_percent2 / 100.0)
{
return(2);
} // <EFBFBD><EFBFBD>D0
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>L0'Yp<EFBFBD><EFBFBD>}g0<EFBFBD><EFBFBD>D0
else if (iClose(NULL,EA_PERIOD,1) < iOpen(NULL,EA_PERIOD,1) && (iOpen(NULL,EA_PERIOD,1) - iClose(NULL,EA_PERIOD,1))> iClose(NULL,EA_PERIOD,1) * Open_Kairi_percent2 / 100.0)
{
return(1);
} // <EFBFBD>X<EFBFBD>0
else
{
return(0);
}
// zln<EFBFBD>0<EFBFBD>0<EFBFBD>04<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0<EFBFBD>0Bfo00<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0f0 NU0D00
return(3);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| zln<EFBFBD>0<EFBFBD>0<EFBFBD>05 |
//+------------------------------------------------------------------+
int Exit_Rule5()
{
// zln<EFBFBD>0<EFBFBD>0<EFBFBD>05<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0<EFBFBD>0Bfo00 N<EFBFBD><EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0f0 NU0D00
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>n0+<EFBFBD><EFBFBD>L0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>n0+<EFBFBD><EFBFBD><EFBFBD>0
N<EFBFBD>bQ0g0 0<EFBFBD><EFBFBD>D0 0
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>n0-<EFBFBD><EFBFBD>L0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>n0-<EFBFBD><EFBFBD><EFBFBD>0 N<EFBFBD>bQ0g0 0<EFBFBD>X<EFBFBD>0 0
double UpperBB11 = iBands(NULL,EA_PERIOD, K_BB_Period12, K_BB_Hensa12, 0, PRICE_CLOSE, MODE_UPPER, 1);
double LowerBB11 = iBands(NULL,EA_PERIOD, K_BB_Period12, K_BB_Hensa12, 0, PRICE_CLOSE, MODE_LOWER, 1);
double UpperBB12 = iBands(NULL,EA_PERIOD, K_BB_Period12, K_BB_Hensa12, 0, PRICE_CLOSE, MODE_UPPER, 2);
double LowerBB12 = iBands(NULL,EA_PERIOD ,K_BB_Period12, K_BB_Hensa12, 0, PRICE_CLOSE, MODE_LOWER, 2);
double UpperBB21 = iBands(NULL,EA_PERIOD, K_BB_Period22, K_BB_Hensa22, 0, PRICE_CLOSE, MODE_UPPER, 1);
double LowerBB21 = iBands(NULL,EA_PERIOD, K_BB_Period22, K_BB_Hensa22, 0, PRICE_CLOSE, MODE_LOWER, 1);
double UpperBB22 = iBands(NULL,EA_PERIOD, K_BB_Period22, K_BB_Hensa22, 0, PRICE_CLOSE, MODE_UPPER, 2);
double LowerBB22 = iBands(NULL,EA_PERIOD ,K_BB_Period22, K_BB_Hensa22, 0, PRICE_CLOSE, MODE_LOWER, 2);
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>n0+<EFBFBD><EFBFBD>L0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>n0+<EFBFBD><EFBFBD><EFBFBD>0
N<EFBFBD>bQ0g0 0<EFBFBD>X<EFBFBD>0 0
if (UpperBB12 < UpperBB22 && UpperBB11 >= UpperBB21)
{
return(1);
} // <EFBFBD><EFBFBD>D0
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>n0-<EFBFBD><EFBFBD>L0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>n0-<EFBFBD><EFBFBD><EFBFBD>0 N<EFBFBD>bQ0g0 0<EFBFBD><EFBFBD>D0 0
else if (LowerBB12 > LowerBB22 && LowerBB11 <= LowerBB21)
{
return(2);
} // <EFBFBD>X<EFBFBD>0
else
{
return(0);
}
// zln<EFBFBD>0<EFBFBD>0<EFBFBD>05<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0<EFBFBD>0Bfo00<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>]W0<EFBFBD>fH0f0 NU0D00
return(3);
}
//+------------------------------------------------------------------+