gryps2/EA-code/Present EA/Present03_EURJPY_M30_Share 1.0.mq4

1840 lines
133 KiB
MQL4
Raw Permalink Normal View History

2025-05-30 14:58:21 +02:00
<EFBFBD><EFBFBD>//+------------------------------------------------------------------+
//| Present03_EURJPY_M30 1.0 |
//| 0 S0a0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Y0<EFBFBD>0h00EAk0<EFBFBD><EFBFBD>Y0<EFBFBD>0 g<EFBFBD>vj0<EFBFBD>`1X<EFBFBD>0<EFBFBD><EFBFBD>\OEAn09}<EFBFBD>N<EFBFBD>0T0<EFBFBD><EFBFBD>D0_0`0Q0~0Y0 |
//| https://note.com/efukikaku |
//+------------------------------------------------------------------+
#property copyright "S0a0<61>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Y0<59>0h00EAk0<6B><30>Y0<59>0 g<>vj0<6A>`1X<31>0<EFBFBD><30>\OEAn09}<7D>N<EFBFBD>0T0<54><30>D0_0`0Q0~0Y00"
#property link "https://note.com/efukikaku"
#property version "1.0"
//#property Present03_EURJPY_M30 1.0 <EFBFBD>! Present03_EURJPY_M30_Share 1.0
#property description "<1A><><EFBFBD><EFBFBD>0<EFBFBD>0<1A>EURJPY"
#property description "Bf<42><66><EFBFBD><EFBFBD><1A>M30"
#property description "<00>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<1A><>0<EFBFBD>0<EFBFBD>0<EFBFBD>0"
//#property description "<00>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0pe<1A>2"
//#property description "!N<>^f0<1A> g<>0 <00>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<1A> g<>0"
//#property description "TP<1A> Y<>R SL<1A><><EFBFBD><0F><>Xpips<08> Y<>f N<EFBFBD>S <EFBFBD>"
#property description "1<>+gca0<61><30>W0<1A> g<>0"
#property description "12/20~1/3<1A><>e<EFBFBD><65><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0!qW0<57>0zlnn00<7F>[L<>"
#property description "<00>e<EFBFBD><65>5,g<>NY<1A> N<EFBFBD>S"
//#property description "M<>^Hr6RP<52><1A><>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0s|<7C>V_P<5F><50>[<5B>0<EFBFBD>0<EFBFBD>0<EFBFBD>00.08<00>N Nn00<z<>P"
#property strict
#include <stdlib.mqh>
/*
//1<EFBFBD><EFBFBD>SY0<EFBFBD>0<EFBFBD>S<EFBFBD>^No.
int validAccount1 = 8315351;
int validAccount2 = 12345678;
int validAccount3 = 98765432;
*/
//+------------------------------------------------------------------+
//|<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0eQ<EFBFBD>R(u<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 |
//+------------------------------------------------------------------+
input int MagicNumber = 24100414; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>NEAh0͑<EFBFBD> N<EFBFBD>S <EFBFBD>
enum MM_Select{
Fixed, // 0<EFBFBD>XS)R/<EFBFBD>V<EFBFBD>[
FreeMargin, // 1<EFBFBD><EFBFBD>)R/YOpR<<EFBFBD><EFBFBD>
Balance, // 2<EFBFBD><EFBFBD>)R/<EFBFBD>
AddCredit, // 3<EFBFBD><EFBFBD>)R/<EFBFBD>+<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
};
input MM_Select MM_ON = Fixed; // <EFBFBD>)R_j<EFBFBD><EFBFBD><EFBFBD>0:<EFBFBD>V<EFBFBD>[/1:YOpR<<EFBFBD><EFBFBD>/2:<EFBFBD> <EFBFBD>
input double Lots = 0.1; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>XS)RK<EFBFBD>(uBf <EFBFBD>
input double MM_Risk = 1.0; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>YOpR<<EFBFBD><EFBFBD>/<EFBFBD>kؚn0UO%K0 <EFBFBD>
double MaxSpread_pips = 10.0; // 1<EFBFBD><EFBFBD>[<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>Pips <EFBFBD>
input double AllowSpread = 10; // 1<EFBFBD><EFBFBD>[<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Pips<EFBFBD>0:<EFBFBD><EFBFBD><EFBFBD>R <EFBFBD>
input int GMT = 2; // GMT<EFBFBD><EFBFBD>QBf<EFBFBD><EFBFBD> <EFBFBD>
enum Summertime_Select{
None, // 0<EFBFBD>none/!qW0
US, // 1<EFBFBD>US/s|<EFBFBD>V_
UK, // 2<EFBFBD>UK/<EFBFBD><EFBFBD><EFBFBD>V_
};
input Summertime_Select Summertime = US; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0:!qW0/1:s|/2:<EFBFBD><EFBFBD> <EFBFBD>
//+------------------------------------------------------------------+
//|<EFBFBD>Q<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD>[<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>pe |
//+------------------------------------------------------------------+
//<EFBFBD>Q<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD>[
int Maxposition = 1; // g'Y<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
//int CountBuy = 0,CountSell = 0;
double Gap_Pips = 3.0; // 0qQ<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0pips<EFBFBD>1:00<EFBFBD>NY <EFBFBD>
double Gap_Pips_1 = 10.0; // 0qQ<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0pips<EFBFBD>1:00 <EFBFBD>
int CandleCheckCount = 1000; // 0qQ<EFBFBD>0N<EFBFBD><EFBFBD>S<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0HL<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>,gpe *****
//int CandleCloseHour = 9; // 7_6RzlnY0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>O gBf<EFBFBD><EFBFBD>
int Slippage = 100; // 1<EFBFBD><EFBFBD>[<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>Point <EFBFBD>
int TakeProfit_pips = 1000; // )R<EFBFBD>xc$P<EFBFBD>Pips <EFBFBD>
int StopLoss_pips = 1500; // 0qQ<EFBFBD>0g'YSL<EFBFBD>Pips <EFBFBD>
bool WeekendClose = false; // 1<EFBFBD>+g<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
bool YearendClose = true; // 12/20~1/3<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
string _Comment = "Present03_EURJPY_M30 1.0"; // <EFBFBD><EFBFBD>w(u<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
//+------------------------------------------------------------------+
// <<EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
int aCmd = 0;
//+------------------------------------------------------------------+
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0AhT<EFBFBD>0[0<EFBFBD>0Bf<EFBFBD><EFBFBD>6R<EFBFBD>_(u
double xpoint;
int xTime, xxTime, xxxTime, yTime;
int AdjustedDay, AdjustedWeek, AdjustedMonth;
//1<EFBFBD>+gzln<EFBFBD><EFBFBD>e,gBf<EFBFBD><EFBFBD> <EFBFBD>
bool GMT_Kadou_NG = false; // 1<EFBFBD>+g<z<EFBFBD>P
bool PositionClose = false; // 1<EFBFBD>+gzln
int EntryNG_StartTime1 = 1; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0-NbkBf<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Y <EFBFBD> / 0~4(<Time_W) / 1
int EntryNG_EndTime1 = 7; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0-NbkBf<EFBFBD><EFBFBD><EFBFBD>B}<EFBFBD>N <EFBFBD>
int EntryNG_DayOfWeek1 = 6; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0-Nbk<EFBFBD>f<EFBFBD>e
int PositionClose_Time_W = 5; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0zlnBf<EFBFBD><EFBFBD> / 0~5 / 1
int PositionClose_DayOfWeek1 = 6; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0zln<EFBFBD>f<EFBFBD>e
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>kn0Bf<EFBFBD><EFBFBD>rR<EFBFBD>0/c<EFBFBD>0<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Bf<EFBFBD><EFBFBD> <EFBFBD>
bool Logic1_Time = true; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>01Bf<EFBFBD><EFBFBD>/^
int EntryOK_StartTime1 = 1; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>01<EFBFBD><EFBFBD><EFBFBD>YBf<EFBFBD><EFBFBD>1
int EntryOK_EndTime1 = 23; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>01B}<EFBFBD>NBf<EFBFBD><EFBFBD>1
int EntryOK_StartTime2 = 1; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>01<EFBFBD><EFBFBD><EFBFBD>YBf<EFBFBD><EFBFBD>2
int EntryOK_EndTime2 = 23; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>01B}<EFBFBD>NBf<EFBFBD><EFBFBD>2
bool Logic1_NG_Time = true; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>01Bf<EFBFBD><EFBFBD>/^
int Entry_NG_StartTime1 = 0; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>01 NG<EFBFBD><EFBFBD><EFBFBD>YBf<EFBFBD><EFBFBD>1
int Entry_NG_EndTime1 = 1; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>01 NGB}<EFBFBD>NBf<EFBFBD><EFBFBD>1
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0(u<EFBFBD>0<EFBFBD>0<EFBFBD>0R<EFBFBD>f
bool ROMode = false; // ROBf<EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0j0W0
bool ROTime = false; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Bf<EFBFBD><EFBFBD>
bool Development = false; // <EFBFBD><EFBFBD>zv<EFBFBD>0<EFBFBD>0<EFBFBD>0ON/OFF<EFBFBD>OnTesterkk0RFh<EFBFBD>:y0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0h<EFBFBD>:y <EFBFBD>
bool Modify = true;
bool Buy_Entry = true; // <EFBFBD><EFBFBD>D0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
bool Sell_Entry = true; // <EFBFBD>X<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
//+------------------------------------------------------------------+
//|<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0(u<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//|<EFBFBD><EFBFBD>D0 |
//+------------------------------------------------------------------+
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0zln<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0T Ype
int MA_Perfect_Order_period1 = 30; // <EFBFBD>wg<EFBFBD>y<EFBFBD>Rs^GW<EFBFBD>} // 30 10(10)200
int MA_Perfect_Order_period2 = 60; // -Ng<EFBFBD>y<EFBFBD>Rs^GW<EFBFBD>}
ENUM_TIMEFRAMES MA_Perfect_Order_TIMEFRAMES = PERIOD_M30; //MA_Perfect_Order<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
int ATR_Period = 10; // ATRn0<EFBFBD><EFBFBD>{g<EFBFBD><EFBFBD> // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n00 M15 0.005(0.005)1.1 M30_0.05(0.02)1 H1_0.1(0.02)1 H4_0.2(0.05)1.5 D1_1(0.1)4.5
double ATR_Filter_Line = 0.5723; // ATRL0S0n0pe$P<EFBFBD>N Nn0Bfn00<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>Qeg<EFBFBD>0 // zln<EFBFBD><EFBFBD>0 M15 0.05(0.02)1.1
double ATR_Exit_Filter_Line = 1.5851; // ATR_ExitL0S0n0pe$P<EFBFBD>N
Nn0Bfzln
ENUM_TIMEFRAMES ATR_TIMEFRAMES = PERIOD_H4; //ATR<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
int ATR_Exit_Period = 1; // ATR_Exitn0<EFBFBD><EFBFBD>{g<EFBFBD><EFBFBD>
double ATR_x = 1.5; // ATRn0s^GW$P<EFBFBD>0X<EFBFBD> P<EFBFBD>cQ0<EFBFBD>0
int ATR_n = 5; // ATRn0n,gMRK0<EFBFBD>0<EFBFBD><EFBFBD>y0<EFBFBD>0K0
int ATR_x_Period_1 = 1; // ATRn01g<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>{g<EFBFBD><EFBFBD>
int PercentK_period = 100; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0%Kn0<EFBFBD><EFBFBD>{g<EFBFBD><EFBFBD> // 25(5)70
int PercentD_period = 60; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0%Dn0<EFBFBD><EFBFBD>{g<EFBFBD><EFBFBD>
int Slow_period = 80; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0slowDn0<EFBFBD><EFBFBD>{g<EFBFBD><EFBFBD>
int Stochastics_LINE = 35; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0<EFBFBD>5_<EFBFBD>0<EFBFBD>W<EFBFBD>n<EFBFBD>0<EFBFBD>0<EFBFBD>0
int Stochastics_Exit_LINE = 65; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0<EFBFBD>5_<EFBFBD>0<EFBFBD>W<EFBFBD>n<EFBFBD>0<EFBFBD>0<EFBFBD>0
ENUM_TIMEFRAMES Stochastic_TIMEFRAMES = PERIOD_H1; //Stochastic<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
int ADX_Period = 140; // ADXn0<EFBFBD><EFBFBD>{g<EFBFBD><EFBFBD> // 5(5)40 5(5)50
int ADX_Filter_Line = 5; // ADXL0S0n0pe$P<EFBFBD>N
Nn0Bfn00<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>Qeg<EFBFBD>0
ENUM_TIMEFRAMES ADX_TIMEFRAMES = PERIOD_D1; //ADX_<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
int ADX_Exit_Line = 15; // ADXzlnY0<EFBFBD>0pe$P
//input int ADX_nhon = 10; //ADXg'Y$P<EFBFBD>0UO,ga<EFBFBD>c0f0<EFBFBD><EFBFBD>y0<EFBFBD>0K0
//input int ADX_Percent = 50; //ADXg'Y$PK0<EFBFBD>0UO<EFBFBD> NL0c0_0<EFBFBD>0zlnY0<EFBFBD>0K0
int MA_Kairi_period1 = 1; // VN<EFBFBD><EFBFBD><EFBFBD>wg<EFBFBD>y<EFBFBD>Rs^GW<EFBFBD>} // 0.2(0.2)10 0.2(0.2)10
int MA_Kairi_period2 = 10; // VN<EFBFBD><EFBFBD>w<EFBFBD>g<EFBFBD>y<EFBFBD>Rs^GW<EFBFBD>}
double MA_Kairi_Filter_percent = 0.4; // VN<EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>y<EFBFBD>Rs^GW<EFBFBD>} T<EFBFBD>Xn0VN<EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
double MA_Kairi_Exit_percent = 2.0; // VN<EFBFBD><EFBFBD>zln<EFBFBD>y<EFBFBD>Rs^GW<EFBFBD>} T<EFBFBD>Xn0VN<EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
ENUM_TIMEFRAMES MA_Kairi_TIMEFRAMES = PERIOD_H4; // VN<EFBFBD><EFBFBD>MA_Kairi<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
//int MA_Period_Entry_2 = 500; // Candle_Filterw<EFBFBD>g<EFBFBD>y<EFBFBD>Rs^GW<EFBFBD>}
//ENUM_TIMEFRAMES MA_Filter_TIMEFRAMES = PERIOD_M15; //MA_Candle_Filter<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
//zln<EFBFBD>0<EFBFBD>0<EFBFBD>0n0T Ype
int Ichimoku_kumononaka_tenkan = 170; // <EFBFBD><EFBFBD>n0-Nk0eQ<EFBFBD>0<EFBFBD><EFBFBD><EFBFBD>c<EFBFBD>}n0<EFBFBD><EFBFBD>{g<EFBFBD><EFBFBD>
int Ichimoku_kumononaka_kijun = 40; // <EFBFBD><EFBFBD>n0-Nk0eQ<EFBFBD>0<EFBFBD>W<EFBFBD>n<EFBFBD>}n0<EFBFBD><EFBFBD>{g<EFBFBD><EFBFBD>
int Ichimoku_kumononaka_senkou = 140; // <EFBFBD><EFBFBD>n0-Nk0eQ<EFBFBD>0HQL<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0n0<EFBFBD><EFBFBD>{g<EFBFBD><EFBFBD>
ENUM_TIMEFRAMES Ichimoku_kumononaka_TIMEFRAMES = PERIOD_H4; //Ichimoku_kumononaka<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
bool Kumononaka_Exit = true; //true0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0g0M0<EFBFBD>0 <EFBFBD>00false0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0g0M0j0D0
int Close_CandleCheckCount = 400; // dRUO,gMR~0g0n0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Y0<EFBFBD>0K0<EFBFBD>
ENUM_TIMEFRAMES CandleCheck_TIMEFRAMES = PERIOD_M15; //CandleCheck_TIMEFRAMES<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
int Candle_n_hon = 85; // n,gMR<EFBFBD>0c<EFBFBD>[
double Candle_y_bai = 5; // P<EFBFBD>s y <EFBFBD>0c<EFBFBD>[
double HL_margin_Ex_mul_buy = 2.0; // 0<EFBFBD><EFBFBD>D0\<EFBFBD>zln0 Y<EFBFBD>RTP/HLM Ppe 0.5(0.5)10
int StopLoss_pips_buy = 130; // 0<EFBFBD><EFBFBD>D0\<EFBFBD>zln0 dR<EFBFBD>c$P<EFBFBD>Pips <EFBFBD> 10(10)200
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
int HLM_Per_TrailStart_buy = 40; // 0<EFBFBD><EFBFBD>D0\<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>00<EFBFBD><EFBFBD><EFBFBD>Y<EFBFBD>HLM% 10(10)200
//input int HLM_Per_ModifyStep_buy = 2; // 0<EFBFBD><EFBFBD>D0\<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>00<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>HLM%
//input ENUM_TIMEFRAMES BB_TF_Trail = PERIOD_M15;
//input int BB_Period_Trail = 80;
//input double BB_Hensa_Trail1 = 1.0;
//input double BB_Hensa_Trail2 = 2.0;
int OOPMarginPips_buy = 110; // 0<EFBFBD><EFBFBD>D0\<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>00<EFBFBD>^$P+<EFBFBD>%pips 10(10)300
int BarCountSL_Trail_buy = 90; // 0<EFBFBD><EFBFBD>D0\<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>00<EFBFBD>[$P<EFBFBD>0<EFBFBD>cY0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>,gpe 10(10)200
//+------------------------------------------------------------------+
//|<EFBFBD>X<EFBFBD>0 |
//+------------------------------------------------------------------+
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0zln<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0T Ype
int MA_Cross_period1_sell = 80; // 0<EFBFBD>X<EFBFBD>0\<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>00<EFBFBD>wgMAg<EFBFBD><EFBFBD>
int MA_Cross_period2_sell = 100; // 0<EFBFBD>X<EFBFBD>0\<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>00w<EFBFBD>gMAg<EFBFBD><EFBFBD>
int HeikenAshi_CheckCount_sell = 4;
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
//zln<EFBFBD>0<EFBFBD>0<EFBFBD>0n0T Ype
int Ichimoku_kumononaka_Sell_tenkan = 140; // <EFBFBD><EFBFBD>n0-Nk0eQ<EFBFBD>0<EFBFBD><EFBFBD><EFBFBD>c<EFBFBD>}n0<EFBFBD><EFBFBD>{g<EFBFBD><EFBFBD>
int Ichimoku_kumononaka_Sell_kijun = 390; // <EFBFBD><EFBFBD>n0-Nk0eQ<EFBFBD>0<EFBFBD>W<EFBFBD>n<EFBFBD>}n0<EFBFBD><EFBFBD>{g<EFBFBD><EFBFBD>
int Ichimoku_kumononaka_Sell_senkou = 550; // <EFBFBD><EFBFBD>n0-Nk0eQ<EFBFBD>0HQL<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0n0<EFBFBD><EFBFBD>{g<EFBFBD><EFBFBD>
ENUM_TIMEFRAMES Ichimoku_kumononaka_Sell_TIMEFRAMES = PERIOD_H4; //Ichimoku_kumononaka<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
bool Kumononaka_Sell_Exit = true; //true0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0g0M0<EFBFBD>0 <EFBFBD>00false0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0g0M0j0D0
double HL_margin_Ex_mul_sell = 5.0; // 0<EFBFBD>X<EFBFBD>0\<EFBFBD>zln0 Y<EFBFBD>RTP/HLM Ppe
int StopLoss_pips_sell = 120; // 0<EFBFBD>X<EFBFBD>0\<EFBFBD>zln0 dR<EFBFBD>c$P<EFBFBD>Pips <EFBFBD>
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
int HLM_Per_TrailStart_sell = 50; // 0<EFBFBD>X<EFBFBD>0\<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>00<EFBFBD><EFBFBD><EFBFBD>Y<EFBFBD>HLM%
//input int HLM_Per_ModifyStep_sell = 3; // 0<EFBFBD>X<EFBFBD>0\<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>00<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>HLM%
int OOPMarginPips_sell = 3; // 0<EFBFBD>X<EFBFBD>0\<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>00<EFBFBD>^$P+<EFBFBD>%pips
int BarCountSL_Trail_sell = 14; // 0<EFBFBD>X<EFBFBD>0\<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>00<EFBFBD>[$P<EFBFBD>0<EFBFBD>cY0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>,gpe
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| tester function |
//+------------------------------------------------------------------+
/*double OnTester()
{
// <EFBFBD><EFBFBD>zv<EFBFBD>0<EFBFBD>0<EFBFBD>0ONBf0OnTesterk0h<EFBFBD>:y0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0\<EFBFBD><EFBFBD>R<EFBFBD>s0
if (Development == true)
{
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
return(NormalizeDouble(TesterStatistics(STAT_PROFIT) / TesterStatistics(STAT_EQUITY_DD), 2));
// <EFBFBD>R<EFBFBD>s
// return(NormalizeDouble(100*TesterStatistics(STAT_PROFIT_TRADES) / TesterStatistics(STAT_TRADES), 2));
}
return(0);
}*/
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
// \pe<EFBFBD>p<EFBFBD>N Nn0Ahpek0<EFBFBD>_X0f0Pipsn0$P<EFBFBD>0<EFBFBD><EFBFBD>teY0<EFBFBD>0
xpoint = Point();
if (StringSubstr(Symbol(), 0, 6) == "XAUUSD" || StringSubstr(Symbol(), 0, 4) == "GOLD") // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0(u
{
if (Digits() == 2)
{
xpoint = xpoint * 10;
}
else if (Digits() == 3)
{
xpoint = xpoint * 100;
}
}
else if (!(StringSubstr(Symbol(), 0, 6) == "XAUUSD" || StringSubstr(Symbol(), 0, 4) == "GOLD")) // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>NY(u
{
if (Digits() == 3 || Digits() == 5)
{
xpoint = xpoint * 10;
}
}
/*
// <EFBFBD>S<EFBFBD>^ju<EFBFBD>S~<EFBFBD>0
if (IsTesting() == false) // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>NYo001<EFBFBD><EFBFBD>SU0<EFBFBD>0_0<EFBFBD>S<EFBFBD>^n00<z<EFBFBD>P
{
if (!(AccountNumber() == validAccount1 || AccountNumber() == validAccount2 || AccountNumber() == validAccount3))
{
Alert("Not allowed account!" +"\n"+ "1<><31>SU0<55>0f0D0j0D0<44>S<EFBFBD>^g0Y00");
return(INIT_FAILED); // RgSL01YWeW0_0<EFBFBD>N<EFBFBD>0ԏW00EA<EFBFBD>0B}<EFBFBD>NU0[0<EFBFBD>0
}
}
*/
// <EFBFBD>0<EFBFBD>0<EFBFBD>0~<EFBFBD>0
/*if (!IsTesting())
{
if (Lots > 0.08) return(INIT_FAILED);
}
*/
// g'YSL<EFBFBD>{<EFBFBD>Q<EFBFBD><EFBFBD>)Rn0<EFBFBD><EFBFBD>{g0O(u <EFBFBD>
StopLoss_pips = MathMax(StopLoss_pips_buy, StopLoss_pips_sell);
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
if (StringSubstr(Symbol(), 0, 6) == "GBPJPY")
{
if (StringSubstr(AccountCompany(), 0, 9) == "Ava Trade" // Ava Trade
&& AllowSpread == 0) MaxSpread_pips = 3.5; //20:55~23:00 N<EFBFBD>S
else if (StringSubstr(AccountCompany(), 0, 15) == "Goldenway Japan" // Goldenway Japan (FXTF)
&& AllowSpread == 0) MaxSpread_pips = 3.0; //23:50~0:53 N<EFBFBD>S
else if (StringSubstr(AccountCompany(), 0, 14) == "Forex Exchange" // Forex Exchange
&& AllowSpread == 0) MaxSpread_pips = 4.0; //23:50~1:09 N<EFBFBD>S
else if (StringSubstr(AccountCompany(), 0, 14) == "Gaitame Finest" // Gaitame Finest
&& AllowSpread == 0) MaxSpread_pips = 3.5; //23:58~1:03 N<EFBFBD>S
else if (StringSubstr(AccountCompany(), 0, 11) == "ThreeTrader" // ThreeTrader
&& StringSubstr(Symbol(), 6, 4) == ".raw" // Raw<EFBFBD>S<EFBFBD>^
&& AllowSpread == 0) MaxSpread_pips = 3.0; //23:59~1:02 N<EFBFBD>S
else if (StringSubstr(AccountCompany(), 0, 8) == "Titan FX" // Titan FX
&& StringSubstr(AccountServer(), 8, 2) == "06" // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>S<EFBFBD>^
&& AllowSpread == 0) MaxSpread_pips = 4.0; //23:58~1:14 N<EFBFBD>S
else if (StringSubstr(AccountCompany(), 0, 8) == "Titan FX" // Titan FX
&& StringSubstr(AccountServer(), 8, 2) == "03" // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>S<EFBFBD>^
&& AllowSpread == 0) MaxSpread_pips = 5.5; //0:00~1:05 N<EFBFBD>S
else if (StringSubstr(AccountCompany(), 0, 9) == "Tradexfin" // XM Trading
&& StringLen(Symbol()) == 6 // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>S<EFBFBD>^
&& AllowSpread == 0) MaxSpread_pips = 6.0; //23:56~1:02 N<EFBFBD>S
else if (StringSubstr(AccountCompany(), 0, 9) == "Tradexfin" // XM Trading
&& StringSubstr(Symbol(), 6, 1) == "#" // ui<EFBFBD>S<EFBFBD>^
&& AllowSpread == 0) MaxSpread_pips = 3.5; //23:59~1:11 N<EFBFBD>S
else
MaxSpread_pips = AllowSpread;
}
//+-----------------------------------------------------------------+
// <EFBFBD><EFBFBD>zv<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD>XBfo0falsek0 <EFBFBD>
if (Development) HideTestIndicators(false);// O(uW0f0D0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0h<EFBFBD>:yY0<EFBFBD>0
else HideTestIndicators(true);// O(uW0f0D0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0^<EFBFBD>h<EFBFBD>:yk0Y0<EFBFBD>0
//+------------------------------------------------------------------+
return(0);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>te<EFBFBD>0Bf<EFBFBD><EFBFBD>6R<EFBFBD>_
GetSummertimeShift();
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
PositionClose();
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
Trailing();
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
PositionOpen();
// TP, SLn0<EFBFBD>Q-<EFBFBD><EFBFBD>[
SetTPSL();
}
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
Comment("");
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| ܈ck<EFBFBD><EFBFBD>pe |
//+------------------------------------------------------------------+
void GetSummertimeShift()
{
int MON, SUN_day, xGMT, xxGMT;
int summertime_shift = 0;
datetime gmtadjusted, xgmtadjusted;
//0GMT+9<EFBFBD>0<EFBFBD>W<EFBFBD>nk00i0<EFBFBD>0`0Q0Z0<EFBFBD>0f0D0<EFBFBD>0K0<EFBFBD>0<EFBFBD>{<EFBFBD>QY0<EFBFBD>0------------------------
MON = TimeMonth(TimeCurrent()); // UOg<EFBFBD>
SUN_day = TimeDay(TimeCurrent()) - TimeDayOfWeek(TimeCurrent()); // ]0n01<EFBFBD>n0<EFBFBD>e<EFBFBD>f<EFBFBD>eo0UO<EFBFBD>e<EFBFBD>
if (Summertime == UK) // <EFBFBD><EFBFBD><EFBFBD>V_n04XT
{
if ((MON == 3 && SUN_day >= 25) || (MON >= 4 && MON <= 9) || (MON == 10 && SUN_day <= 24))
//3gg00]0n01<EFBFBD>n0<EFBFBD>e<EFBFBD>f<EFBFBD>eL025<EFBFBD>e<EFBFBD>N
N/4g^<EFBFBD>9g/10gg00]0n01<EFBFBD>n0<EFBFBD>e<EFBFBD>f<EFBFBD>eL023<EFBFBD>e<EFBFBD>N N
{
summertime_shift = 1;
}
else
{
summertime_shift = 0;
}
}
else if (Summertime == US) // s|<EFBFBD>V_n04XT
{
if ((MON == 3 && SUN_day >= 8) || (MON >= 4 && MON <= 10) || (MON == 11 && SUN_day <= 0))
//3gg00]0n01<EFBFBD>n0<EFBFBD>e<EFBFBD>f<EFBFBD>eL08<EFBFBD>e<EFBFBD>N
N/4g^<EFBFBD>10g/11gg00]0n01<EFBFBD>n0<EFBFBD>e<EFBFBD>f<EFBFBD>eL0X[(WW0j0D0
{
summertime_shift = 1;
}
else
{
summertime_shift = 0;
}
}
else // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0!qW0n04XT
{
summertime_shift = 0;
}
xGMT = GMT - 9 + summertime_shift;//GMT+9<EFBFBD>0<EFBFBD>W<EFBFBD>nk0
xxGMT = GMT - 2 + summertime_shift;//GMT+2<EFBFBD>0<EFBFBD>W<EFBFBD>nk0
//GMT+9<EFBFBD>W<EFBFBD>ng0i0<EFBFBD>0`0Q0Z0<EFBFBD>0f0D0<EFBFBD>0K0<EFBFBD>0<EFBFBD>{<EFBFBD>QY0<EFBFBD>0<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 <EFBFBD>--------------------
//+------------------------------------------------------------------+
//| Bf<EFBFBD><EFBFBD>6R<EFBFBD>_ |
//+------------------------------------------------------------------+
//---- <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>01<EFBFBD><EFBFBD>SBf<EFBFBD><EFBFBD>n0$R<EFBFBD>[ ----
xTime = TimeHour(TimeCurrent()) - xGMT; // <EFBFBD>e,gBf<EFBFBD><EFBFBD>
xxTime = TimeHour(TimeCurrent()) - (GMT - 2); // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Bf<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>{j0W0 <EFBFBD>
xxxTime = TimeHour(TimeCurrent()) - (GMT - 2 + summertime_shift); // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Bf<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>{B0<EFBFBD>0 <EFBFBD>
yTime = TimeMinute(TimeCurrent()); // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0R
gmtadjusted = TimeCurrent() - 60 * 60 * xGMT;
xgmtadjusted = TimeCurrent() - 60 * 60 * xxGMT;
AdjustedDay = TimeDay(xgmtadjusted); // <EFBFBD><EFBFBD>teU0<EFBFBD>0_0<EFBFBD>e<EFBFBD>N<EFBFBD>0ԏY0
AdjustedWeek = TimeDayOfWeek(xgmtadjusted); // <EFBFBD><EFBFBD>teU0<EFBFBD>0_0<EFBFBD>f<EFBFBD>e<EFBFBD>0ԏY0
AdjustedMonth = TimeMonth(xgmtadjusted); // <EFBFBD><EFBFBD>teU0<EFBFBD>0_0g<EFBFBD>0ԏY0
// <EFBFBD>e,gBf<EFBFBD><EFBFBD>
if (xTime < 0)
{
xTime = xTime + 24;
}
else if (xTime > 23)
{
xTime = xTime - 24;
}
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Bf<EFBFBD><EFBFBD>
if (xxTime < 0)
{
xxTime = xxTime + 24;
}
else if (xxTime > 23)
{
xxTime = xxTime - 24;
}
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Bf<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0B0<EFBFBD>0 <EFBFBD>
if (xxxTime < 0)
{
xxxTime = xxxTime + 24;
}
else if (xxxTime > 23)
{
xxxTime = xxxTime - 24;
}
// 1<EFBFBD>+g<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
if ((xTime == PositionClose_Time_W
&& TimeDayOfWeek(gmtadjusted) == PositionClose_DayOfWeek1
&& WeekendClose == true)
)
{
PositionClose = true;
}
else
{
PositionClose = false;
}
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0NGBf<EFBFBD><EFBFBD>
if ( // 1<EFBFBD>+gzln<EFBFBD><EFBFBD>e,gBf<EFBFBD><EFBFBD> <EFBFBD>
(xTime >= EntryNG_StartTime1 && xTime <= EntryNG_EndTime1 // 1<EFBFBD>+gzln(u<EFBFBD><EFBFBD>e,gBf<EFBFBD><EFBFBD> <EFBFBD>
&& TimeDayOfWeek(gmtadjusted) >= EntryNG_DayOfWeek1 // 1<EFBFBD>+gzln<EFBFBD>f<EFBFBD>e<EFBFBD><EFBFBD>e,gBf<EFBFBD><EFBFBD> <EFBFBD>
&& WeekendClose == true)
)
{
GMT_Kadou_NG = true;
}
else
{
GMT_Kadou_NG = false;
}
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Bf<EFBFBD><EFBFBD>
if (((xxTime == 23 && yTime >= 55 && TimeDayOfWeek(TimeCurrent()) != 5)
|| (xxTime == 23 && yTime >= 50 && TimeDayOfWeek(TimeCurrent()) == 5)
|| (xxTime == 0 && yTime <= 9))
&& ROMode == true)
{
ROTime = true;
}
else
{
ROTime = false;
}
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0OKBf<EFBFBD><EFBFBD>
if ( (xxTime >= EntryOK_StartTime1 && xxTime <= EntryOK_EndTime1 && yTime < 50) // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>S<EFBFBD><EFBFBD>Bf<EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Bf<EFBFBD><EFBFBD> <EFBFBD>
|| (xxTime >= EntryOK_StartTime2 && xxTime <= EntryOK_EndTime2 && yTime < 50)) // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>S<EFBFBD><EFBFBD>Bf<EFBFBD><EFBFBD>2<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Bf<EFBFBD><EFBFBD> <EFBFBD>
{
Logic1_Time = true;
}
else
{
Logic1_Time = false;
}
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0NGBf<EFBFBD><EFBFBD>
if (xxTime >= Entry_NG_StartTime1 && xxTime < Entry_NG_EndTime1) // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>S<EFBFBD><EFBFBD>Bf<EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Bf<EFBFBD><EFBFBD> <EFBFBD>
{
Logic1_NG_Time = true;
}
else
{
Logic1_NG_Time = false;
}
// S0S0~0g00<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0h0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0o00<EFBFBD>S_Bf<EFBFBD><EFBFBD>k0<EFBFBD><EFBFBD><EFBFBD>Oj0O0<EFBFBD>[<EFBFBD>eY0<EFBFBD>0
//---- <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>01<EFBFBD><EFBFBD>SBf<EFBFBD><EFBFBD>n0$R<EFBFBD>[<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 |
//+------------------------------------------------------------------+
void PositionClose()
{
int i;
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(Volume[0] <= 50 || xxTime == 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;
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0K0<EFBFBD>0n0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>,gpeL01,g*g<EFBFBD>nj0<EFBFBD>00for<EFBFBD>en0HQ-<EFBFBD>k0;b<EFBFBD>0 <EFBFBD>
int OrderOpenCandleCount = iBarShift(NULL, 0, OrderOpenTime());
if (OrderOpenCandleCount == 0) continue;
//int OrderOpenCandleCount = iBarShift(NULL, 0, OrderOpenTime()); // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0K0<EFBFBD>0n0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>,gpe
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
(ROTime == false && Logic1_NG_Time == false &&
(
(Exit2(false, profit) == 2 && Ask - Bid <= MaxSpread_pips * xpoint)
|| (Exit2(false, profit) == 2 && Ask - Bid > MaxSpread_pips * xpoint && profit > 0)
|| PositionClose == true // 1<EFBFBD>+g<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
//|| OrderOpenCandleCount >= CandleCloseHour * 12)
)
)
{
res = OrderClose(OrderTicket(), OrderLots(), Bid, NULL, Green);
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>L0N<EFBFBD>vGWa<EFBFBD>h<EFBFBD>n0<EFBFBD><EFBFBD>n0-Ng0zlnU0<EFBFBD>0_0<EFBFBD>0Kumononaka_Exit = falsek0W0f0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>06RP<EFBFBD>(u
double c, senkoua, senkoub;
// HQL<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0A?<EFBFBD>B
c = Close[1];
senkoua = iIchimoku(NULL, Ichimoku_kumononaka_TIMEFRAMES, Ichimoku_kumononaka_tenkan, Ichimoku_kumononaka_kijun, Ichimoku_kumononaka_senkou, MODE_SENKOUSPANA, 1);
senkoub = iIchimoku(NULL, Ichimoku_kumononaka_TIMEFRAMES, Ichimoku_kumononaka_tenkan, Ichimoku_kumononaka_kijun, Ichimoku_kumononaka_senkou, MODE_SENKOUSPANB, 1);
if(c < MathMax(senkoua, senkoub) && c > MathMin(senkoua, senkoub)) //<EFBFBD><EFBFBD>n0<EFBFBD>QtPk0D0<EFBFBD>0K0<EFBFBD>x<EFBFBD><EFBFBD>
{
Kumononaka_Exit = false; //true0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0g0M0<EFBFBD>0 <EFBFBD>00false0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0g0M0j0D0
}
}
}
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
(ROTime == false && Logic1_NG_Time == false &&
(
(Exit1(true, profit) == 1 && Ask - Bid <= MaxSpread_pips * xpoint)
|| (Exit1(true, profit) == 1 && Ask - Bid > MaxSpread_pips * xpoint && profit > 0)
|| PositionClose == true
//|| OrderOpenCandleCount >= CandleCloseHour * 12)
)
)
{
res = OrderClose(OrderTicket(), OrderLots(), Ask, NULL, Green);
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>L0N<EFBFBD>vGWa<EFBFBD>h<EFBFBD>n0<EFBFBD><EFBFBD>n0-Ng0zlnU0<EFBFBD>0_0<EFBFBD>0Kumononaka_Exit = falsek0W0f0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>06RP<EFBFBD>(u
double c, senkoua, senkoub;
// HQL<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0A?<EFBFBD>B
c = Close[1];
senkoua = iIchimoku(NULL, Ichimoku_kumononaka_Sell_TIMEFRAMES, Ichimoku_kumononaka_Sell_tenkan, Ichimoku_kumononaka_Sell_kijun, Ichimoku_kumononaka_Sell_senkou, MODE_SENKOUSPANA, 1);
senkoub = iIchimoku(NULL, Ichimoku_kumononaka_Sell_TIMEFRAMES, Ichimoku_kumononaka_Sell_tenkan, Ichimoku_kumononaka_Sell_kijun, Ichimoku_kumononaka_Sell_senkou, MODE_SENKOUSPANB, 1);
if(c < MathMax(senkoua, senkoub) && c > MathMin(senkoua, senkoub)) //<EFBFBD><EFBFBD>n0<EFBFBD>QtPk0D0<EFBFBD>0K0<EFBFBD>x<EFBFBD><EFBFBD>
{
Kumononaka_Sell_Exit = false; //true0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0g0M0<EFBFBD>0 <EFBFBD>00false0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0g0M0j0D0
}
}
}
} // @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<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 <EFBFBD>
} //<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD><EFBFBD>Y$Pn00<z<EFBFBD>P<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 <EFBFBD>
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 |
//+------------------------------------------------------------------+
void Trailing()
{
int i;
double profit;
bool res;
double StopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL) * (xpoint / 10);
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD><EFBFBD>Y$Pn00<z<EFBFBD>P<EFBFBD>x<EFBFBD><EFBFBD>b_ <EFBFBD>
if((xxTime != 1 && Volume[0] <= 10) || (xxTime == 1 && yTime <= 2))
{
// @b gW0f0D0<EFBFBD>0<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>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 = NormalizeDouble(Bid - OrderOpenPrice(), Digits); // <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
int HighestIndex = iHighest(NULL, PERIOD_M30, MODE_HIGH, CandleCheckCount, 1);
int LowestIndex = iLowest(NULL, PERIOD_M30, MODE_LOW , CandleCheckCount, 1);
double MostHigh = iHigh(NULL, PERIOD_M30, HighestIndex);
double MostLow = iLow(NULL, PERIOD_M30, LowestIndex);
double HLMargin_buy = MostHigh - MostLow;
double TrailingStart_buy = HLMargin_buy * HLM_Per_TrailStart_buy / 100;
double LowSL = iLow(NULL, 0, (iLowest(NULL, 0, MODE_LOW, BarCountSL_Trail_buy)));
double SL_buy = MathMax(LowSL, OrderOpenPrice() + OOPMarginPips_buy * xpoint);
TrailingStart_buy = NormalizeDouble(TrailingStart_buy, Digits);
SL_buy = NormalizeDouble(SL_buy, Digits);
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0ON0OFF
if (Modify == true)
{
//
if (profit > TrailingStart_buy
//&& Close[2] < Close[1]
&& NormalizeDouble(Bid - StopLevel, Digits) >= SL_buy
&& OrderStopLoss() < SL_buy
&& NormalizeDouble(OrderOpenPrice() + OOPMarginPips_buy * xpoint, Digits) <= SL_buy
)
{
res = OrderModify(OrderTicket(),
OrderOpenPrice(),
SL_buy,
OrderTakeProfit(),
0,
MediumSeaGreen);
}
}
}
if (OrderType() == OP_SELL)
{
profit = NormalizeDouble(OrderOpenPrice() - Ask, Digits); // <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
int HighestIndex_sell = iHighest(NULL, PERIOD_M30, MODE_HIGH, CandleCheckCount, 1);
int LowestIndex_sell = iLowest(NULL, PERIOD_M30, MODE_LOW , CandleCheckCount, 1);
double MostHigh_sell = iHigh(NULL, PERIOD_M30, HighestIndex_sell);
double MostLow_sell = iLow(NULL, PERIOD_M30, LowestIndex_sell);
double HLMargin_sell = MostHigh_sell - MostLow_sell;
double TrailingStart_sell = HLMargin_sell * HLM_Per_TrailStart_sell / 100;
double HighSL = iHigh(NULL, 0, (iHighest(NULL, 0, MODE_HIGH, BarCountSL_Trail_sell)));
double SL_sell = MathMin(HighSL, OrderOpenPrice() - OOPMarginPips_sell * xpoint);
TrailingStart_sell = NormalizeDouble(TrailingStart_sell, Digits);
SL_sell = NormalizeDouble(SL_sell, Digits);
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0ON0OFF
if (Modify == true)
{
//
if (profit > TrailingStart_sell
&& NormalizeDouble(Ask + StopLevel, Digits) <= SL_sell
&& OrderStopLoss() > SL_sell
&& NormalizeDouble(OrderOpenPrice() - OOPMarginPips_sell * xpoint, Digits) >= SL_sell
)
{
res = OrderModify(OrderTicket(),
OrderOpenPrice(),
SL_sell,//OrderStopLoss() - ModifyStep_sell,
OrderTakeProfit(),
0,
MediumSeaGreen);
}
}
}
} // @b gW0f0D0<EFBFBD>0<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>0Y0<EFBFBD>0<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 <EFBFBD>
} // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD><EFBFBD>Y$Pn00<z<EFBFBD>P<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 |
//+------------------------------------------------------------------+
void PositionOpen()
{
int i, j;
int ticket;
int CountBuy = 0,CountSell = 0;
bool res;
int OrderOpen_BarCount_buy = 1; // 0k0Y0<EFBFBD>0h00e\tk!qD0h0M0k0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0W0j0D0_0<EFBFBD>00<EFBFBD>Nn0$P<EFBFBD>0Rg$Pk0Y0<EFBFBD>0
int OrderOpen_BarCount_sell = 1;
int OrderClose_BarCount_buy = 1; // 0k0Y0<EFBFBD>0h00e\tk!qD0h0M0k0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0W0j0D0_0<EFBFBD>00<EFBFBD>Nn0$P<EFBFBD>0Rg$Pk0Y0<EFBFBD>0
int OrderClose_BarCount_sell = 1;
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0$R<EFBFBD>en0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD><EFBFBD>Y$Pn00<z<EFBFBD>P<EFBFBD>x<EFBFBD><EFBFBD>b_ <EFBFBD>
if((xxTime != 1 && Volume[0] <= 10) || (xxTime == 1 && yTime <= 2))
{
// <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>0n0pe<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Y0<EFBFBD>0<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 <EFBFBD>
// gB}<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0zlnK0<EFBFBD>0n0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>,gpe<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Y0<EFBFBD>0<EFBFBD>#<EFBFBD><EFBFBD>}<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>02<EFBFBD>bk <EFBFBD>
for(j=OrdersHistoryTotal()-1; j>=0; j--)
{
//<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( j, SELECT_BY_POS, MODE_HISTORY ) == 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;
//gB}<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0zlnK0<EFBFBD>0n0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>,gpe
if (OrderType() == OP_BUY) // <EFBFBD><EFBFBD>D0n04XT
{
OrderOpen_BarCount_buy = iBarShift(NULL, 0, OrderOpenTime());
OrderClose_BarCount_buy = iBarShift(NULL, 0, OrderCloseTime());
if (OrderClose_BarCount_buy != -1) break; // N<EFBFBD>^gB}zln<EFBFBD>0<EFBFBD>b<EFBFBD>QW0_0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0K0<EFBFBD>0<EFBFBD>bQ0<EFBFBD>0
}
if (OrderType() == OP_SELL) // <EFBFBD>X<EFBFBD>0n04XT
{
OrderOpen_BarCount_sell = iBarShift(NULL, 0, OrderOpenTime());
OrderClose_BarCount_sell = iBarShift(NULL, 0, OrderCloseTime());
if (OrderClose_BarCount_sell != -1) break; // N<EFBFBD>^gB}zln<EFBFBD>0<EFBFBD>b<EFBFBD>QW0_0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0K0<EFBFBD>0<EFBFBD>bQ0<EFBFBD>0
}
} // gB}<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0zlnK0<EFBFBD>0n0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>,gpe<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Y0<EFBFBD>0<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 <EFBFBD>
int HighestIndex = iHighest(NULL, PERIOD_M30, MODE_HIGH, CandleCheckCount, 1);
int LowestIndex = iLowest(NULL, PERIOD_M30, MODE_LOW , CandleCheckCount, 1);
double MostHigh = iHigh(NULL, PERIOD_M30, HighestIndex);
double MostLow = iLow(NULL, PERIOD_M30, LowestIndex);
double TP_buy = (MostHigh - MostLow) * HL_margin_Ex_mul_buy;
double TP_sell = (MostHigh - MostLow) * HL_margin_Ex_mul_sell;
// <<EFBFBD><EFBFBD> N<EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>01<EFBFBD><EFBFBD>S<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
if (EquityCheck())
{
{
// <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(true) == 1 // <EFBFBD><EFBFBD>D0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
//&& CountSell == 0
&& CountBuy < Maxposition
&& GMT_Kadou_NG == false
&& Logic1_Time == true
&& Buy_Entry == true)
{
ticket = OrderSend(Symbol(),
OP_BUY,
CalculateLots(MM_Risk, StopLoss_pips),
Ask,
Slippage,
Ask - StopLoss_pips_buy * xpoint,
Ask + TP_buy,//TakeProfit_pips * xpoint,
_Comment,
MagicNumber,
0,
Blue);
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0L01YWeg0B0<EFBFBD>0p00TPSL<EFBFBD>0RrRW0f0<EFBFBD>l<EFBFBD>eY0<EFBFBD>0
if (ticket == -1)
{
ticket = OrderSend(Symbol(),
OP_BUY,
CalculateLots(MM_Risk, StopLoss_pips),
Ask,
Slippage,
0,
0,
_Comment,
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_buy * xpoint,
OrderOpenPrice() + TP_buy,//TakeProfit_pips * xpoint,
0,
MediumSeaGreen);
}
}
}
}
else if (Entry(false) == 2 // <EFBFBD>X<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
//&& CountBuy == 0
&& CountSell < Maxposition
&& GMT_Kadou_NG == false
&& Logic1_Time == true
&& Sell_Entry == true)
{
ticket = OrderSend(Symbol(),
OP_SELL,
CalculateLots(MM_Risk, StopLoss_pips),
Bid,
Slippage,
Bid + StopLoss_pips_sell * xpoint,
Bid - TP_sell,//TakeProfit_pips * xpoint,
_Comment,
MagicNumber,
0,
Red);
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0L01YWeg0B0<EFBFBD>0p00TPSL<EFBFBD>0RrRW0f0<EFBFBD>l<EFBFBD>eY0<EFBFBD>0
if (ticket == -1)
{
ticket = OrderSend(Symbol(),
OP_SELL,
CalculateLots(MM_Risk, StopLoss_pips),
Bid,
Slippage,
0,
0,
_Comment,
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_sell * xpoint,
OrderOpenPrice() - TP_sell,//TakeProfit_pips * xpoint,
0,
MediumSeaGreen);
}
}
}
}
}
}
} // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0$R<EFBFBD>en0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD><EFBFBD>Y$Pn00<z<EFBFBD>P<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 <EFBFBD>
}
//+------------------------------------------------------------------+
bool EquityCheck()
{
// <<EFBFBD><EFBFBD> N<EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>01<EFBFBD><EFBFBD>S<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
double usedMoney = AccountEquity() - AccountFreeMarginCheck(Symbol(), aCmd, CalculateLots(MM_Risk, StopLoss_pips));
if (!(
(AccountStopoutMode() == 0 && usedMoney > 0.0 && (AccountEquity() / usedMoney) * 100 <= AccountStopoutLevel())
|| (AccountStopoutMode() == 0 && usedMoney > 0.0 && AccountFreeMarginCheck(Symbol(), aCmd, CalculateLots(MM_Risk, StopLoss_pips)) <= 0)
|| (AccountStopoutMode() == 1 && AccountFreeMarginCheck(Symbol(), aCmd, CalculateLots(MM_Risk, StopLoss_pips)) <= AccountStopoutLevel())
)
&& IsTradeAllowed() == true) // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>01<EFBFBD><EFBFBD>S$R<EFBFBD>[
{
return(true);
}
else return(false);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| TakeProfit, StopLoss |
//+------------------------------------------------------------------+
void SetTPSL()
{
int i;
bool res;
// <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)
{
int HighestIndex = iHighest(NULL, PERIOD_M30, MODE_HIGH, CandleCheckCount, 1);
int LowestIndex = iLowest(NULL, PERIOD_M30, MODE_LOW , CandleCheckCount, 1);
double MostHigh = iHigh(NULL, PERIOD_M30, HighestIndex);
double MostLow = iLow(NULL, PERIOD_M30, LowestIndex);
double TP_buy = (MostHigh - MostLow) * HL_margin_Ex_mul_buy;
TP_buy = NormalizeDouble(TP_buy, Digits);
// 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_buy * xpoint,//SL_buy,
OrderOpenPrice() + TP_buy,//TakeProfit_pips * xpoint,
0,
MediumSeaGreen);
}
}
// <EFBFBD>X<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n04XT
if (OrderType() == OP_SELL)
{
int HighestIndex = iHighest(NULL, PERIOD_M30, MODE_HIGH, CandleCheckCount, 1);
int LowestIndex = iLowest(NULL, PERIOD_M30, MODE_LOW , CandleCheckCount, 1);
double MostHigh = iHigh(NULL, PERIOD_M30, HighestIndex);
double MostLow = iLow(NULL, PERIOD_M30, LowestIndex);
double TP_sell = (MostHigh - MostLow) * HL_margin_Ex_mul_sell;
TP_sell = NormalizeDouble(TP_sell, Digits);
// 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_sell * xpoint,//SL_sell,
OrderOpenPrice() - TP_sell,//TakeProfit_pips * xpoint,
0,
MediumSeaGreen);
}
}
}
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| <EFBFBD>)R_j<EFBFBD><EFBFBD> |
//+------------------------------------------------------------------+
// <EFBFBD>)R_j<EFBFBD><EFBFBD>n0<EFBFBD>0<EFBFBD>0<EFBFBD>0pe<EFBFBD>0<EFBFBD><EFBFBD>{Y0<EFBFBD>0
double CalculateLots(double risk, // 1<EFBFBD><EFBFBD>[Y0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
int sl_pips) // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
{
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Bfo00<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0(un0<EFBFBD>)R_j<EFBFBD><EFBFBD><EFBFBD>0O(uY0<EFBFBD>0
if (IsTesting())
return(CalculateLots_forTest(risk, sl_pips));
else
return(CalculateLots_forReal(risk, sl_pips));
}
// <EFBFBD>)R_j<EFBFBD><EFBFBD>n0<EFBFBD>0<EFBFBD>0<EFBFBD>0pe<EFBFBD>0<EFBFBD><EFBFBD>{Y0<EFBFBD>0<EFBFBD><EFBFBD>[<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0(u <EFBFBD>
double CalculateLots_forReal(double risk, // 1<EFBFBD><EFBFBD>[Y0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
int sl_pips) // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
{
double freemargin; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0YOpR<<EFBFBD><EFBFBD>
double balance; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0<EFBFBD>S<EFBFBD>^<EFBFBD>
double credit; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
double tickvalue; // 1<EFBFBD>0<EFBFBD>0<EFBFBD>01pipS__0<EFBFBD>0n0<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>vS_M<EFBFBD>
double lotstep; // <EFBFBD>0<EFBFBD>0<EFBFBD>0n0<EFBFBD>0<EFBFBD>0<EFBFBD>0pen0g\;R06RP<EFBFBD>
double maxlots; // <EFBFBD>0<EFBFBD>0<EFBFBD>0n0g'Y<EFBFBD>0<EFBFBD>0<EFBFBD>0pe6RP<EFBFBD>
double minlots; // <EFBFBD>0<EFBFBD>0<EFBFBD>0n0g\<EFBFBD>0<EFBFBD>0<EFBFBD>0pe6RP<EFBFBD>
double lotsize = Lots; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
freemargin = AccountFreeMargin();
balance = AccountBalance();
credit = AccountCredit();
tickvalue = MarketInfo(NULL, MODE_TICKVALUE);
lotstep = MarketInfo(NULL, MODE_LOTSTEP);
maxlots = MarketInfo(NULL, MODE_MAXLOT);
minlots = MarketInfo(NULL, MODE_MINLOT);
// <EFBFBD>)R_j<EFBFBD><EFBFBD><EFBFBD>0O<EFBFBD>0j0D04XT0LotsK0<EFBFBD>0<EFBFBD>OckU0<EFBFBD>0_0lotsize<EFBFBD>0ԏY0
int step = (int)MathAbs(MathLog10(MarketInfo(Symbol(), MODE_LOTSTEP)));
lotsize = NormalizeDouble(Lots, (int)step); //<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0g0<EFBFBD>Vhc<EFBFBD>NeQ
lotsize = MathMax(minlots, MathMin(maxlots, lotsize)); //g\<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>N Nj0<EFBFBD>0g\<EFBFBD>0<EFBFBD>0<EFBFBD>0k00g'Y<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>N
Nj0<EFBFBD>0g'Y<EFBFBD>0<EFBFBD>0<EFBFBD>0k0<EFBFBD>Ock<EFBFBD>mql5<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0g0<EFBFBD>_<EFBFBD> <EFBFBD>
if (MM_ON == Fixed) return(lotsize);
// tickvalueo0pipsg0o0j0O0pointj0n0g00\pe<EFBFBD>p<EFBFBD>N Nn0Ahpek0<EFBFBD>_X0f0܈ckY0<EFBFBD>0
if (StringSubstr(Symbol(), 0, 6) == "XAUUSD" || StringSubstr(Symbol(), 0, 4) == "GOLD") // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0AhT<EFBFBD>0[0
{
if (Digits() == 2)
tickvalue = tickvalue * 10;
else if (Digits() == 3)
tickvalue = tickvalue * 100;
}
else if (!(StringSubstr(Symbol(), 0, 6) == "XAUUSD" || StringSubstr(Symbol(), 0, 4) == "GOLD")) // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>NYAhT<EFBFBD>0[0
{
if (Digits() == 3 || Digits() == 5)
tickvalue = tickvalue * 10;
}
// 1<EFBFBD><EFBFBD>[Y0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0h0SLn0E^K0<EFBFBD>00<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>{Y0<EFBFBD>00
if (MM_ON == FreeMargin) // YOpR<<EFBFBD><EFBFBD><EFBFBD>e_
{
lotsize = (freemargin * risk / 100.0) // 1<EFBFBD><EFBFBD>[Y0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 (YOpR<<EFBFBD><EFBFBD>bёn0risk%)
/ (sl_pips * tickvalue); // 1<EFBFBD>0<EFBFBD>0<EFBFBD>0g0SLk0K0K0c0_0Bfn0ёM<EFBFBD>
}
else if (MM_ON == Balance) // <EFBFBD><EFBFBD>e_
{
lotsize = (balance * risk / 100.0) // 1<EFBFBD><EFBFBD>[Y0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 (YOpR<<EFBFBD><EFBFBD>bёn0risk%)
/ (sl_pips * tickvalue); // 1<EFBFBD>0<EFBFBD>0<EFBFBD>0g0SLk0K0K0c0_0Bfn0ёM<EFBFBD>
}
else if (MM_ON == AddCredit) // <EFBFBD>+<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>e_
{
lotsize = ((balance + credit) * risk / 100.0) // 1<EFBFBD><EFBFBD>[Y0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 (YOpR<<EFBFBD><EFBFBD>bёn0risk%)
/ (sl_pips * tickvalue); // 1<EFBFBD>0<EFBFBD>0<EFBFBD>0g0SLk0K0K0c0_0Bfn0ёM<EFBFBD>
}
// <EFBFBD>0<EFBFBD>0<EFBFBD>0n0<EFBFBD>0<EFBFBD>0<EFBFBD>0pen0;R0k0T<EFBFBD>0[0f0<EFBFBD>0<EFBFBD>0<EFBFBD>0pe<EFBFBD>0<EFBFBD>Ock
lotsize = MathFloor(lotsize / lotstep) * lotstep;
// <EFBFBD>0<EFBFBD>0<EFBFBD>0n0g\<EFBFBD>0<EFBFBD>0<EFBFBD>0pe<EFBFBD>0g'Y<EFBFBD>0<EFBFBD>0<EFBFBD>0peg0܈ck<EFBFBD>0K0Q0<EFBFBD>0
lotsize = MathMax(lotsize, minlots);
lotsize = MathMin(lotsize, maxlots);
return(lotsize);
}
// <EFBFBD>)R_j<EFBFBD><EFBFBD>n0<EFBFBD>0<EFBFBD>0<EFBFBD>0pe<EFBFBD>0<EFBFBD><EFBFBD>{Y0<EFBFBD>0<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0(u <EFBFBD>
double CalculateLots_forTest(double risk, // 1<EFBFBD><EFBFBD>[Y0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
int sl_pips) // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
{
double freemargin; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0YOpR<<EFBFBD><EFBFBD>
double balance; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0<EFBFBD>S<EFBFBD>^<EFBFBD>
double credit; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
double tickvalue; // 1<EFBFBD>0<EFBFBD>0<EFBFBD>01pipS__0<EFBFBD>0n0<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>vS_M<EFBFBD>
double lotstep; // <EFBFBD>0<EFBFBD>0<EFBFBD>0n0<EFBFBD>0<EFBFBD>0<EFBFBD>0pen0g\;R06RP<EFBFBD>
double maxlots; // <EFBFBD>0<EFBFBD>0<EFBFBD>0n0g'Y<EFBFBD>0<EFBFBD>0<EFBFBD>0pe6RP<EFBFBD>
double minlots; // <EFBFBD>0<EFBFBD>0<EFBFBD>0n0g\<EFBFBD>0<EFBFBD>0<EFBFBD>0pe6RP<EFBFBD>
double lotamount; // 1<EFBFBD>0<EFBFBD>0<EFBFBD>0n0<EFBFBD><EFBFBD><EFBFBD>pe
double lotsize = Lots; // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
double conv; // <EFBFBD>S<EFBFBD>^<EFBFBD><EFBFBD><EFBFBD>.z^<EFBFBD>k0<EFBFBD>0<EFBFBD>0܈ck<EFBFBD>Ope
freemargin = AccountFreeMargin();
balance = AccountBalance();
credit = AccountCredit();
tickvalue = MarketInfo(NULL, MODE_TICKVALUE);
lotstep = MarketInfo(NULL, MODE_LOTSTEP);
maxlots = MarketInfo(NULL, MODE_MAXLOT);
minlots = MarketInfo(NULL, MODE_MINLOT);
lotamount = MarketInfo(NULL, MODE_LOTSIZE);
// <EFBFBD>)R_j<EFBFBD><EFBFBD><EFBFBD>0O<EFBFBD>0j0D04XT0LotsK0<EFBFBD>0<EFBFBD>OckU0<EFBFBD>0_0lotsize<EFBFBD>0ԏY0
int step = (int)MathAbs(MathLog10(MarketInfo(Symbol(), MODE_LOTSTEP)));
lotsize = NormalizeDouble(Lots, step); //<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0g0<EFBFBD>Vhc<EFBFBD>NeQ
lotsize = MathMax(minlots, MathMin(maxlots, lotsize)); //g\<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>N Nj0<EFBFBD>0g\<EFBFBD>0<EFBFBD>0<EFBFBD>0k00g'Y<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>N
Nj0<EFBFBD>0g'Y<EFBFBD>0<EFBFBD>0<EFBFBD>0k0<EFBFBD>Ock<EFBFBD>mql5<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0g0<EFBFBD>_<EFBFBD> <EFBFBD>
if (MM_ON == Fixed) return(lotsize);
// 1N<EFBFBD><EFBFBD><EFBFBD>*1pips = $1 = 100<EFBFBD>Qh0<EFBFBD>N<EFBFBD>[W001<EFBFBD>0<EFBFBD>0<EFBFBD>01pipn0 Y<EFBFBD>RL0<EFBFBD>S<EFBFBD>^<EFBFBD><EFBFBD><EFBFBD>g0D0O0<EFBFBD>0k0<EFBFBD>vS_Y0<EFBFBD>0K0<EFBFBD><EFBFBD>{
// 1 lot = 10N<EFBFBD><EFBFBD><EFBFBD>
// <EFBFBD>S<EFBFBD>^<EFBFBD><EFBFBD><EFBFBD> = JPY : tickvalue = 1000<EFBFBD>Q/(lot<EFBFBD>0pip)
// <EFBFBD>S<EFBFBD>^<EFBFBD><EFBFBD><EFBFBD> = USD : tickvalue = $10/(lot<EFBFBD>0pip)
if (StringSubstr(Symbol(), 0, 6) == "XAUUSD" || StringSubstr(Symbol(), 0, 4) == "GOLD") // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0AhT<EFBFBD>0[0
{
conv = 1000;
if (AccountCurrency() == "JPY")
conv = 100000;
tickvalue = lotamount / 10000 * conv;
}
else if (!(StringSubstr(Symbol(), 0, 6) == "XAUUSD" || StringSubstr(Symbol(), 0, 4) == "GOLD")) // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>NYAhT<EFBFBD>0[0
{
conv = 1;
if (AccountCurrency() == "JPY")
conv = 100;
tickvalue = lotamount / 10000 * conv;
}
// 1<EFBFBD><EFBFBD>[Y0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0h0SLn0E^K0<EFBFBD>00<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>{Y0<EFBFBD>00
if (MM_ON == FreeMargin) // YOpR<<EFBFBD><EFBFBD><EFBFBD>e_
{
lotsize = (freemargin * risk / 100.0) // 1<EFBFBD><EFBFBD>[Y0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 (YOpR<<EFBFBD><EFBFBD>bёn0risk%)
/ (sl_pips * tickvalue); // 1<EFBFBD>0<EFBFBD>0<EFBFBD>0g0SLk0K0K0c0_0Bfn0ёM<EFBFBD>
}
else if (MM_ON == Balance) // <EFBFBD><EFBFBD>e_
{
lotsize = (balance * risk / 100.0) // 1<EFBFBD><EFBFBD>[Y0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 (YOpR<<EFBFBD><EFBFBD>bёn0risk%)
/ (sl_pips * tickvalue); // 1<EFBFBD>0<EFBFBD>0<EFBFBD>0g0SLk0K0K0c0_0Bfn0ёM<EFBFBD>
}
else if (MM_ON == AddCredit) // <EFBFBD>+<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>e_
{
lotsize = ((balance + credit) * risk / 100.0) // 1<EFBFBD><EFBFBD>[Y0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 (YOpR<<EFBFBD><EFBFBD>bёn0risk%)
/ (sl_pips * tickvalue); // 1<EFBFBD>0<EFBFBD>0<EFBFBD>0g0SLk0K0K0c0_0Bfn0ёM<EFBFBD>
}
// <EFBFBD>0<EFBFBD>0<EFBFBD>0n0<EFBFBD>0<EFBFBD>0<EFBFBD>0pen0;R0k0T<EFBFBD>0[0f0<EFBFBD>0<EFBFBD>0<EFBFBD>0pe<EFBFBD>0<EFBFBD>Ock
lotsize = MathFloor(lotsize / lotstep) * lotstep;
// <EFBFBD>0<EFBFBD>0<EFBFBD>0n0g\<EFBFBD>0<EFBFBD>0<EFBFBD>0pe<EFBFBD>0g'Y<EFBFBD>0<EFBFBD>0<EFBFBD>0peg0܈ck<EFBFBD>0K0Q0<EFBFBD>0
lotsize = MathMax(lotsize, minlots);
lotsize = MathMin(lotsize, maxlots);
return(lotsize);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>}<EFBFBD>b |
//+------------------------------------------------------------------+
int Entry(bool isbuy)
{
if (Entry_Rule1(isbuy) == 1 && (Entry_Filter1(isbuy) == 1 || Entry_Filter1(isbuy) == 3)
&& (Entry_Filter2(isbuy) == 1 || Entry_Filter2(isbuy) == 3)
&& (Entry_Filter3(isbuy) == 1 || Entry_Filter3(isbuy) == 3)
&& (Entry_Filter4(isbuy) == 1 || Entry_Filter4(isbuy) == 3)
&& (Entry_Filter5(isbuy) == 1 || Entry_Filter5(isbuy) == 3)
&& (Entry_Filter6(isbuy) == 1 || Entry_Filter6(isbuy) == 3)
&& (Entry_Filter7(isbuy) == 1 || Entry_Filter7(isbuy) == 3)
&& (Entry_Filter8(isbuy) == 1 || Entry_Filter8(isbuy) == 3)
&& (Entry_Filter9(isbuy) == 1 || Entry_Filter9(isbuy) == 3)
&& (Entry_Filter10(isbuy) == 1 || Entry_Filter10(isbuy) == 3)
)
{
return(1);
}
else if (Entry_Rule1(isbuy) == 2 && (Entry_Filter1(isbuy) == 2 || Entry_Filter1(isbuy) == 3)
&& (Entry_Filter2(isbuy) == 2 || Entry_Filter2(isbuy) == 3)
&& (Entry_Filter3(isbuy) == 2 || Entry_Filter3(isbuy) == 3)
&& (Entry_Filter4(isbuy) == 2 || Entry_Filter4(isbuy) == 3)
&& (Entry_Filter5(isbuy) == 2 || Entry_Filter5(isbuy) == 3)
&& (Entry_Filter6(isbuy) == 2 || Entry_Filter6(isbuy) == 3)
&& (Entry_Filter7(isbuy) == 2 || Entry_Filter7(isbuy) == 3)
&& (Entry_Filter8(isbuy) == 2 || Entry_Filter8(isbuy) == 3)
&& (Entry_Filter9(isbuy) == 2 || Entry_Filter9(isbuy) == 3)
&& (Entry_Filter10(isbuy) == 2 || Entry_Filter10(isbuy) == 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(bool isbuy, double profit)
{
if (Exit_Rule1(isbuy, profit) == 3 && Exit_Rule2(isbuy, profit) == 3 && Exit_Rule3(isbuy, profit) == 3
&& Exit_Rule4(isbuy, profit) == 3 && Exit_Rule5(isbuy, profit) == 3 && Exit_Rule6(isbuy, profit) == 3
&& Exit_Rule7(isbuy, profit) == 3 && Exit_Rule8(isbuy, profit) == 3 && Exit_Rule9(isbuy, profit) == 3
&& Exit_Rule10(isbuy, profit) == 3)
{
return(0);
}
else if (Exit_Rule1(isbuy, profit) == 1)
{
return(1);
}
else if (Exit_Rule2(isbuy, profit) == 1)
{
return(1);
}
else if (Exit_Rule3(isbuy, profit) == 1)
{
return(1);
}
else if (Exit_Rule4(isbuy, profit) == 1)
{
return(1);
}
else if (Exit_Rule5(isbuy, profit) == 1)
{
return(1);
}
else if (Exit_Rule6(isbuy, profit) == 1)
{
return(1);
}
else if (Exit_Rule7(isbuy, profit) == 1)
{
return(1);
}
else if (Exit_Rule8(isbuy, profit) == 1)
{
return(1);
}
else if (Exit_Rule9(isbuy, profit) == 1)
{
return(1);
}
else if (Exit_Rule10(isbuy, profit) == 1)
{
return(1);
}
else
{
return(0);
}
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| <EFBFBD><EFBFBD>D0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0zln<EFBFBD>}<EFBFBD>b |
//+------------------------------------------------------------------+
int Exit2(bool isbuy, double profit)
{
if (Exit_Rule1(isbuy, profit) == 3 && Exit_Rule2(isbuy, profit) == 3 && Exit_Rule3(isbuy, profit) == 3
&& Exit_Rule4(isbuy, profit) == 3 && Exit_Rule5(isbuy, profit) == 3 && Exit_Rule6(isbuy, profit) == 3
&& Exit_Rule7(isbuy, profit) == 3 && Exit_Rule8(isbuy, profit) == 3 && Exit_Rule9(isbuy, profit) == 3
&& Exit_Rule10(isbuy, profit) == 3)
{
return(0);
}
else if (Exit_Rule1(isbuy, profit) == 2)
{
return(2);
}
else if (Exit_Rule2(isbuy, profit) == 2)
{
return(2);
}
else if (Exit_Rule3(isbuy, profit) == 2)
{
return(2);
}
else if (Exit_Rule4(isbuy, profit) == 2)
{
return(2);
}
else if (Exit_Rule5(isbuy, profit) == 2)
{
return(2);
}
else if (Exit_Rule6(isbuy, profit) == 2)
{
return(2);
}
else if (Exit_Rule7(isbuy, profit) == 2)
{
return(2);
}
else if (Exit_Rule8(isbuy, profit) == 2)
{
return(2);
}
else if (Exit_Rule9(isbuy, profit) == 2)
{
return(2);
}
else if (Exit_Rule10(isbuy, profit) == 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(bool isbuy)
{
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>01
//<EFBFBD>wg<EFBFBD>y<EFBFBD>Rs^GW<EFBFBD>}L0w<EFBFBD>g<EFBFBD>y<EFBFBD>Rs^GW<EFBFBD>}n0
Nk0D0<EFBFBD>0<EFBFBD><EFBFBD>o0 0<EFBFBD><EFBFBD>D0 0
double MA1 = iMA(NULL, MA_Perfect_Order_TIMEFRAMES, MA_Perfect_Order_period1, 0, MODE_SMA, PRICE_CLOSE, 1);
double MA2 = iMA(NULL, MA_Perfect_Order_TIMEFRAMES, MA_Perfect_Order_period2, 0, MODE_SMA, PRICE_CLOSE, 1);
//<EFBFBD>wg<EFBFBD>y<EFBFBD>Rs^GW<EFBFBD>}L0w<EFBFBD>g<EFBFBD>y<EFBFBD>Rs^GW<EFBFBD>}n0
Nk0D0<EFBFBD>0<EFBFBD><EFBFBD>o0 0<EFBFBD><EFBFBD>D0 0
if ( MA1 > MA2)
{
return(1);
} // <EFBFBD><EFBFBD>D0
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(bool isbuy)
{
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>01
// <EFBFBD>V<EFBFBD>[<EFBFBD>N<EFBFBD>i<EFBFBD>|<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
double spread = MarketInfo(NULL, MODE_SPREAD);
if(Digits == 3 || Digits == 5)
spread /= 10.0;
if(spread > MaxSpread_pips)
return(0); // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0L0c<EFBFBD>[pips<EFBFBD>N
Ng0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 N1<EFBFBD><EFBFBD>S
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
double Close0 = iClose(NULL, 0, 0);
double Close1 = iClose(NULL, 0, 1);
if (xxTime != 1 && MathAbs(Close0 - Close1) >= Gap_Pips * xpoint) return(0);
if (xxTime == 1 && MathAbs(Close0 - Close1) >= Gap_Pips_1 * xpoint) return(0);
// t^+gt^<EFBFBD>Y<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>12/20~1/3~0g0o0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0W0j0D0
int NGMonth = Month();
int NGDay = Day();
if (YearendClose == true
&& ((NGMonth == 12 && NGDay >= 20) || (NGMonth == 1 && NGDay <= 3))
)
{
return(0);
} // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>Qegj0D0
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>01<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
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(bool isbuy)
{
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>02
//ATRL0c<EFBFBD>[$P<EFBFBD>N Nn0Bfn00<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>Qeg<EFBFBD>0
double ATR = iATR(NULL, ATR_TIMEFRAMES, ATR_Period, 1); // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n00 M15 0.005(0.005)1.1 M30_0.05(0.02)1 H1_0.1(0.02)1 H4_0.2(0.05)1.5 D1_1(0.1)4.5
// zln<EFBFBD><EFBFBD>0 M15 0.05(0.02)1.1
if (ATR <= ATR_Filter_Line)
{
return(1);
} // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>Qeg<EFBFBD>0
else
{
return(0);
} // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>Qegj0D0
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>02<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
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(bool isbuy)
{
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>03
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0L0c<EFBFBD>[$P<EFBFBD>N
Nk0D0<EFBFBD>0<EFBFBD><EFBFBD>o0 0<EFBFBD><EFBFBD>D0 00c<EFBFBD>[$P<EFBFBD>N Nk0D0<EFBFBD>0<EFBFBD><EFBFBD>o0 0<EFBFBD>X<EFBFBD>0 0
// %D<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0OF0Bfo0 N<EFBFBD>n0isUseSlowD=falsek00slow%D<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0OF0Bfo0isUseSlowD=truek0W0f0 NU0D00
bool isUseSLowD=true;
double Stochastic1;
if (isUseSLowD) //10(10)200 10(10)200 10(10)200 25(5)70
Stochastic1 = iStochastic(NULL, Stochastic_TIMEFRAMES, PercentK_period, PercentD_period, Slow_period, MODE_SMA, 0, MODE_SIGNAL, 1); // slowD<EFBFBD>0<EFBFBD>0<EFBFBD>0
else
Stochastic1 = iStochastic(NULL, Stochastic_TIMEFRAMES, PercentK_period, PercentD_period, Slow_period, MODE_SMA, 0, MODE_MAIN, 1); // %D<EFBFBD>0<EFBFBD>0<EFBFBD>0
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0L0c<EFBFBD>[$P<EFBFBD>N
Nk0D0<EFBFBD>0<EFBFBD><EFBFBD>o0 0<EFBFBD><EFBFBD>D0 0
if (Stochastic1 > Stochastics_LINE)
{
return(1);
} // <EFBFBD><EFBFBD>D0
else
{
return(0);
}
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>03<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
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(bool isbuy)
{
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>04
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>L0N<EFBFBD>vGWa<EFBFBD>h<EFBFBD>n0<EFBFBD><EFBFBD>n0-Ng0zlnU0<EFBFBD>0_0<EFBFBD>_01<EFBFBD>^<EFBFBD><EFBFBD>n0Yk0<EFBFBD>Q_0K0<EFBFBD>x<EFBFBD><EFBFBD>
double c, senkoua, senkoub;
// HQL<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0A?<EFBFBD>B
c = Close[1];
senkoua = iIchimoku(NULL, Ichimoku_kumononaka_TIMEFRAMES, Ichimoku_kumononaka_tenkan, Ichimoku_kumononaka_kijun, Ichimoku_kumononaka_senkou, MODE_SENKOUSPANA, 1);
senkoub = iIchimoku(NULL, Ichimoku_kumononaka_TIMEFRAMES, Ichimoku_kumononaka_tenkan, Ichimoku_kumononaka_kijun, Ichimoku_kumononaka_senkou, MODE_SENKOUSPANB, 1);
if(Kumononaka_Exit == false) //false`0c0_0<EFBFBD>0 if<EFBFBD>e0<EFBFBD>00true`0c0_0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0g0M0<EFBFBD>0
{
if(c > MathMax(senkoua, senkoub) || c < MathMin(senkoua, senkoub)) //<EFBFBD><EFBFBD>n0YtPk0D0<EFBFBD>0K0<EFBFBD>x<EFBFBD><EFBFBD>
{
Kumononaka_Exit = true; //true0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0g0M0<EFBFBD>0 <EFBFBD>00false0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0g0M0j0D0
return(3); //<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0g0M0<EFBFBD>0
}
else
{
return(0); //<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0g0M0j0D0
}
}
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>04<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
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(bool isbuy)
{
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>05
// ADXL0c<EFBFBD>[$P<EFBFBD>N
Nn0Bfn00<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>Qeg<EFBFBD>0
double ADX = iADX(NULL, ADX_TIMEFRAMES, ADX_Period, PRICE_CLOSE, MODE_MAIN, 1); // 10(10)200 5(5)40 5(5)50
// zln
if (ADX >= ADX_Filter_Line)
{
return(1);
} // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>Qeg<EFBFBD>0
else
{
return(0);
} // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>Qegj0D0
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>05<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
return(3);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>06 |
//+------------------------------------------------------------------+
int Entry_Filter6(bool isbuy)
{
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>06
// w<EFBFBD>g<EFBFBD>y<EFBFBD>Rs^GW<EFBFBD>}k0<EFBFBD>[W0<EFBFBD>wg<EFBFBD>y<EFBFBD>Rs^GW<EFBFBD>}L00c<EFBFBD>[%<EFBFBD>N
N0 Nk0VN<EFBFBD><EFBFBD>W0_0<EFBFBD>0 0<EFBFBD><EFBFBD>D0 0
double MA_1 = iMA(NULL, MA_Kairi_TIMEFRAMES, MA_Kairi_period1, 0, MODE_SMA, PRICE_CLOSE, 1); // 10(10)200 0.2(0.2)10 0.2(0.2)10
double MA_2 = iMA(NULL, MA_Kairi_TIMEFRAMES, MA_Kairi_period2, 0, MODE_SMA, PRICE_CLOSE, 1); // zln
// w<EFBFBD>g<EFBFBD>y<EFBFBD>Rs^GW<EFBFBD>}k0<EFBFBD>[W0<EFBFBD>wg<EFBFBD>y<EFBFBD>Rs^GW<EFBFBD>}L00c<EFBFBD>[%<EFBFBD>N
N0 Nk0VN<EFBFBD><EFBFBD>W0_0<EFBFBD>0 0<EFBFBD><EFBFBD>D0 0
if (MA_1 < (MA_2 + Close[1] * MA_Kairi_Filter_percent / 100.0))
{
return(1);
} // <EFBFBD><EFBFBD>D0
else
{
return(0);
}
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>06<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
return(3);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>07 |
//+------------------------------------------------------------------+
int Entry_Filter7(bool isbuy)
{
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>07
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>07<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
return(3);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>08 |
//+------------------------------------------------------------------+
int Entry_Filter8(bool isbuy)
{
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>08
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>08<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
return(3);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>09 |
//+------------------------------------------------------------------+
int Entry_Filter9(bool isbuy)
{
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>09
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>09<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
return(3);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>010 |
//+------------------------------------------------------------------+
int Entry_Filter10(bool isbuy)
{
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>010
//<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>010<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
return(3);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| zln<EFBFBD>0<EFBFBD>0<EFBFBD>01 |
//+------------------------------------------------------------------+
int Exit_Rule1(bool isbuy, double profit)
{
// zln<EFBFBD>0<EFBFBD>0<EFBFBD>01
//<EFBFBD>wg<EFBFBD>y<EFBFBD>Rs^GW<EFBFBD>}L0w<EFBFBD>g<EFBFBD>y<EFBFBD>Rs^GW<EFBFBD>}n0 Nk0D0<EFBFBD>0<EFBFBD><EFBFBD>o0 0<EFBFBD>X<EFBFBD>0 0
double MA1 = iMA(NULL, MA_Perfect_Order_TIMEFRAMES, MA_Perfect_Order_period1, 0, MODE_SMA, PRICE_CLOSE, 1);
double MA2 = iMA(NULL, MA_Perfect_Order_TIMEFRAMES, MA_Perfect_Order_period2, 0, MODE_SMA, PRICE_CLOSE, 1);
//<EFBFBD>wg<EFBFBD>y<EFBFBD>Rs^GW<EFBFBD>}L0w<EFBFBD>g<EFBFBD>y<EFBFBD>Rs^GW<EFBFBD>}n0 Nk0D0<EFBFBD>0<EFBFBD><EFBFBD>o0 0<EFBFBD>X<EFBFBD>0 0
if (MA1 < MA2 /*&& MA2 < MA3*/)
{
return(2);
} // <EFBFBD>X<EFBFBD>0
else
{
return(0);
}
// zln<EFBFBD>0<EFBFBD>0<EFBFBD>01<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
return(3);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| zln<EFBFBD>0<EFBFBD>0<EFBFBD>02 |
//+------------------------------------------------------------------+
int Exit_Rule2(bool isbuy, double profit)
{
// zln<EFBFBD>0<EFBFBD>0<EFBFBD>02
//ATRL0c<EFBFBD>[$P<EFBFBD>N
Nn0Bfzln
double ATR = iATR(NULL, ATR_TIMEFRAMES, ATR_Exit_Period, 1); // M15 0.005(0.005)1.1 M30_0.05(0.02)1 H1_0.1(0.02)1 H4_0.2(0.05)1.5 D1_1(0.1)4.5
double ATR1 = iATR(NULL, ATR_TIMEFRAMES, ATR_Exit_Period, 2); // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 // zln<EFBFBD><EFBFBD>0 M15 0.05(0.02)1.1
if (ATR1 < ATR_Exit_Filter_Line && ATR >= ATR_Exit_Filter_Line)
{
return(2);
} // <EFBFBD>X<EFBFBD>0
else
{
return(0);
}
// zln<EFBFBD>0<EFBFBD>0<EFBFBD>02<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
return(3);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| zln<EFBFBD>0<EFBFBD>0<EFBFBD>03 |
//+------------------------------------------------------------------+
int Exit_Rule3(bool isbuy, double profit)
{
// zln<EFBFBD>0<EFBFBD>0<EFBFBD>03
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>L0N<EFBFBD>vGWa<EFBFBD>h<EFBFBD>n0<EFBFBD><EFBFBD>n0-Nk0eQ<EFBFBD>0<EFBFBD>So0<EFBFBD><EFBFBD><EFBFBD>W0_0<EFBFBD>0zln
double c, senkoua, senkoub;
double c1, senkoua1, senkoub1;
// B}$PL0<EFBFBD><EFBFBD>n0
NK0<EFBFBD>0<EFBFBD><EFBFBD>n0-Nk0eQ<EFBFBD>0h0<EFBFBD>X<EFBFBD><EFBFBD>
c = Close[1];
senkoua = iIchimoku(NULL, Ichimoku_kumononaka_TIMEFRAMES, Ichimoku_kumononaka_tenkan, Ichimoku_kumononaka_kijun, Ichimoku_kumononaka_senkou, MODE_SENKOUSPANA, 1);
senkoub = iIchimoku(NULL, Ichimoku_kumononaka_TIMEFRAMES, Ichimoku_kumononaka_tenkan, Ichimoku_kumononaka_kijun, Ichimoku_kumononaka_senkou, MODE_SENKOUSPANB, 1);
c1 = Close[2];
senkoua1 = iIchimoku(NULL, Ichimoku_kumononaka_TIMEFRAMES, Ichimoku_kumononaka_tenkan, Ichimoku_kumononaka_kijun, Ichimoku_kumononaka_senkou, MODE_SENKOUSPANA, 2);
senkoub1 = iIchimoku(NULL, Ichimoku_kumononaka_TIMEFRAMES, Ichimoku_kumononaka_tenkan, Ichimoku_kumononaka_kijun, Ichimoku_kumononaka_senkou, MODE_SENKOUSPANB, 2);
// 2,gMRn0B}$PL0<EFBFBD><EFBFBD>n0
Nk0<EFBFBD>Qf0J0<EFBFBD>001,gMRn0B}$PL0<EFBFBD><EFBFBD>n0-Nk0eQc0f0D0<EFBFBD>0<EFBFBD>So0<EFBFBD><EFBFBD>n0 N~0g0<EFBFBD><EFBFBD><EFBFBD>W0_0<EFBFBD>0zln
if((c1 >= MathMax(senkoua1, senkoub1) && c < MathMax(senkoua, senkoub) && c > MathMin(senkoua, senkoub))
|| (c1 >= MathMax(senkoua1, senkoub1) && c < MathMax(senkoua, senkoub) && c < MathMin(senkoua, senkoub)))
{
return(2);
} // <EFBFBD>X<EFBFBD>0
else
{
return(0);
}
// zln<EFBFBD>0<EFBFBD>0<EFBFBD>03<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
return(3);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| zln<EFBFBD>0<EFBFBD>0<EFBFBD>04 |
//+------------------------------------------------------------------+
int Exit_Rule4(bool isbuy, double profit)
{
// zln<EFBFBD>0<EFBFBD>0<EFBFBD>04
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0L0c<EFBFBD>,gMRL0c<EFBFBD>[$P<EFBFBD>N
N0<EFBFBD>,gMRL0c<EFBFBD>[$P<EFBFBD>N Nk0D0<EFBFBD>0<EFBFBD><EFBFBD>o0 0<EFBFBD>X<EFBFBD>0 0
// %D<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0OF0Bfo0 N<EFBFBD>n0isUseSlowD=falsek00slow%D<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0OF0Bfo0isUseSlowD=truek0W0f0 NU0D00
bool isUseSLowD=true;
double Stochastic1;
double Stochastic2;
if (isUseSLowD) //10(10)200 10(10)200 10(10)200 25(5)70
Stochastic1 = iStochastic(NULL, Stochastic_TIMEFRAMES, PercentK_period, PercentD_period, Slow_period, MODE_SMA, 0, MODE_SIGNAL, 1); // slowD<EFBFBD>0<EFBFBD>0<EFBFBD>0
else
Stochastic1 = iStochastic(NULL, Stochastic_TIMEFRAMES, PercentK_period, PercentD_period, Slow_period, MODE_SMA, 0, MODE_MAIN, 1); // %D<EFBFBD>0<EFBFBD>0<EFBFBD>0
//Print("Stochastic1 1549 = ",Stochastic1);
if (isUseSLowD) //10(10)200 10(10)200 10(10)200 25(5)70
Stochastic2 = iStochastic(NULL, Stochastic_TIMEFRAMES, PercentK_period, PercentD_period, Slow_period, MODE_SMA, 0, MODE_SIGNAL, 2); // slowD<EFBFBD>0<EFBFBD>0<EFBFBD>0
else
Stochastic2 = iStochastic(NULL, Stochastic_TIMEFRAMES, PercentK_period, PercentD_period, Slow_period, MODE_SMA, 0, MODE_MAIN, 2); // %D<EFBFBD>0<EFBFBD>0<EFBFBD>0
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0L0<EFBFBD>,gMRL0c<EFBFBD>[$P<EFBFBD>N
N0<EFBFBD>,gMRL0c<EFBFBD>[$P<EFBFBD>N Nk0D0<EFBFBD>0<EFBFBD><EFBFBD>o0 0<EFBFBD>X<EFBFBD>0 0
if (Stochastic2 >= Stochastics_Exit_LINE && Stochastic1 < Stochastics_Exit_LINE)
{
return(2);
} // <EFBFBD>X<EFBFBD>0
else
{
return(0);
}
// zln<EFBFBD>0<EFBFBD>0<EFBFBD>04<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
return(3);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| zln<EFBFBD>0<EFBFBD>0<EFBFBD>05 |
//+------------------------------------------------------------------+
int Exit_Rule5(bool isbuy, double profit)
{
// zln<EFBFBD>0<EFBFBD>0<EFBFBD>05
// ADX
NK0<EFBFBD>0zln<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 N<EFBFBD>bQ0W0_0<EFBFBD>0zln
double ADX = iADX(NULL, ADX_TIMEFRAMES, ADX_Period, PRICE_CLOSE, MODE_MAIN, 1); // 10(10)200 5(5)40 5(5)50
double ADX1 = iADX(NULL, ADX_TIMEFRAMES, ADX_Period, PRICE_CLOSE, MODE_MAIN, 2); // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
if (ADX1 > ADX_Exit_Line && ADX <= ADX_Exit_Line)
{
return(2);
} // <EFBFBD>X<EFBFBD>0
else
{
return(0);
}
// zln<EFBFBD>0<EFBFBD>0<EFBFBD>05<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
return(3);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| zln<EFBFBD>0<EFBFBD>0<EFBFBD>06 |
//+------------------------------------------------------------------+
int Exit_Rule6(bool isbuy, double profit)
{
// zln<EFBFBD>0<EFBFBD>0<EFBFBD>06
// w<EFBFBD>g<EFBFBD>y<EFBFBD>Rs^GW<EFBFBD>}k0<EFBFBD>[W0<EFBFBD>wg<EFBFBD>y<EFBFBD>Rs^GW<EFBFBD>}L00c<EFBFBD>[%<EFBFBD>N
N0 Nk0VN<EFBFBD><EFBFBD>W0_0<EFBFBD>0 0<EFBFBD><EFBFBD>D0 00
double MA_1 = iMA(NULL, MA_Kairi_TIMEFRAMES, MA_Kairi_period1, 0, MODE_SMA, PRICE_CLOSE, 1); // 10(10)200 0.2(0.2)10 0.2(0.2)10
double MA_2 = iMA(NULL, MA_Kairi_TIMEFRAMES, MA_Kairi_period2, 0, MODE_SMA, PRICE_CLOSE, 1); // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
// w<EFBFBD>g<EFBFBD>y<EFBFBD>Rs^GW<EFBFBD>}k0<EFBFBD>[W0<EFBFBD>wg<EFBFBD>y<EFBFBD>Rs^GW<EFBFBD>}L00c<EFBFBD>[%<EFBFBD>N
N0
Nk0VN<EFBFBD><EFBFBD>W0_0<EFBFBD>0 0<EFBFBD><EFBFBD>D0 0
if (MA_1 > (MA_2 + Close[1] * MA_Kairi_Exit_percent / 100.0))
{
return(2);
} // <EFBFBD>X<EFBFBD>0
else
{
return(0);
}
// zln<EFBFBD>0<EFBFBD>0<EFBFBD>06<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
return(3);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| zln<EFBFBD>0<EFBFBD>0<EFBFBD>07 |
//+------------------------------------------------------------------+
int Exit_Rule7(bool isbuy, double profit)
{
// zln<EFBFBD>0<EFBFBD>0<EFBFBD>07
// n,gMRK0<EFBFBD>02,gMRn0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>n0'YM0U0<EFBFBD>0<EFBFBD>001,gMRn0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>n0'YM0D0 K0d00p<EFBFBD><EFBFBD>}
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>n0<EFBFBD>[SOn0'YM0U0n0s^GW<EFBFBD>0<EFBFBD><EFBFBD>{Y0<EFBFBD>0
double sum_candle_body_size = 0;
for(int i = 2; i < Candle_n_hon + 2; i++)
{
double candle_body_size = MathAbs(Open[i] - Close[i]); // <EFBFBD>Y$Ph0B}$Pn0<EFBFBD>]g0<EFBFBD>[SOn0'YM0U0<EFBFBD>0<EFBFBD><EFBFBD>{
sum_candle_body_size = sum_candle_body_size + candle_body_size;
}
double avg_candle_body_size = sum_candle_body_size / Candle_n_hon; // s^GW<EFBFBD>0<EFBFBD><EFBFBD>{
// 1,gMRn0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>n0<EFBFBD>[SOn0'YM0U0<EFBFBD>0<EFBFBD>S<EFBFBD>_
double last_candle_body_size = MathAbs(Open[1] - Close[1]);
// 1,gMRL0p<EFBFBD><EFBFBD>}K0i0F0K0<EFBFBD>x<EFBFBD><EFBFBD><EFBFBD>B}$PL0<EFBFBD>Y$P<EFBFBD>0<EFBFBD>0NOQ0<EFBFBD>0p0p<EFBFBD><EFBFBD>} <EFBFBD>
bool last_candle_bear = (Close[1] < Open[1]);
// zlnag<EFBFBD>N: N<EFBFBD><EFBFBD>Sn,gn0s^GW<EFBFBD>[SOn0'YM0U0 < 1,gMRn0<EFBFBD>[SOn0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>n0'YM0U0 * y P K0d0 1,gMRL0p<EFBFBD><EFBFBD>}
if(last_candle_body_size > avg_candle_body_size * Candle_y_bai && last_candle_bear)
{
return(2); // zln
}
// zln<EFBFBD>0<EFBFBD>0<EFBFBD>07<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
return(3);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| zln<EFBFBD>0<EFBFBD>0<EFBFBD>08 |
//+------------------------------------------------------------------+
int Exit_Rule8(bool isbuy, double profit)
{
// zln<EFBFBD>0<EFBFBD>0<EFBFBD>08
// zln<EFBFBD>0<EFBFBD>0<EFBFBD>08<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
return(3);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| zln<EFBFBD>0<EFBFBD>0<EFBFBD>09 |
//+------------------------------------------------------------------+
int Exit_Rule9(bool isbuy, double profit)
{
// zln<EFBFBD>0<EFBFBD>0<EFBFBD>09
// zln<EFBFBD>0<EFBFBD>0<EFBFBD>09<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
return(3);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| zln<EFBFBD>0<EFBFBD>0<EFBFBD>010 |
//+------------------------------------------------------------------+
int Exit_Rule10(bool isbuy, double profit)
{
// zln<EFBFBD>0<EFBFBD>0<EFBFBD>010
// zln<EFBFBD>0<EFBFBD>0<EFBFBD>010<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
return(3);
}
//+------------------------------------------------------------------+