1027 lines
76 KiB
MQL5
1027 lines
76 KiB
MQL5
//+------------------------------------------------------------------+
|
|
//| ProjectName |
|
|
//| Copyright 2020, CompanyName |
|
|
//| http://www.companyname.net |
|
|
//+------------------------------------------------------------------+
|
|
#ifndef CTRL_PANEL_INPUT_STRUCT_V2_MQH
|
|
#define CTRL_PANEL_INPUT_STRUCT_V2_MQH
|
|
//+------------------------------------------------------------------+
|
|
//| Структуры и функции механизма записи просадки в бинарный файл |
|
|
//+------------------------------------------------------------------+
|
|
|
|
#define LBF_WORD "EASETKA"
|
|
#define LBF_VERSION 2
|
|
#define LBF_SET_STRUCT_VERSION 1
|
|
#define LBF_MOD_BASE "BASE"
|
|
#define LBF_MOD_ADXIMP "ADX-IMP"
|
|
#define LBF_MOD_RSICCIAS "RCI-CCI-AS"
|
|
|
|
struct LBFBalanceItem
|
|
{
|
|
datetime dt;
|
|
|
|
double balance;
|
|
double equity;
|
|
double free_margin;
|
|
|
|
int count_buy;
|
|
int count_sell;
|
|
|
|
double drawdown;
|
|
double margin;
|
|
|
|
double drawdown_buy;
|
|
double drawdown_sell;
|
|
|
|
double length_buy;
|
|
double length_sell;
|
|
|
|
double volume_buy;
|
|
double volume_sell;
|
|
|
|
|
|
double tick_value;
|
|
};
|
|
|
|
|
|
struct LBFHeader
|
|
{
|
|
uchar word[7]; // Ключевое слово EA-SETKA
|
|
uchar format_ver; // Версия формата
|
|
uchar bot_ver[10]; // Версия бота
|
|
uchar bot_mod[10]; // Мод бота
|
|
long leverage; // Плечо тестирования
|
|
long count_item; // Количество элементов для записи
|
|
uchar set_struct_version; // Версия структуры содержащей сет
|
|
int size_of_set_struct; // Размер структуры содержащей сет
|
|
};
|
|
|
|
struct LBFSetStruct
|
|
{
|
|
bool TradeSell;
|
|
bool TradeBuy;
|
|
bool S_OpenFirstOrder;
|
|
bool B_OpenFirstOrder;
|
|
bool S_CloseAllOrders;
|
|
bool B_CloseAllOrders;
|
|
int S_PauseOnClose;
|
|
int B_PauseOnClose;
|
|
int MagicNumber;
|
|
bool ReflectSellSettingsToBuy;
|
|
float MaxSpread;
|
|
int MaxSpreadStopTradingTimining;
|
|
int MinLeverage;
|
|
int MinTimeStep;
|
|
int MaxTradePairs;
|
|
int CurrencyBlock;
|
|
int No1Order_ByDrawdownPercent;
|
|
int No1Order_ByDrawdownPercent_Off;
|
|
int StopTrade_ByDrawdownPercent;
|
|
int StopTrade_ByDrawdownPercent_Off;
|
|
int StopTrade_ByDrawdownMoney;
|
|
int StopTrade_ByDrawdownMoney_Off;
|
|
double CloseAllOrders_ByProfitPercent;
|
|
double CloseAllOrders_ByProfitMoney;
|
|
double CloseAllOrders_ByDrawdownPercent;
|
|
double CloseAllOrders_ByDrawdownMoney;
|
|
double S_CloseOrders_ByDrawdown_For001Lot;
|
|
double B_CloseOrders_ByDrawdown_For001Lot;
|
|
bool CloseAllOrders_ByDrawdown_StopTrade;
|
|
int S_MaxOpenOrders;
|
|
int S_GridStep;
|
|
int S_GridLevel;
|
|
int S_GridStep_AddPips;
|
|
int S_GridStep_Level2;
|
|
int S_GridStep_Level2_AddPips;
|
|
int S_Grid3;
|
|
int S_Grid3Add;
|
|
int S_GridStop;
|
|
enum_calc_lot_type S_CalcLotType;
|
|
int S_CurrencyFor001Lot;
|
|
double S_MinLot;
|
|
double S_Mult;
|
|
int S_MultStart;
|
|
int S_MultLevel2;
|
|
double S_MultCorr;
|
|
int S_MultLevel3;
|
|
double S_MultСorrLevel3;
|
|
int S_Mult3;
|
|
double S_Mult3Add;
|
|
int S_MultStop;
|
|
double S_MaxLotCoef;
|
|
double S_TestMinLot;
|
|
enum_take_profit_calc_type S_TakeProffitType;
|
|
int S_TakeProffit;
|
|
int S_TakeProffit_Level1;
|
|
int S_TakeProffit_Level1Corr;
|
|
int S_TakeProffit_Level1_5;
|
|
int S_TakeProffit_Level1_5Corr;
|
|
int S_TakeProffit_Level2;
|
|
int S_TakeProffit_Level2FixPips;
|
|
int B_MaxOpenOrders;
|
|
int B_GridStep;
|
|
int B_GridLevel;
|
|
int B_GridStep_AddPips;
|
|
int B_GridStep_Level2;
|
|
int B_GridStep_Level2_AddPips;
|
|
int B_Grid3;
|
|
int B_Grid3Add;
|
|
int B_GridStop;
|
|
enum_calc_lot_type B_CalcLotType;
|
|
int B_CurrencyFor001Lot;
|
|
double B_MinLot;
|
|
double B_Mult;
|
|
int B_MultStart;
|
|
int B_MultLevel2;
|
|
double B_MultCorr;
|
|
int B_MultLevel3;
|
|
double B_MultСorrLevel3;
|
|
int B_Mult3;
|
|
double B_Mult3Add;
|
|
int B_MultStop;
|
|
double B_MaxLotCoef;
|
|
double B_TestMinLot;
|
|
enum_take_profit_calc_type B_TakeProffitType;
|
|
int B_TakeProffit;
|
|
int B_TakeProffit_Level1;
|
|
int B_TakeProffit_Level1Corr;
|
|
int B_TakeProffit_Level1_5;
|
|
int B_TakeProffit_Level1_5Corr;
|
|
int B_TakeProffit_Level2;
|
|
int B_TakeProffit_Level2FixPips;
|
|
|
|
|
|
enum_use_indicator use_ADX_for1Order;
|
|
enum_time_frames AdxTimeFrame1;
|
|
int AdxPeriod1;
|
|
double AdxLevel1;
|
|
double use_ADX_ds1;
|
|
bool use_ADX_p3_1;
|
|
|
|
int use_ADX_for_next_Order;
|
|
enum_time_frames AdxTimeFrame;
|
|
int AdxPeriod;
|
|
double AdxLevel;
|
|
double use_ADX_ds;
|
|
bool use_ADX_p3;
|
|
|
|
enum_use_indicator use_imp_for1Order;
|
|
enum_impulse_select imp_indi_1order;
|
|
enum_time_frames ImpTimeFrame1;
|
|
int ImpPeriod1;
|
|
double LGCoeff1;
|
|
double ImpLevel1;
|
|
|
|
int use_imp_for_next_Order;
|
|
enum_impulse_select imp_indi_next_order;
|
|
enum_time_frames ImpTimeFrame;
|
|
int ImpPeriod;
|
|
double LGCoeff;
|
|
double ImpLevel;
|
|
|
|
enum_time_frames CandleTimeframe;
|
|
enum_time_frames CandleTimeframeNext;
|
|
enum_time_frames RsiTimeframe;
|
|
int RsiPeriod;
|
|
int RsiLevel;
|
|
enum_time_frames RsiTimeframeNext;
|
|
int RsiPeriodNext;
|
|
int RsiLevelNext;
|
|
enum_time_frames CciTimeframe;
|
|
int CciPeriod;
|
|
int CciLevel;
|
|
enum_time_frames CciTimeframeNext;
|
|
int CciPeriodNext;
|
|
int CciLevelNext;
|
|
bool use_for1Order;
|
|
int use_for_next_Order;
|
|
|
|
enum_time_frames OpenFirstOrderTF;
|
|
int CandlesToOpen1Order;
|
|
bool CandlesToOpen1Order_OpenClose;
|
|
int CandlesToOpen1Order_MinPips;
|
|
int CandlesToOpen1Order_MaxPips;
|
|
bool ReversSignalToOpen1Order;
|
|
bool CandlesToOpen1Order_OneWay;
|
|
|
|
enum_gap_control_type GapControl;
|
|
int GapMaxStopOrders;
|
|
int GapMinDistanceFromMarket;
|
|
int S_GapMinPips;
|
|
int S_GapMinPercent;
|
|
double S_GapLotKoef;
|
|
double S_GapLastOrderKoef;
|
|
int B_GapMinPips;
|
|
int B_GapMinPercent;
|
|
double B_GapLotKoef;
|
|
double B_GapLastOrderKoef;
|
|
|
|
|
|
int VolFromLevel;
|
|
int VolEndLevel;
|
|
enum_time_frames VolCandleTF;
|
|
int VolCandles;
|
|
bool VolNullBar;
|
|
bool VolCandles_OneWay;
|
|
int VolCandleMaxSize;
|
|
bool VolCandle_OpenClose;
|
|
int VolStopTradeTimining;
|
|
bool VolBlockBothDirection;
|
|
|
|
|
|
int Vol2FromLevel;
|
|
int Vol2EndLevel;
|
|
enum_time_frames Vol2CandleTF;
|
|
int Vol2Candles;
|
|
bool Vol2NullBar;
|
|
bool Vol2Candles_OneWay;
|
|
int Vol2CandleMaxSize;
|
|
bool Vol2Candle_OpenClose;
|
|
int Vol2StopTradeTimining;
|
|
bool Vol2BlockBothDirection;
|
|
|
|
int Vol3FromLevel;
|
|
int Vol3EndLevel;
|
|
enum_time_frames Vol3CandleTF;
|
|
int Vol3Candles;
|
|
bool Vol3NullBar;
|
|
bool Vol3Candles_OneWay;
|
|
int Vol3CandleMaxSize;
|
|
bool Vol3Candle_OpenClose;
|
|
int Vol3StopTradeTimining;
|
|
bool Vol3BlockBothDirection;
|
|
|
|
|
|
day_of_week_t TradeStartDay;
|
|
int TradeStartHour;
|
|
int TradeStartMinute;
|
|
day_of_week_t TradeEndDay;
|
|
int TradeEndHour;
|
|
int TradeEndMinute;
|
|
|
|
#define input_new_position_pause_s(number) \
|
|
datetime NewPositionPause##number##Start; \
|
|
datetime NewPositionPause##number##End;
|
|
|
|
input_new_position_pause_s(1);
|
|
input_new_position_pause_s(2);
|
|
input_new_position_pause_s(3);
|
|
input_new_position_pause_s(4);
|
|
input_new_position_pause_s(5);
|
|
input_new_position_pause_s(6);
|
|
input_new_position_pause_s(7);
|
|
input_new_position_pause_s(8);
|
|
input_new_position_pause_s(9);
|
|
input_new_position_pause_s(10);
|
|
|
|
char NewPositionPauseNewYearDayStart;
|
|
char NewPositionPauseNewYearDayEnd;
|
|
|
|
#define input_intraday_s(number) \
|
|
ushort IntraDay##number##StartHour; \
|
|
ushort IntraDay##number##StartMinute; \
|
|
ushort IntraDay##number##EndHour; \
|
|
ushort IntraDay##number##EndMinute;
|
|
|
|
input_intraday_s(1);
|
|
input_intraday_s(2);
|
|
input_intraday_s(3);
|
|
input_intraday_s(4);
|
|
input_intraday_s(5);
|
|
input_intraday_s(6);
|
|
input_intraday_s(7);
|
|
input_intraday_s(8);
|
|
input_intraday_s(9);
|
|
input_intraday_s(10);
|
|
|
|
#define input_tradepause_s(number) \
|
|
datetime TradePause##number##Start; \
|
|
datetime TradePause##number##End;
|
|
|
|
input_tradepause_s(1);
|
|
input_tradepause_s(2);
|
|
input_tradepause_s(3);
|
|
input_tradepause_s(4);
|
|
input_tradepause_s(5);
|
|
input_tradepause_s(6);
|
|
input_tradepause_s(7);
|
|
input_tradepause_s(8);
|
|
input_tradepause_s(9);
|
|
input_tradepause_s(10);
|
|
|
|
#define input_stoptrade_s(number) \
|
|
ushort IntraDayStopTrade##number##StartHour; \
|
|
ushort IntraDayStopTrade##number##StartMinute; \
|
|
ushort IntraDayStopTrade##number##EndHour; \
|
|
ushort IntraDayStopTrade##number##EndMinute;
|
|
|
|
input_stoptrade_s(1);
|
|
input_stoptrade_s(2);
|
|
input_stoptrade_s(3);
|
|
input_stoptrade_s(4);
|
|
input_stoptrade_s(5);
|
|
input_stoptrade_s(6);
|
|
input_stoptrade_s(7);
|
|
input_stoptrade_s(8);
|
|
input_stoptrade_s(9);
|
|
input_stoptrade_s(10);
|
|
|
|
|
|
int CloseAllOrders_EveryDay_Hour;
|
|
int CloseAllOrders_EveryDay_Minute;
|
|
|
|
int TakeProffitControlTiming;
|
|
int TakeProffitControlNoLossFixPips;
|
|
|
|
datetime FinalGridDate;
|
|
|
|
int GlobalParamsUpdateTiming;
|
|
int LogVerbose ;
|
|
|
|
};
|
|
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
#ifndef _LBF_UTIL
|
|
bool LBFWriteHeaderToFile(int file_handle, long count_item)
|
|
{
|
|
|
|
LBFHeader header= {{0,0,0,0,0,0,0}, LBF_VERSION, {0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0},0,0, LBF_SET_STRUCT_VERSION, sizeof(LBFSetStruct)};
|
|
StringToCharArray(LBF_WORD,header.word,0, 7);
|
|
StringToCharArray(VER,header.bot_ver,0, 10);
|
|
StringToCharArray(LBF_MOD_BASE,header.bot_mod,0, 10);
|
|
header.leverage=kernel_account::leverage();
|
|
header.count_item=count_item;
|
|
|
|
|
|
#ifdef USE_FILTERS
|
|
StringToCharArray(LBF_MOD_ADXIMP,header.bot_mod,0, 10);
|
|
#endif
|
|
|
|
#ifdef RSI_CCI
|
|
StringToCharArray(LBF_MOD_RSICCIAS,header.bot_mod,0, 10);
|
|
#endif
|
|
|
|
uint byteswritten=FileWriteStruct(file_handle,header);
|
|
|
|
if(byteswritten!=sizeof(LBFHeader))
|
|
{
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
#endif
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
string LBFDoubleToString(double val,bool is_dec_sep_comma, int size_dec=2)
|
|
{
|
|
string s=DoubleToString(val,size_dec);
|
|
if(is_dec_sep_comma)
|
|
StringReplace(s,".",",");
|
|
else
|
|
StringReplace(s,",",".");
|
|
|
|
return s;
|
|
}
|
|
|
|
#define LBFDtoS(val) LBFDoubleToString(val,is_dec_sep_comma)
|
|
#define LBFDtoSE(val,s) LBFDoubleToString(val,is_dec_sep_comma,s)
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
bool LBFWriteItemToCVSFile(int file_handle, LBFBalanceItem& item,bool is_dec_sep_comma)
|
|
{
|
|
|
|
FileWrite(file_handle,item.dt,LBFDtoS(item.balance),LBFDtoS(item.equity),LBFDtoS(item.free_margin),IntegerToString(item.count_buy)
|
|
,IntegerToString(item.count_sell),LBFDtoS(item.drawdown),LBFDtoS(item.margin),LBFDtoS(item.drawdown_buy),LBFDtoS(item.drawdown_sell),LBFDtoS(item.length_buy),LBFDtoS(item.length_sell),LBFDtoS(item.volume_buy),LBFDtoS(item.volume_sell),LBFDtoSE(item.tick_value,5));
|
|
|
|
return true;
|
|
}
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
bool LBFWriteHeaderCVSFile(int file_handle)
|
|
{
|
|
|
|
FileWrite(file_handle,"DATETIME","BALANCE", "EQUITY", "FREE MARGIN","COUNT BUY","COUNT SELL"
|
|
,"DRAWDOWN","MARGIN","DRAWDOWN BUY","DRAWDOWN SELL", "LENGTH BUY","LENGTH SELL","VOLUME BUY","VOLUME SELL","TICK_VALUE");
|
|
return true;
|
|
}
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
|
|
#ifndef _LBF_UTIL
|
|
bool LBFWriteSetToFile(int file_handle)
|
|
{
|
|
LBFSetStruct sst;
|
|
ZeroMemory(sst);
|
|
|
|
sst.TradeSell=TradeSell;
|
|
sst.TradeBuy=TradeBuy;
|
|
sst.S_OpenFirstOrder=S_OpenFirstOrder;
|
|
sst.B_OpenFirstOrder=B_OpenFirstOrder ;
|
|
sst.S_CloseAllOrders=S_CloseAllOrders ;
|
|
sst.B_CloseAllOrders=B_CloseAllOrders ;
|
|
sst.S_PauseOnClose=S_PauseOnClose ;
|
|
sst.B_PauseOnClose=B_PauseOnClose ;
|
|
sst.MagicNumber=MagicNumber ;
|
|
sst.ReflectSellSettingsToBuy=ReflectSellSettingsToBuy ;
|
|
sst.MaxSpread=MaxSpread ;
|
|
sst.MaxSpreadStopTradingTimining=MaxSpreadStopTradingTimining ;
|
|
sst.MinLeverage=MinLeverage ;
|
|
sst.MinTimeStep=MinTimeStep ;
|
|
sst.MaxTradePairs=MaxTradePairs ;
|
|
sst.CurrencyBlock=CurrencyBlock ;
|
|
sst.No1Order_ByDrawdownPercent=No1Order_ByDrawdownPercent ;
|
|
sst.No1Order_ByDrawdownPercent_Off=No1Order_ByDrawdownPercent_Off ;
|
|
sst.StopTrade_ByDrawdownPercent=StopTrade_ByDrawdownPercent ;
|
|
sst.StopTrade_ByDrawdownPercent_Off=StopTrade_ByDrawdownPercent_Off ;
|
|
sst.StopTrade_ByDrawdownMoney=StopTrade_ByDrawdownMoney ;
|
|
sst.StopTrade_ByDrawdownMoney_Off=StopTrade_ByDrawdownMoney_Off ;
|
|
sst.CloseAllOrders_ByProfitPercent=CloseAllOrders_ByProfitPercent ;
|
|
sst.CloseAllOrders_ByProfitMoney=CloseAllOrders_ByProfitMoney ;
|
|
sst.CloseAllOrders_ByDrawdownPercent=CloseAllOrders_ByDrawdownPercent ;
|
|
sst.CloseAllOrders_ByDrawdownMoney=CloseAllOrders_ByDrawdownMoney ;
|
|
sst.S_CloseOrders_ByDrawdown_For001Lot=S_CloseOrders_ByDrawdown_For001Lot ;
|
|
sst.B_CloseOrders_ByDrawdown_For001Lot=B_CloseOrders_ByDrawdown_For001Lot ;
|
|
sst.CloseAllOrders_ByDrawdown_StopTrade=CloseAllOrders_ByDrawdown_StopTrade ;
|
|
sst.S_MaxOpenOrders=S_MaxOpenOrders ;
|
|
sst.S_GridStep=S_GridStep ;
|
|
sst.S_GridLevel=S_GridLevel ;
|
|
sst.S_GridStep_AddPips=S_GridStep_AddPips ;
|
|
sst.S_GridStep_Level2=S_GridStep_Level2 ;
|
|
sst.S_GridStep_Level2_AddPips=S_GridStep_Level2_AddPips ;
|
|
sst.S_Grid3=S_Grid3 ;
|
|
sst.S_Grid3Add=S_Grid3Add ;
|
|
sst.S_GridStop=S_GridStop ;
|
|
sst.S_CalcLotType=S_CalcLotType ;
|
|
sst.S_CurrencyFor001Lot=S_CurrencyFor001Lot ;
|
|
sst.S_MinLot=S_MinLot ;
|
|
sst.S_Mult=S_Mult ;
|
|
sst.S_MultStart=S_MultStart ;
|
|
sst.S_MultLevel2=S_MultLevel2 ;
|
|
sst.S_MultCorr=S_MultCorr ;
|
|
sst.S_MultLevel3=S_MultLevel3 ;
|
|
sst.S_MultСorrLevel3=S_MultСorrLevel3 ;
|
|
sst.S_Mult3=S_Mult3 ;
|
|
sst.S_Mult3Add=S_Mult3Add ;
|
|
sst.S_MultStop=S_MultStop ;
|
|
sst.S_MaxLotCoef=S_MaxLotCoef ;
|
|
sst.S_TestMinLot=S_TestMinLot ;
|
|
sst.S_TakeProffitType=S_TakeProffitType ;
|
|
sst.S_TakeProffit=S_TakeProffit ;
|
|
sst.S_TakeProffit_Level1=S_TakeProffit_Level1 ;
|
|
sst.S_TakeProffit_Level1Corr=S_TakeProffit_Level1Corr ;
|
|
sst.S_TakeProffit_Level1_5=S_TakeProffit_Level1_5 ;
|
|
sst.S_TakeProffit_Level1_5Corr=S_TakeProffit_Level1_5Corr ;
|
|
sst.S_TakeProffit_Level2=S_TakeProffit_Level2 ;
|
|
sst.S_TakeProffit_Level2FixPips=S_TakeProffit_Level2FixPips ;
|
|
sst.B_MaxOpenOrders=B_MaxOpenOrders ;
|
|
sst.B_GridStep=B_GridStep ;
|
|
sst.B_GridLevel=B_GridLevel ;
|
|
sst.B_GridStep_AddPips=B_GridStep_AddPips ;
|
|
sst.B_GridStep_Level2=B_GridStep_Level2 ;
|
|
sst.B_GridStep_Level2_AddPips=B_GridStep_Level2_AddPips ;
|
|
sst.B_Grid3=B_Grid3 ;
|
|
sst.B_Grid3Add=B_Grid3Add ;
|
|
sst.B_GridStop=B_GridStop ;
|
|
sst.B_CalcLotType=B_CalcLotType ;
|
|
sst.B_CurrencyFor001Lot=B_CurrencyFor001Lot ;
|
|
sst.B_MinLot=B_MinLot ;
|
|
sst.B_Mult=B_Mult ;
|
|
sst.B_MultStart=B_MultStart ;
|
|
sst.B_MultLevel2=B_MultLevel2 ;
|
|
sst.B_MultCorr=B_MultCorr ;
|
|
sst.B_MultLevel3=B_MultLevel3 ;
|
|
sst.B_MultСorrLevel3=B_MultСorrLevel3 ;
|
|
sst.B_Mult3=B_Mult3 ;
|
|
sst.B_Mult3Add=B_Mult3Add ;
|
|
sst.B_MultStop=B_MultStop ;
|
|
sst.B_MaxLotCoef=B_MaxLotCoef ;
|
|
sst.B_TestMinLot=B_TestMinLot ;
|
|
sst.B_TakeProffitType=B_TakeProffitType ;
|
|
sst.B_TakeProffit=B_TakeProffit ;
|
|
sst.B_TakeProffit_Level1=B_TakeProffit_Level1 ;
|
|
sst.B_TakeProffit_Level1Corr=B_TakeProffit_Level1Corr ;
|
|
sst.B_TakeProffit_Level1_5=B_TakeProffit_Level1_5 ;
|
|
sst.B_TakeProffit_Level1_5Corr=B_TakeProffit_Level1_5Corr ;
|
|
sst.B_TakeProffit_Level2=B_TakeProffit_Level2 ;
|
|
sst.B_TakeProffit_Level2FixPips=B_TakeProffit_Level2FixPips ;
|
|
|
|
|
|
#ifdef USE_FILTERS
|
|
sst.use_ADX_for1Order=use_ADX_for1Order ;
|
|
sst.AdxTimeFrame1=AdxTimeFrame1 ;
|
|
sst.AdxPeriod1=AdxPeriod1 ;
|
|
sst.AdxLevel1=AdxLevel1 ;
|
|
sst.use_ADX_ds1=use_ADX_ds1 ;
|
|
sst.use_ADX_p3_1=use_ADX_p3_1 ;
|
|
|
|
sst.use_ADX_for_next_Order=use_ADX_for_next_Order ;
|
|
sst.AdxTimeFrame=AdxTimeFrame ;
|
|
sst.AdxPeriod=AdxPeriod ;
|
|
sst.AdxLevel=AdxLevel ;
|
|
sst.use_ADX_ds=use_ADX_ds ;
|
|
sst.use_ADX_p3=use_ADX_p3 ;
|
|
|
|
sst.use_imp_for1Order=use_imp_for1Order ;
|
|
sst.imp_indi_1order=imp_indi_1order ;
|
|
sst.ImpTimeFrame1=ImpTimeFrame1 ;
|
|
sst.ImpPeriod1=ImpPeriod1 ;
|
|
sst.LGCoeff1=LGCoeff1 ;
|
|
sst.ImpLevel1=ImpLevel1 ;
|
|
|
|
sst.use_imp_for_next_Order=use_imp_for_next_Order ;
|
|
sst.imp_indi_next_order=imp_indi_next_order ;
|
|
sst.ImpTimeFrame=ImpTimeFrame ;
|
|
sst.ImpPeriod=ImpPeriod ;
|
|
sst.LGCoeff=LGCoeff ;
|
|
sst.ImpLevel=ImpLevel ;
|
|
#endif
|
|
#ifdef RSI_CCI
|
|
sst.CandleTimeframe=CandleTimeframe ;
|
|
sst.CandleTimeframeNext=CandleTimeframeNext ;
|
|
sst.RsiTimeframe=RsiTimeframe ;
|
|
sst.RsiPeriod=RsiPeriod ;
|
|
sst.RsiLevel=RsiLevel ;
|
|
sst.RsiTimeframeNext=RsiTimeframeNext ;
|
|
sst.RsiPeriodNext=RsiPeriodNext ;
|
|
sst.RsiLevelNext=RsiLevelNext ;
|
|
sst.CciTimeframe=CciTimeframe ;
|
|
sst.CciPeriod=CciPeriod ;
|
|
sst.CciLevel=CciLevel ;
|
|
sst.CciTimeframeNext=CciTimeframeNext ;
|
|
sst.CciPeriodNext=CciPeriodNext ;
|
|
sst.CciLevelNext=CciLevelNext ;
|
|
sst.use_for1Order=use_for1Order ;
|
|
sst.use_for_next_Order=use_for_next_Order ;
|
|
#endif //USE_RSI_CCI
|
|
|
|
sst.OpenFirstOrderTF=OpenFirstOrderTF ;
|
|
sst.CandlesToOpen1Order=CandlesToOpen1Order ;
|
|
sst.CandlesToOpen1Order_OpenClose=CandlesToOpen1Order_OpenClose ;
|
|
sst.CandlesToOpen1Order_MinPips=CandlesToOpen1Order_MinPips ;
|
|
sst.CandlesToOpen1Order_MaxPips=CandlesToOpen1Order_MaxPips ;
|
|
sst.ReversSignalToOpen1Order=ReversSignalToOpen1Order ;
|
|
sst.CandlesToOpen1Order_OneWay=CandlesToOpen1Order_OneWay ;
|
|
|
|
sst.GapControl=GapControl ;
|
|
sst.GapMaxStopOrders=GapMaxStopOrders ;
|
|
sst.GapMinDistanceFromMarket=GapMinDistanceFromMarket ;
|
|
sst.S_GapMinPips=S_GapMinPips ;
|
|
sst.S_GapMinPercent=S_GapMinPercent ;
|
|
sst.S_GapLotKoef=S_GapLotKoef ;
|
|
sst.S_GapLastOrderKoef=S_GapLastOrderKoef ;
|
|
sst.B_GapMinPips=B_GapMinPips ;
|
|
sst.B_GapMinPercent=B_GapMinPercent ;
|
|
sst.B_GapLotKoef=B_GapLotKoef ;
|
|
sst.B_GapLastOrderKoef=B_GapLastOrderKoef ;
|
|
|
|
sst.VolFromLevel=VolFromLevel ;
|
|
sst.VolCandleTF=VolCandleTF ;
|
|
sst.VolCandleMaxSize=VolCandleMaxSize ;
|
|
sst.VolStopTradeTimining=VolStopTradeTimining ;
|
|
sst.VolBlockBothDirection=VolBlockBothDirection ;
|
|
|
|
sst.VolEndLevel=VolEndLevel ;
|
|
sst.VolCandles=VolCandles ;
|
|
sst.VolNullBar=VolNullBar ;
|
|
sst.VolCandles_OneWay=VolCandles_OneWay ;
|
|
sst.VolCandle_OpenClose=VolCandle_OpenClose ;
|
|
|
|
|
|
sst.Vol2FromLevel=Vol2FromLevel ;
|
|
sst.Vol2EndLevel=Vol2EndLevel ;
|
|
sst.Vol2CandleTF=Vol2CandleTF ;
|
|
sst.Vol2Candles=Vol2Candles ;
|
|
sst.Vol2NullBar=Vol2NullBar ;
|
|
sst.Vol2Candles_OneWay=Vol2Candles_OneWay ;
|
|
sst.Vol2CandleMaxSize=Vol2CandleMaxSize ;
|
|
sst.Vol2Candle_OpenClose=Vol2Candle_OpenClose ;
|
|
sst.Vol2StopTradeTimining=Vol2StopTradeTimining ;
|
|
sst.Vol2BlockBothDirection=Vol2BlockBothDirection ;
|
|
|
|
sst.Vol3FromLevel=Vol3FromLevel ;
|
|
sst.Vol3EndLevel=Vol3EndLevel ;
|
|
sst.Vol3CandleTF=Vol3CandleTF ;
|
|
sst.Vol3Candles=Vol3Candles ;
|
|
sst.Vol3NullBar=Vol3NullBar ;
|
|
sst.Vol3Candles_OneWay=Vol3Candles_OneWay ;
|
|
sst.Vol3CandleMaxSize=Vol3CandleMaxSize ;
|
|
sst.Vol3Candle_OpenClose=Vol3Candle_OpenClose ;
|
|
sst.Vol3StopTradeTimining=Vol3StopTradeTimining ;
|
|
sst.Vol3BlockBothDirection=Vol3BlockBothDirection ;
|
|
|
|
sst.TradeStartDay=TradeStartDay ;
|
|
sst.TradeStartHour=TradeStartHour ;
|
|
sst.TradeStartMinute=TradeStartMinute ;
|
|
sst.TradeEndDay=TradeEndDay ;
|
|
sst.TradeEndHour=TradeEndHour ;
|
|
sst.TradeEndMinute=TradeEndMinute ;
|
|
|
|
#define input_new_position_pause_sd(number) \
|
|
sst.NewPositionPause##number##Start=NewPositionPause##number##Start; \
|
|
sst.NewPositionPause##number##End=NewPositionPause##number##End ;
|
|
|
|
input_new_position_pause_sd(1);
|
|
input_new_position_pause_sd(2);
|
|
input_new_position_pause_sd(3);
|
|
input_new_position_pause_sd(4);
|
|
input_new_position_pause_sd(5);
|
|
input_new_position_pause_sd(6);
|
|
input_new_position_pause_sd(7);
|
|
input_new_position_pause_sd(8);
|
|
input_new_position_pause_sd(9);
|
|
input_new_position_pause_sd(10);
|
|
|
|
sst.NewPositionPauseNewYearDayStart=NewPositionPauseNewYearDayStart ;
|
|
sst.NewPositionPauseNewYearDayEnd=NewPositionPauseNewYearDayEnd ;
|
|
|
|
#define input_intraday_sd(number) \
|
|
sst.IntraDay##number##StartHour=IntraDay##number##StartHour ; \
|
|
sst.IntraDay##number##StartMinute=IntraDay##number##StartMinute ; \
|
|
sst.IntraDay##number##EndHour=IntraDay##number##EndHour ; \
|
|
sst.IntraDay##number##EndMinute=IntraDay##number##EndMinute ;
|
|
|
|
input_intraday_sd(1);
|
|
input_intraday_sd(2);
|
|
input_intraday_sd(3);
|
|
input_intraday_sd(4);
|
|
input_intraday_sd(5);
|
|
input_intraday_sd(6);
|
|
input_intraday_sd(7);
|
|
input_intraday_sd(8);
|
|
input_intraday_sd(9);
|
|
input_intraday_sd(10);
|
|
|
|
#define input_tradepause_sd(number) \
|
|
sst.TradePause##number##Start=TradePause##number##Start ; \
|
|
sst.TradePause##number##End=TradePause##number##End ;
|
|
|
|
input_tradepause_sd(1);
|
|
input_tradepause_sd(2);
|
|
input_tradepause_sd(3);
|
|
input_tradepause_sd(4);
|
|
input_tradepause_sd(5);
|
|
input_tradepause_sd(6);
|
|
input_tradepause_sd(7);
|
|
input_tradepause_sd(8);
|
|
input_tradepause_sd(9);
|
|
input_tradepause_sd(10);
|
|
|
|
#define input_stoptrade_sd(number) \
|
|
sst.IntraDayStopTrade##number##StartHour=IntraDayStopTrade##number##StartHour ; \
|
|
sst.IntraDayStopTrade##number##StartMinute=IntraDayStopTrade##number##StartMinute ; \
|
|
sst.IntraDayStopTrade##number##EndHour=IntraDayStopTrade##number##EndHour ; \
|
|
sst.IntraDayStopTrade##number##EndMinute=IntraDayStopTrade##number##EndMinute ;
|
|
|
|
input_stoptrade_sd(1);
|
|
input_stoptrade_sd(2);
|
|
input_stoptrade_sd(3);
|
|
input_stoptrade_sd(4);
|
|
input_stoptrade_sd(5);
|
|
input_stoptrade_sd(6);
|
|
input_stoptrade_sd(7);
|
|
input_stoptrade_sd(8);
|
|
input_stoptrade_sd(9);
|
|
input_stoptrade_sd(10);
|
|
|
|
|
|
sst.CloseAllOrders_EveryDay_Hour=CloseAllOrders_EveryDay_Hour ;
|
|
sst.CloseAllOrders_EveryDay_Minute=CloseAllOrders_EveryDay_Minute ;
|
|
|
|
sst.TakeProffitControlTiming=TakeProffitControlTiming ;
|
|
sst.TakeProffitControlNoLossFixPips=TakeProffitControlNoLossFixPips ;
|
|
|
|
sst.FinalGridDate=FinalGridDate ;
|
|
|
|
sst.GlobalParamsUpdateTiming=GlobalParamsUpdateTiming ;
|
|
sst.LogVerbose=LogVerbose;
|
|
|
|
uint byteswritten=0;
|
|
byteswritten=FileWriteStruct(file_handle,sst);
|
|
if(byteswritten!=sizeof(LBFSetStruct))
|
|
{
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
#define LBFWRITESETPARAMTOFILE(param) FileWrite(file_handle,#param,"=",sst.param);
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
bool LBFWriteSetToCSVFile(int file_handle,LBFHeader& header,LBFSetStruct& sst)
|
|
{
|
|
LBFWRITESETPARAMTOFILE(TradeSell)
|
|
LBFWRITESETPARAMTOFILE(TradeBuy)
|
|
|
|
LBFWRITESETPARAMTOFILE(S_OpenFirstOrder);
|
|
LBFWRITESETPARAMTOFILE(B_OpenFirstOrder);
|
|
LBFWRITESETPARAMTOFILE(S_CloseAllOrders);
|
|
LBFWRITESETPARAMTOFILE(B_CloseAllOrders);
|
|
LBFWRITESETPARAMTOFILE(S_PauseOnClose);
|
|
LBFWRITESETPARAMTOFILE(B_PauseOnClose);
|
|
LBFWRITESETPARAMTOFILE(MagicNumber);
|
|
LBFWRITESETPARAMTOFILE(ReflectSellSettingsToBuy);
|
|
LBFWRITESETPARAMTOFILE(MaxSpread);
|
|
LBFWRITESETPARAMTOFILE(MaxSpreadStopTradingTimining);
|
|
LBFWRITESETPARAMTOFILE(MinLeverage);
|
|
LBFWRITESETPARAMTOFILE(MinTimeStep);
|
|
LBFWRITESETPARAMTOFILE(MaxTradePairs);
|
|
LBFWRITESETPARAMTOFILE(CurrencyBlock);
|
|
LBFWRITESETPARAMTOFILE(No1Order_ByDrawdownPercent);
|
|
LBFWRITESETPARAMTOFILE(No1Order_ByDrawdownPercent_Off);
|
|
LBFWRITESETPARAMTOFILE(StopTrade_ByDrawdownPercent);
|
|
LBFWRITESETPARAMTOFILE(StopTrade_ByDrawdownPercent_Off);
|
|
LBFWRITESETPARAMTOFILE(StopTrade_ByDrawdownMoney);
|
|
LBFWRITESETPARAMTOFILE(StopTrade_ByDrawdownMoney_Off);
|
|
LBFWRITESETPARAMTOFILE(CloseAllOrders_ByProfitPercent);
|
|
LBFWRITESETPARAMTOFILE(CloseAllOrders_ByProfitMoney);
|
|
LBFWRITESETPARAMTOFILE(CloseAllOrders_ByDrawdownPercent);
|
|
LBFWRITESETPARAMTOFILE(CloseAllOrders_ByDrawdownMoney);
|
|
LBFWRITESETPARAMTOFILE(S_CloseOrders_ByDrawdown_For001Lot);
|
|
LBFWRITESETPARAMTOFILE(B_CloseOrders_ByDrawdown_For001Lot);
|
|
LBFWRITESETPARAMTOFILE(CloseAllOrders_ByDrawdown_StopTrade);
|
|
LBFWRITESETPARAMTOFILE(S_MaxOpenOrders);
|
|
LBFWRITESETPARAMTOFILE(S_GridStep);
|
|
LBFWRITESETPARAMTOFILE(S_GridLevel);
|
|
LBFWRITESETPARAMTOFILE(S_GridStep_AddPips);
|
|
LBFWRITESETPARAMTOFILE(S_GridStep_Level2);
|
|
LBFWRITESETPARAMTOFILE(S_GridStep_Level2_AddPips);
|
|
LBFWRITESETPARAMTOFILE(S_Grid3);
|
|
LBFWRITESETPARAMTOFILE(S_Grid3Add);
|
|
LBFWRITESETPARAMTOFILE(S_GridStop);
|
|
LBFWRITESETPARAMTOFILE(S_CalcLotType) ;
|
|
LBFWRITESETPARAMTOFILE(S_CurrencyFor001Lot);
|
|
LBFWRITESETPARAMTOFILE(S_MinLot);
|
|
LBFWRITESETPARAMTOFILE(S_Mult);
|
|
LBFWRITESETPARAMTOFILE(S_MultStart);
|
|
LBFWRITESETPARAMTOFILE(S_MultLevel2);
|
|
LBFWRITESETPARAMTOFILE(S_MultCorr);
|
|
LBFWRITESETPARAMTOFILE(S_MultLevel3);
|
|
LBFWRITESETPARAMTOFILE(S_MultСorrLevel3);
|
|
LBFWRITESETPARAMTOFILE(S_Mult3);
|
|
LBFWRITESETPARAMTOFILE(S_Mult3Add);
|
|
LBFWRITESETPARAMTOFILE(S_MultStop);
|
|
LBFWRITESETPARAMTOFILE(S_MaxLotCoef);
|
|
LBFWRITESETPARAMTOFILE(S_TestMinLot);
|
|
LBFWRITESETPARAMTOFILE(S_TakeProffitType);
|
|
LBFWRITESETPARAMTOFILE(S_TakeProffit);
|
|
LBFWRITESETPARAMTOFILE(S_TakeProffit_Level1);
|
|
LBFWRITESETPARAMTOFILE(S_TakeProffit_Level1Corr);
|
|
LBFWRITESETPARAMTOFILE(S_TakeProffit_Level1_5);
|
|
LBFWRITESETPARAMTOFILE(S_TakeProffit_Level1_5Corr);
|
|
LBFWRITESETPARAMTOFILE(S_TakeProffit_Level2);
|
|
LBFWRITESETPARAMTOFILE(S_TakeProffit_Level2FixPips);
|
|
LBFWRITESETPARAMTOFILE(B_MaxOpenOrders);
|
|
LBFWRITESETPARAMTOFILE(B_GridStep);
|
|
LBFWRITESETPARAMTOFILE(B_GridLevel);
|
|
LBFWRITESETPARAMTOFILE(B_GridStep_AddPips);
|
|
LBFWRITESETPARAMTOFILE(B_GridStep_Level2);
|
|
LBFWRITESETPARAMTOFILE(B_GridStep_Level2_AddPips);
|
|
LBFWRITESETPARAMTOFILE(B_Grid3);
|
|
LBFWRITESETPARAMTOFILE(B_Grid3Add);
|
|
LBFWRITESETPARAMTOFILE(B_GridStop);
|
|
LBFWRITESETPARAMTOFILE(B_CalcLotType);
|
|
LBFWRITESETPARAMTOFILE(B_CurrencyFor001Lot);
|
|
LBFWRITESETPARAMTOFILE(B_MinLot);
|
|
LBFWRITESETPARAMTOFILE(B_Mult);
|
|
LBFWRITESETPARAMTOFILE(B_MultStart);
|
|
LBFWRITESETPARAMTOFILE(B_MultLevel2);
|
|
LBFWRITESETPARAMTOFILE(B_MultCorr);
|
|
LBFWRITESETPARAMTOFILE(B_MultLevel3);
|
|
LBFWRITESETPARAMTOFILE(B_MultСorrLevel3);
|
|
LBFWRITESETPARAMTOFILE(B_Mult3);
|
|
LBFWRITESETPARAMTOFILE(B_Mult3Add);
|
|
LBFWRITESETPARAMTOFILE(B_MultStop);
|
|
LBFWRITESETPARAMTOFILE(B_MaxLotCoef);
|
|
LBFWRITESETPARAMTOFILE(B_TestMinLot);
|
|
LBFWRITESETPARAMTOFILE(B_TakeProffitType);
|
|
LBFWRITESETPARAMTOFILE(B_TakeProffit);
|
|
LBFWRITESETPARAMTOFILE(B_TakeProffit_Level1);
|
|
LBFWRITESETPARAMTOFILE(B_TakeProffit_Level1Corr);
|
|
LBFWRITESETPARAMTOFILE(B_TakeProffit_Level1_5);
|
|
LBFWRITESETPARAMTOFILE(B_TakeProffit_Level1_5Corr);
|
|
LBFWRITESETPARAMTOFILE(B_TakeProffit_Level2);
|
|
LBFWRITESETPARAMTOFILE(B_TakeProffit_Level2FixPips);
|
|
|
|
if(!StringCompare(CharArrayToString(header.bot_mod),LBF_MOD_ADXIMP))
|
|
{
|
|
LBFWRITESETPARAMTOFILE(use_ADX_for1Order) ;
|
|
LBFWRITESETPARAMTOFILE(AdxTimeFrame1) ;
|
|
LBFWRITESETPARAMTOFILE(AdxPeriod1);
|
|
LBFWRITESETPARAMTOFILE(AdxLevel1);
|
|
LBFWRITESETPARAMTOFILE(use_ADX_ds1);
|
|
LBFWRITESETPARAMTOFILE(use_ADX_p3_1);
|
|
|
|
LBFWRITESETPARAMTOFILE(use_ADX_for_next_Order);
|
|
LBFWRITESETPARAMTOFILE(AdxTimeFrame);
|
|
LBFWRITESETPARAMTOFILE(AdxPeriod) ;
|
|
LBFWRITESETPARAMTOFILE(AdxLevel);
|
|
LBFWRITESETPARAMTOFILE(use_ADX_ds) ;
|
|
LBFWRITESETPARAMTOFILE(use_ADX_p3) ;
|
|
|
|
LBFWRITESETPARAMTOFILE(use_imp_for1Order);
|
|
LBFWRITESETPARAMTOFILE(imp_indi_1order) ;
|
|
LBFWRITESETPARAMTOFILE(ImpTimeFrame1);
|
|
LBFWRITESETPARAMTOFILE(ImpPeriod1) ;
|
|
LBFWRITESETPARAMTOFILE(LGCoeff1) ;
|
|
LBFWRITESETPARAMTOFILE(ImpLevel1) ;
|
|
|
|
LBFWRITESETPARAMTOFILE(use_imp_for_next_Order) ;
|
|
LBFWRITESETPARAMTOFILE(imp_indi_next_order) ;
|
|
LBFWRITESETPARAMTOFILE(ImpTimeFrame);
|
|
LBFWRITESETPARAMTOFILE(ImpPeriod);
|
|
LBFWRITESETPARAMTOFILE(LGCoeff) ;
|
|
LBFWRITESETPARAMTOFILE(ImpLevel) ;
|
|
}
|
|
|
|
if(!StringCompare(CharArrayToString(header.bot_mod),LBF_MOD_RSICCIAS))
|
|
{
|
|
LBFWRITESETPARAMTOFILE(CandleTimeframe);
|
|
LBFWRITESETPARAMTOFILE(CandleTimeframeNext);
|
|
LBFWRITESETPARAMTOFILE(RsiTimeframe);
|
|
LBFWRITESETPARAMTOFILE(RsiPeriod);
|
|
LBFWRITESETPARAMTOFILE(RsiLevel);
|
|
LBFWRITESETPARAMTOFILE(RsiTimeframeNext);
|
|
LBFWRITESETPARAMTOFILE(RsiPeriodNext);
|
|
LBFWRITESETPARAMTOFILE(RsiLevelNext);
|
|
LBFWRITESETPARAMTOFILE(CciTimeframe);
|
|
LBFWRITESETPARAMTOFILE(CciPeriod);
|
|
LBFWRITESETPARAMTOFILE(CciLevel);
|
|
LBFWRITESETPARAMTOFILE(CciTimeframeNext);
|
|
LBFWRITESETPARAMTOFILE(CciPeriodNext);
|
|
LBFWRITESETPARAMTOFILE(CciLevelNext);
|
|
LBFWRITESETPARAMTOFILE(use_for1Order);
|
|
LBFWRITESETPARAMTOFILE(use_for_next_Order);
|
|
}
|
|
|
|
LBFWRITESETPARAMTOFILE(OpenFirstOrderTF);
|
|
LBFWRITESETPARAMTOFILE(CandlesToOpen1Order);
|
|
LBFWRITESETPARAMTOFILE(CandlesToOpen1Order_OpenClose);
|
|
LBFWRITESETPARAMTOFILE(CandlesToOpen1Order_MinPips);
|
|
LBFWRITESETPARAMTOFILE(CandlesToOpen1Order_MaxPips);
|
|
LBFWRITESETPARAMTOFILE(ReversSignalToOpen1Order);
|
|
LBFWRITESETPARAMTOFILE(CandlesToOpen1Order_OneWay) ;
|
|
|
|
LBFWRITESETPARAMTOFILE(GapControl) ;
|
|
LBFWRITESETPARAMTOFILE(GapMaxStopOrders);
|
|
LBFWRITESETPARAMTOFILE(GapMinDistanceFromMarket);
|
|
LBFWRITESETPARAMTOFILE(S_GapMinPips);
|
|
LBFWRITESETPARAMTOFILE(S_GapMinPercent);
|
|
LBFWRITESETPARAMTOFILE(S_GapLotKoef);
|
|
LBFWRITESETPARAMTOFILE(S_GapLastOrderKoef);
|
|
LBFWRITESETPARAMTOFILE(B_GapMinPips) ;
|
|
LBFWRITESETPARAMTOFILE(B_GapMinPercent);
|
|
LBFWRITESETPARAMTOFILE(B_GapLotKoef) ;
|
|
LBFWRITESETPARAMTOFILE(B_GapLastOrderKoef);
|
|
|
|
LBFWRITESETPARAMTOFILE(VolFromLevel);
|
|
LBFWRITESETPARAMTOFILE(VolCandleTF) ;
|
|
LBFWRITESETPARAMTOFILE(VolCandleMaxSize) ;
|
|
LBFWRITESETPARAMTOFILE(VolStopTradeTimining) ;
|
|
LBFWRITESETPARAMTOFILE(VolBlockBothDirection) ;
|
|
|
|
if(StringToInteger(CharArrayToString(header.bot_ver,0,1))!=1)
|
|
{
|
|
LBFWRITESETPARAMTOFILE(VolEndLevel);
|
|
LBFWRITESETPARAMTOFILE(VolCandles);
|
|
LBFWRITESETPARAMTOFILE(VolNullBar) ;
|
|
LBFWRITESETPARAMTOFILE(VolCandles_OneWay) ;
|
|
LBFWRITESETPARAMTOFILE(VolCandle_OpenClose);
|
|
|
|
|
|
LBFWRITESETPARAMTOFILE(Vol2FromLevel) ;
|
|
LBFWRITESETPARAMTOFILE(Vol2EndLevel) ;
|
|
LBFWRITESETPARAMTOFILE(Vol2CandleTF) ;
|
|
LBFWRITESETPARAMTOFILE(Vol2Candles) ;
|
|
LBFWRITESETPARAMTOFILE(Vol2NullBar) ;
|
|
LBFWRITESETPARAMTOFILE(Vol2Candles_OneWay) ;
|
|
LBFWRITESETPARAMTOFILE(Vol2CandleMaxSize) ;
|
|
LBFWRITESETPARAMTOFILE(Vol2Candle_OpenClose);
|
|
LBFWRITESETPARAMTOFILE(Vol2StopTradeTimining) ;
|
|
LBFWRITESETPARAMTOFILE(Vol2BlockBothDirection) ;
|
|
|
|
LBFWRITESETPARAMTOFILE(Vol3FromLevel) ;
|
|
LBFWRITESETPARAMTOFILE(Vol3EndLevel) ;
|
|
LBFWRITESETPARAMTOFILE(Vol3CandleTF);
|
|
LBFWRITESETPARAMTOFILE(Vol3Candles);
|
|
LBFWRITESETPARAMTOFILE(Vol3NullBar) ;
|
|
LBFWRITESETPARAMTOFILE(Vol3Candles_OneWay) ;
|
|
LBFWRITESETPARAMTOFILE(Vol3CandleMaxSize) ;
|
|
LBFWRITESETPARAMTOFILE(Vol3Candle_OpenClose) ;
|
|
LBFWRITESETPARAMTOFILE(Vol3StopTradeTimining) ;
|
|
LBFWRITESETPARAMTOFILE(Vol3BlockBothDirection);
|
|
}
|
|
|
|
LBFWRITESETPARAMTOFILE(TradeStartDay) ;
|
|
LBFWRITESETPARAMTOFILE(TradeStartHour);
|
|
LBFWRITESETPARAMTOFILE(TradeStartMinute) ;
|
|
LBFWRITESETPARAMTOFILE(TradeEndDay) ;
|
|
LBFWRITESETPARAMTOFILE(TradeEndHour) ;
|
|
LBFWRITESETPARAMTOFILE(TradeEndMinute) ;
|
|
|
|
#define input_new_position_pause_sdd(number) \
|
|
LBFWRITESETPARAMTOFILE(NewPositionPause##number##Start); \
|
|
LBFWRITESETPARAMTOFILE(NewPositionPause##number##End) ;
|
|
|
|
input_new_position_pause_sdd(1);
|
|
input_new_position_pause_sdd(2);
|
|
input_new_position_pause_sdd(3);
|
|
input_new_position_pause_sdd(4);
|
|
input_new_position_pause_sdd(5);
|
|
input_new_position_pause_sdd(6);
|
|
input_new_position_pause_sdd(7);
|
|
input_new_position_pause_sdd(8);
|
|
input_new_position_pause_sdd(9);
|
|
input_new_position_pause_sdd(10);
|
|
|
|
LBFWRITESETPARAMTOFILE(NewPositionPauseNewYearDayStart) ;
|
|
LBFWRITESETPARAMTOFILE(NewPositionPauseNewYearDayEnd) ;
|
|
|
|
#define input_intraday_sdd(number) \
|
|
LBFWRITESETPARAMTOFILE(IntraDay##number##StartHour) ; \
|
|
LBFWRITESETPARAMTOFILE(IntraDay##number##StartMinute) ; \
|
|
LBFWRITESETPARAMTOFILE(IntraDay##number##EndHour) ; \
|
|
LBFWRITESETPARAMTOFILE(IntraDay##number##EndMinute) ;
|
|
|
|
input_intraday_sdd(1);
|
|
input_intraday_sdd(2);
|
|
input_intraday_sdd(3);
|
|
input_intraday_sdd(4);
|
|
input_intraday_sdd(5);
|
|
input_intraday_sdd(6);
|
|
input_intraday_sdd(7);
|
|
input_intraday_sdd(8);
|
|
input_intraday_sdd(9);
|
|
input_intraday_sdd(10);
|
|
|
|
#define input_tradepause_sdd(number) \
|
|
LBFWRITESETPARAMTOFILE(TradePause##number##Start) ; \
|
|
LBFWRITESETPARAMTOFILE(TradePause##number##End) ;
|
|
|
|
input_tradepause_sdd(1);
|
|
input_tradepause_sdd(2);
|
|
input_tradepause_sdd(3);
|
|
input_tradepause_sdd(4);
|
|
input_tradepause_sdd(5);
|
|
input_tradepause_sdd(6);
|
|
input_tradepause_sdd(7);
|
|
input_tradepause_sdd(8);
|
|
input_tradepause_sdd(9);
|
|
input_tradepause_sdd(10);
|
|
|
|
#define input_stoptrade_sdd(number) \
|
|
LBFWRITESETPARAMTOFILE(IntraDayStopTrade##number##StartHour) ; \
|
|
LBFWRITESETPARAMTOFILE(IntraDayStopTrade##number##StartMinute) ; \
|
|
LBFWRITESETPARAMTOFILE(IntraDayStopTrade##number##EndHour) ; \
|
|
LBFWRITESETPARAMTOFILE(IntraDayStopTrade##number##EndMinute) ;
|
|
|
|
input_stoptrade_sdd(1);
|
|
input_stoptrade_sdd(2);
|
|
input_stoptrade_sdd(3);
|
|
input_stoptrade_sdd(4);
|
|
input_stoptrade_sdd(5);
|
|
input_stoptrade_sdd(6);
|
|
input_stoptrade_sdd(7);
|
|
input_stoptrade_sdd(8);
|
|
input_stoptrade_sdd(9);
|
|
input_stoptrade_sdd(10);
|
|
|
|
|
|
LBFWRITESETPARAMTOFILE(CloseAllOrders_EveryDay_Hour);
|
|
LBFWRITESETPARAMTOFILE(CloseAllOrders_EveryDay_Minute);
|
|
|
|
LBFWRITESETPARAMTOFILE(TakeProffitControlTiming);
|
|
LBFWRITESETPARAMTOFILE(TakeProffitControlNoLossFixPips);
|
|
|
|
LBFWRITESETPARAMTOFILE(FinalGridDate);
|
|
|
|
LBFWRITESETPARAMTOFILE(GlobalParamsUpdateTiming);
|
|
LBFWRITESETPARAMTOFILE(LogVerbose);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
//+------------------------------------------------------------------+
|
|
|
|
//+------------------------------------------------------------------+
|