99 lines
6.9 KiB
MQL5
99 lines
6.9 KiB
MQL5
#ifndef CTRL_PANEL_PARAM_GENERATOR_MQH
|
|
#define CTRL_PANEL_PARAM_GENERATOR_MQH
|
|
|
|
|
|
string GenerateHeader(datetime time=0, long time_msc=0)
|
|
{
|
|
string str = StringFormat(CTRL_PANEL_SETKA_VERSION_MSG, VER, IntegerToString(__MQLBUILD__), TimeToString(__DATETIME__, TIME_DATE),MagicNumber);
|
|
|
|
if (time!=0)
|
|
str+=","+StringFormat(CTRL_PANEL_SETKA_TIME_CURRENT,TimeToString(time,TIME_DATE|TIME_MINUTES|TIME_SECONDS) + ((time_msc==0)?"":("." + ::IntegerToString(time_msc % 1000, 3, '0'))));
|
|
return str;
|
|
}
|
|
|
|
string GenerateSetInfo()
|
|
{
|
|
string str = StringFormat(CTRL_PANEL_CAPTION_SET_INFO,set_pair,set_name);
|
|
return str;
|
|
}
|
|
|
|
string GenerateSetInfo2()
|
|
{
|
|
string str = StringFormat(CTRL_PANEL_CAPTION_SET_INFO2,set_author, set_version,MagicNumber );
|
|
return str;
|
|
}
|
|
|
|
string GenerateAccountInfo()
|
|
{
|
|
string str = StringFormat(CTRL_PANEL_CAPTION_ACCOUNT_INFO,kernel_account::number() ,kernel_account::currency(), kernel_account::leverage());
|
|
return str;
|
|
}
|
|
|
|
string GenerateStopInfo()
|
|
{
|
|
string str, str1="";
|
|
|
|
if (CloseAllOrders_ByDrawdownMoney!=0)
|
|
str1=DoubleToString(CloseAllOrders_ByDrawdownMoney,2)+" "+kernel_account::currency();
|
|
|
|
if (CloseAllOrders_ByDrawdownPercent!=0)
|
|
str1+=((StringLen(str1)==0)?"":" (")+DoubleToString(CloseAllOrders_ByDrawdownPercent,2)+" %"+ ((StringLen(str1)==0)?"":")");
|
|
|
|
if (StringLen(str1)==0)
|
|
str1="X";
|
|
|
|
str = StringFormat(CTRL_PANEL_CAPTION_STOP_INFO,str1, short_hd._settings.close_all_orders_by_drawdown_stop_trade?"V":"X");
|
|
return str;
|
|
}
|
|
|
|
string GenerateNoFirtsOrderByDrawdownInfo()
|
|
{
|
|
|
|
string str = StringFormat(CTRL_PANEL_CAPTION_NO_FIRST_ORDER_BY_DRAWDOWN_INFO, (short_hd._settings.no1Order_by_drawdown_percent==0)?"X":(IntegerToString(short_hd._settings.no1Order_by_drawdown_percent)+"%") , (short_hd._settings.no1Order_by_drawdown_percent_off==0)?"X":(IntegerToString(short_hd._settings.no1Order_by_drawdown_percent_off)+"%"));
|
|
return str;
|
|
}
|
|
|
|
string GenerateMultyInfo()
|
|
{
|
|
string str = StringFormat(CTRL_PANEL_CAPTION_MULTY_INFO, (short_hd._settings.max_trade_pairs==0)?"X":IntegerToString(short_hd._settings.max_trade_pairs) , (short_hd._settings.currency_block==0)?"X":IntegerToString(short_hd._settings.currency_block));
|
|
return str;
|
|
}
|
|
|
|
string GenerateGridWorkInfo(logic_handler* hdl)
|
|
{
|
|
string str = StringFormat(CTRL_PANEL_CAPTION_GRID_WORK_INFO, (hdl._settings.open_first_order)?"V":"X" , (hdl._settings.open_positions)?"V":"X");
|
|
return str;
|
|
}
|
|
|
|
string GenerateGridParamInfo(logic_handler* hdl)
|
|
{
|
|
|
|
double lenMax=0,lotMax=0,lotFirst=0;
|
|
lotFirst=calc_lot::get(hdl._settings, hdl._order_settings, 1,no_gap,0,false);
|
|
lotMax=lotFirst;
|
|
|
|
for(int i=2; i<=hdl._settings.max_open_orders; i++)
|
|
{
|
|
lenMax+=calc_grid_step::get(hdl._settings,i);
|
|
double l=NormalizeDouble(calc_lot::get(hdl._settings, hdl._order_settings, i,no_gap,0,false),hdl._settings.lot_exp);
|
|
lotMax+=l;
|
|
}
|
|
|
|
string str = StringFormat(CTRL_PANEL_CAPTION_GRID_PARAM_INFO, hdl._settings.max_open_orders, DoubleToString(lenMax,0), DoubleToString(lotFirst,2)+"-"+ DoubleToString(lotMax,2) );
|
|
return str;
|
|
}
|
|
|
|
string GenerateBlockTradeInfo()
|
|
{
|
|
|
|
string str = "";
|
|
if (FinalGridDate<TimeCurrent())
|
|
str= CTRL_PANEL_ERROR_BLOCK_TRADING+" FinalGridDate < "+TimeToString(TimeCurrent(), TIME_DATE);
|
|
|
|
return str;
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
//+------------------------------------------------------------------+
|