初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1175

 
Peter Vorobyev:

改变MQ的源代码,把方法拉到公共的,很明显,这不是我们的方法:)

#define private public

如果你不希望这样,那么CAppDialog 中的所有元素都是由图形对象构成的,你只需要知道对象的名称,在创建CAppDialog类的实例后,写一个方法,将CAppDialog 的边框涂成你想要的颜色

 
Igor Makanu:

如果你不希望这样,所有的CAppDialog面板元素都是作为图形对象形成的,你只需要知道对象的名称,在创建CAppDialog类的实例后,写一个方法,将CAppDialog 的边框涂成你想要的颜色

通过这个,你可以转移代码,在类中寻找正确的控件。这很有效。

但我不知道如何访问它,知道对象的名称。

 
Peter Vorobyev:

你可以用它来移动代码,在类中找到你需要的控件。这很有效。

但我不知道如何在知道对象名称的情况下访问它。

https://www.mql5.com/ru/docs/objects/objectsetinteger

但我认为为了自己的需要,把所有的私有方法和字段重新定义为公共的会更容易一些

 
Igor Makanu:

https://www.mql5.com/ru/docs/objects/objectsetinteger

但我认为,为了你自己的需要,把所有封闭的方法和字段重新定义为公共的,会更容易。

ObjectSetInteger - 有效:),我都忘了。
你能举个例子吗?#defineprivate public - 我不明白如何重写方法在你的班上有必要这样做吗?

 
Peter Vorobyev:

ObjectSetInteger - 有效:),我都忘了。
你能举个例子吗?#define private public - 我不明白如何重写方法在你的班上有必要这样做吗?

#define private public
#include <Controls\Dialog.mqh>
// тут весь Ваш класс который наследуете от CAppDialog
#undef private
用undef做实验,在宏置换后,你可以取消它,并关闭类中CAppDialog的 所有公共方法,以方便以后写代码。
 
Igor Makanu:

伊戈尔,是的,它起作用了。谢谢你。

 

在MT5上运行遗传优化的EA,本地代理连接到主网。

专家顾问从一个文本文件中获取一些初始数据。

我打开文件的标志是:FILE_READ|FILE_SHARE_READ|FILE_ANSI|FILE_CSV|FILE_COMMON。

为了让本地代理找到该文件,我不得不将其复制到本地计算机终端的Common文件夹中。

唯一的出路是每次都要手动复制所需的文件到所有本地机器上吗?

终端本身不能将这个文件与输入的测试参数一起发送吗?

 
我如何以编程方式找出当前条形上的斐波那契扇形 水平的价格?
 
Сергей Таболин:
我如何以编程方式找出当前条形上的斐波那契扇形 水平的价格?
bool  ObjectGetDouble(
   long                            chart_id,          // идентификатор графика
   string                          name,              // имя объекта
   ENUM_OBJECT_PROPERTY_DOUBLE     OBJPROP_LEVELVALUE,           // идентификатор свойства
   int                             prop_modifier,     // модификатор свойства
   double&                         double_var         // сюда примем значение свойства
   );
Документация по MQL5: Графические объекты / ObjectGetDouble
Документация по MQL5: Графические объекты / ObjectGetDouble
  • www.mql5.com
2. Возвращает true или false в зависимости от успешности выполнения функции.  В случае успеха значение свойства помещается в приемную переменную, передаваемую по ссылке последним параметром. [in]  Модификатор указанного свойства. Для первого варианта по умолчанию значение модификатора равно 0. Большинство свойств не требуют модификатора...
 
Alexey Viktorov:
void OnTick()
{
//---
   Print(TimeToString(TimeLocal()));
   Print(ObjectGetDouble(0,"TrL",OBJPROP_PRICE));
}

给出了趋势线的 第一个点的价格。(((

2020.01.18 11:46:37.233 2019.11.29 00:00:00   2019.11.29 00:00
2020.01.18 11:46:37.233 2019.11.29 00:00:00   1.00245
2020.01.18 11:46:39.533 2019.11.29 08:00:00   2019.11.29 08:00
2020.01.18 11:46:39.533 2019.11.29 08:00:00   1.00245
2020.01.18 11:46:41.834 2019.11.29 16:00:00   2019.11.29 16:00
2020.01.18 11:46:41.834 2019.11.29 16:00:00   1.00245
2020.01.18 11:46:44.135 2019.12.02 00:00:00   2019.12.02 00:00
2020.01.18 11:46:44.135 2019.12.02 00:00:00   1.00245