EA-Setka-2/Libs/CtrlPanel/ParamGenerator.mqh
super.admin a4b861dd93 convert
2025-05-30 14:50:44 +02:00

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
//+------------------------------------------------------------------+