81 lines
6.6 KiB
MQL5
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
|
|
//+------------------------------------------------------------------+
|