- 显示:
- 1406
- 等级:
- 已发布:
- 2018.06.25 13:39
-
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
在开发它时,我们受到 TradingBoxing 代码的启发。 不过,下面的代码只是基于这个思路,而所有的实现绝对都以 MQL5 和新交易类 完成。
交易面板只有一个输入参数,magic number - EA 的独有标识符。
交易面板的外观:
为显示交易量 (仓位和挂单),将标准类 CSpinEdit 稍作修改并保存为 CSpinEditDouble。 不幸的是,我们没能设法使用继承来创建它,由于我们必须更改类成员的声明为 "private"。
正如您从类名中看到的那样,它是为了显示双精度类型数据而创建的。 所以,我们添加了方法 DisplayedDigits - 定义控件中的文本显示精度。
此控件中的文本字段也是可编辑的。 例如,当您不得不输入与文本字段中的值不同的价格或交易量时,这也许会有所帮助。 要将文本字段中的文本保存为数值,已添加 EndEdit 方法到类 CSpinEditDouble:
int m_digits; // 显示小数位 //--- void EndEdit() { Value(StringToDouble(Text())); } public: CSpinEditDouble(void);
该方法将输入的文本存储为数值。
EndEdit 方法会从 OnEvent 类的 CSpinEditDouble 中调用:
//+------------------------------------------------------------------+ //| 图表事件的公用处理器 | //+------------------------------------------------------------------+ EVENT_MAP_BEGIN(CSpinEditDouble) ON_EVENT(ON_CLICK,m_inc,OnClickInc) ON_EVENT(ON_CLICK,m_dec,OnClickDec) ON_EVENT(ON_END_EDIT,m_edit,EndEdit) EVENT_MAP_END(CWndContainer)
为了能尽快处理交易订单 (即使在一个非常平静的行情中,逐笔报价的来临间隔很大),每次点击交易面板按钮将强制调用内部处理程序 CTradingBoxingDialog::OnTick()。
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/20860