我祝贺您的辛勤工作......这是一个相当大的项目。
我刚刚开始这项工作,正在尝试编译 TestDoEasyPart101.mq5 ...我遇到了以下 4 个错误:
1) CTrading::OpenPosition<...... (无法访问私有成员函数)
所有其他错误基本相同,所以我一定是路径出了问题,但无法缩小范围。
我复制了用于包含的 DoEasy 文件,因此层次结构如下:
MQL5\Include\DoEasy (所有在你的 DoEasy 文件夹下的文件)。
我在 TradingControl.mqh 文件的顶部做了如下操作: #include <DoEasy\trading.mqh>
我的问题可能出在哪里......正如我所说的,似乎你至少做了 100 篇文章来构建你在这篇文章开头的内容......有什么建议可以帮助我编译吗?
谢谢
Dean Fredrickson
我刚刚开始这项工作,正在尝试编译 TestDoEasyPart101.mq5 ...我遇到了以下 4 个错误:
1) CTrading::OpenPosition<...... (无法访问私有成员函数)
所有其他错误基本相同,所以我一定是遇到了路径问题,但无法缩小范围。
我复制了 DoEasy 文件的包含文件,因此层次结构如下:
MQL5\Include\DoEasy (所有 DoEasy 文件夹中的文件都在 include 文件夹下
我在 TradingControl.mqh 文件的顶部做了以下操作: #include <DoEasy\trading.mqh>
我的问题可能出在哪里......正如我所说的,似乎你至少做了 100 篇文章来构建你在这篇文章开头的内容......对于如何让它编译,有什么建议吗?
谢谢
迪安-弗雷德里克森
在 Trading.mqh 文件中做出以下更改:
//--- (1) Открывает позицию, (2) устанавливает отложенный ордер protected : template < typename SL, typename TP> bool OpenPosition( const ENUM_POSITION_TYPE type, const double volume, const string symbol, const ulong magic= ULONG_MAX , const SL sl= 0 , const TP tp= 0 , const string comment= NULL , const ulong deviation= ULONG_MAX , const ENUM_ORDER_TYPE_FILLING type_filling= WRONG_VALUE ); template < typename PR, typename PL, typename SL, typename TP> bool PlaceOrder( const ENUM_ORDER_TYPE order_type, const double volume, const string symbol, const PR price, const PL price_limit= 0 , const SL sl= 0 , const TP tp= 0 , const ulong magic= ULONG_MAX , const string comment= NULL , const datetime expiration= 0 , const ENUM_ORDER_TYPE_TIME type_time= WRONG_VALUE , const ENUM_ORDER_TYPE_FILLING type_filling= WRONG_VALUE ); private : //--- Возвращает индекс объекта-запроса в списке по (1) идентификатору、 //--- (2) тикету ордера, (3) тикету позиции в запросе int GetIndexPendingRequestByID( const uchar id); int GetIndexPendingRequestByOrder( const ulong ticket); int GetIndexPendingRequestByPosition( const ulong ticket); public : //-- Возвращает себя CTrading *GetObject( void ) { return & this ; } //--- Конструктор CTrading();
这将允许从派生类中可见方法。
这个错误是我不注意造成的,但旧的编译器漏掉了。 更新终端后,编译器看到了这个错误。
新文章 DoEasy. 控件 (第 1 部分): 第一步已发布:
本文开始延展话题,介绍如何利用 MQL5 仿照 Windows 窗体样式创建控件。 我感兴趣的第一个对象是创建面板(panel)类。 若是没有控件,那么管理就会变得越来越困难。 因此,我将仿照 Windows 窗体样式创建所有可能的控件。
编译 EA,并在图表上启动它:
窗体会对鼠标移动作出反应,并始终置于已添加到图表的图形对象的顶部。 元素对象的渐变填充绘制无误,并且面板对象只有一种颜色。 但是,无论是元素还是面板都不会对鼠标作出反应,且都锁定在所有图形对象之下的背景中。 这是因为我只需处理窗体对象的鼠标事件。 面板本质上是一个窗体,这个事实并不重要,因为我只处理显式的 CForm 类。 我稍后会修复这一点。
作者:Artyom Trishkin