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