end of day
This commit is contained in:
@@ -36,3 +36,11 @@ enum MULTI_SYM_MODE{
|
|||||||
MULTI_SYM_FX_B5, // FX Benchmark 5
|
MULTI_SYM_FX_B5, // FX Benchmark 5
|
||||||
MULTI_SYM_FX_28 // FX 28 Majors
|
MULTI_SYM_FX_28 // FX 28 Majors
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum MODE_SPLIT_DATA{
|
||||||
|
NO_SPLIT,
|
||||||
|
ODD_YEARS,
|
||||||
|
EVEN_YEARS,
|
||||||
|
// ODD_MONTHS,
|
||||||
|
// EVEN_MONTHS
|
||||||
|
};
|
||||||
+44
-1
@@ -1,6 +1,7 @@
|
|||||||
#property library
|
#property library
|
||||||
#include <Trade/Trade.mqh>
|
#include <Trade/Trade.mqh>
|
||||||
#include <MyLibs/TradingWindow.mqh>
|
#include <MyLibs/TradingWindow.mqh>
|
||||||
|
#include <MyLibs/MyEnums.mqh>
|
||||||
|
|
||||||
class MyFunctions : public CObject{
|
class MyFunctions : public CObject{
|
||||||
|
|
||||||
@@ -20,7 +21,7 @@ class MyFunctions : public CObject{
|
|||||||
double get_bid_ask_price(string symbol, int price_side);
|
double get_bid_ask_price(string symbol, int price_side);
|
||||||
bool is_new_bar(string symbol, ENUM_TIMEFRAMES time_frame);
|
bool is_new_bar(string symbol, ENUM_TIMEFRAMES time_frame);
|
||||||
bool trade_window(string t1, string t2, string time_zone, bool plot_range_inp=true);
|
bool trade_window(string t1, string t2, string time_zone, bool plot_range_inp=true);
|
||||||
|
bool in_test_period(MODE_SPLIT_DATA data_period);
|
||||||
};
|
};
|
||||||
|
|
||||||
bool MyFunctions::trade_window(string t1, string t2, string time_zone="Broker", bool plot_range_inp=true){
|
bool MyFunctions::trade_window(string t1, string t2, string time_zone="Broker", bool plot_range_inp=true){
|
||||||
@@ -38,6 +39,48 @@ bool MyFunctions::is_new_bar(string symbol, ENUM_TIMEFRAMES time_frame){
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//if(!mf.in_test_period(data_split_method){return;}
|
||||||
|
bool MyFunctions::in_test_period(MODE_SPLIT_DATA data_split_method){
|
||||||
|
|
||||||
|
string result[];
|
||||||
|
string string_tc = TimeToString(TimeCurrent());
|
||||||
|
ushort u_sep = StringGetCharacter(".",0);
|
||||||
|
int split_string = StringSplit(string_tc, u_sep, result);
|
||||||
|
|
||||||
|
bool even_year = int(result[0]) % 2;
|
||||||
|
// bool even_month = int(result[1]) % 2; // need to remove the leading 0 for this to work.
|
||||||
|
|
||||||
|
if(data_split_method==NO_SPLIT){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(data_split_method==ODD_YEARS){
|
||||||
|
if (!even_year){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(data_split_method==EVEN_YEARS){
|
||||||
|
if (even_year){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// if(data_split_method==ODD_MONTHS){
|
||||||
|
// if (!even_month){
|
||||||
|
// return true;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// if(data_split_method==EVEN_MONTHS){
|
||||||
|
// if (even_month){
|
||||||
|
// return true;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// e.g. if(!mf.is_new_daily_bar(symbol, StringToTime("00:06"))){return;}
|
// e.g. if(!mf.is_new_daily_bar(symbol, StringToTime("00:06"))){return;}
|
||||||
bool MyFunctions::is_new_daily_bar(string symbol, datetime start_time){
|
bool MyFunctions::is_new_daily_bar(string symbol, datetime start_time){
|
||||||
// https://www.youtube.com/watch?v=9BdnTcGrlUM (m-25:00)
|
// https://www.youtube.com/watch?v=9BdnTcGrlUM (m-25:00)
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
#include <MyLibs/Myfunctions.mqh>
|
||||||
|
#include <MyLibs/OrderManagement.mqh>
|
||||||
|
#include <MyLibs/MyEnums.mqh>
|
||||||
|
#include <MyLibs/CustomMax.mqh>
|
||||||
|
CustomMax cm;
|
||||||
|
MyFunctions mf;
|
||||||
|
OrderManagment om;
|
||||||
|
//---
|
||||||
|
input LOT_MODE inp_lot_mode = LOT_MODE_PCT_RISK; // Lot Size Mode
|
||||||
|
input double inp_lot_var = 2; // Lot Size Var
|
||||||
|
input SL_MODE inp_sl_mode = SL_ATR_MULTIPLE; // Stop-loss Mode
|
||||||
|
input double inp_sl_var = 1; // Stop-loss Var
|
||||||
|
input TP_MODE inp_tp_mode = TP_ATR_MULTIPLE; // Take-profit Mode
|
||||||
|
input double inp_tp_var = 1.5; // Take-Profit Var
|
||||||
|
string lot_mode = EnumToString(inp_lot_mode);
|
||||||
|
string sl_mode = EnumToString(inp_sl_mode);
|
||||||
|
string tp_mode = EnumToString(inp_tp_mode);
|
||||||
|
input CUSTOM_MAX_TYPE inp_custom_criteria = CM_WIN_PERCENT_200T;
|
||||||
|
input MULTI_SYM_MODE inp_sym_mode = MULTI_SYM_FX_B5;
|
||||||
|
input MODE_SPLIT_DATA inp_data_split_method = NO_SPLIT;
|
||||||
|
input int inp_force_opt = 1;
|
||||||
|
input group "-----------------------------------------"
|
||||||
|
//----
|
||||||
|
string bm5_symbols[] = {"EURUSD", "AUDNZD", "EURGBP", "AUDCAD", "CHFJPY"};
|
||||||
|
string fx28_symbols[] = {"EURUSD","AUDNZD","AUDUSD","AUDJPY","EURCHF","EURGBP","EURJPY","GBPCHF","GBPJPY","GBPUSD","NZDUSD","USDCAD","USDCHF","USDJPY","CADJPY","EURAUD","CHFJPY","EURCAD","AUDCAD","AUDCHF","CADCHF","EURNZD","GBPAUD","GBPCAD","GBPNZD","NZDCAD","NZDCHF","NZDJPY",};
|
||||||
|
|
||||||
Reference in New Issue
Block a user