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

81 lines
6.6 KiB
MQL5

//+------------------------------------------------------------------+
//| CtrlPanelComment.mqh |
//| Copyright 2021, MetaQuotes Ltd. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#ifndef CTRL_PANEL_FILTER_STATE_MQH
#define CTRL_PANEL_FILTER_STATE_MQH
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
class CCtrlPanelFilterState: public CCtrlPanelComment
{
public:
CCtrlPanelFilterState() {};
virtual void CreatePanelItems();
virtual void OnTickCalculateEvent();
};
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CCtrlPanelFilterState::CreatePanelItems()
{
_panel.SetText(0,GenerateHeader(TimeCurrent()), _color_caption);
_panel.SetText(1,"", _color_text);
_panel.SetText(2,"", _color_text);
_panel.SetText(3,"", _color_text);
_panel.SetText(4,long_hd._filter_state_info, _color_text);
_panel.SetText(5,short_hd._filter_state_info, _color_text);
_panel.SetText(6,"", _color_text);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CCtrlPanelFilterState::OnTickCalculateEvent()
{
static MqlTick Tick;
string str="";
SymbolInfoTick(CURRENT_SYMBOL,Tick);
_panel.SetText(0,GenerateHeader(Tick.time,Tick.time_msc), _color_caption);
#ifdef USE_FILTERS
str = StringFormat("ADX BUY1=%s, ADX_SELL1=%s,ADX_BUY=%s,ADX_SELL=%s",B2S(adx_buy1),B2S(adx_sell1),B2S(adx_buy),B2S(adx_sell));
_panel.SetText(1,str, _color_text);
str = StringFormat("OSC_BUY1=%s, OSC_SELL1=%s,OSC_BUY=%s,OSC_SELL=%s",B2S(cci_buy1),B2S(cci_sell1),B2S(cci_buy),B2S(cci_sell));
_panel.SetText(2,str, _color_text);
#endif
#ifdef RSI_CCI
// TODO: Значение фильтров не заполняются в Класе calc_rc, поэтому ниже выводятся значения переменных по умолчанию, этот кусок вставлен для примера.
// Если необходимо отображать состояние фильтров мода RCI-CCI необходимо реализовать все в модуле calc_rc
str = StringFormat("RSI-Buy1=%s, RSI-Sell1=%s, RSI-Buy=%s, RSI-Sell=%s",B2S(adx_buy1),B2S(adx_sell1),B2S(adx_buy),B2S(adx_sell));
_panel.SetText(1,str, _color_text);
str = StringFormat("CCI-Buy1=%s, CCI-Sell1=%s, CCI-Buy=%s, CCI-Sell=%s",B2S(cci_buy1),B2S(cci_sell1),B2S(cci_buy),B2S(cci_sell));
_panel.SetText(2,str, _color_text);
#endif
_panel.SetText(4,long_hd._filter_state_info, _color_text);
_panel.SetText(5,short_hd._filter_state_info, _color_text);
_panel.SetText(6,"Price: "+DoubleToString(Tick.bid,kernel_account::digits()),_color_text);
_readyForUpdate=true;
}
#endif
//+------------------------------------------------------------------+