新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1193

 
jamalhan2016:
你好,我需要一些帮助吗?我应该怎样做才能把一个账户从mql4转到mql5?

有必要开设一个mt5账户,并将资金从该账户转移到mt5账户(与你的经纪人)。

 
Koldun Zloy:

你不能从一个DLL中获得。忘了它吧。你不能这样做,就是这样!

我在3年内学会了编程,但mql和现在一样,这是一个耻辱和奇怪的现象。这当然不是一个优先事项,但应该慢慢地(非常缓慢和缓慢地)研究这个问题。

 
Stanislav Korotky:

这是一些古老的东西(提到了另一个服务器)。今年不止一次,上一次是一个月前在MetaQuotes-Demo上正常创建了一个新的模拟账户。

另外,如果服务器被删除,为什么它在开户向导中显示并被平移?卡住的情况只发生在最后一步。

我在移动终端 上开了一个账户。起初我不得不在终端登录mql5账户,然后添加了演示账户。我花了一个小时来添加它,但它成功了。
 
Valeriy Yastremskiy:
我在移动终端 上开了一个账户。起初我不得不在终端授权我的mql5账户,然后模拟账户被添加。我花了一个小时来添加它,但它成功了。

它现在在我的电脑上工作得很好(即时)。

 
在mql4创建数组的地方,mql4数组的大小 可以通过第三方手段(其他编程语言)改变 吗?
 
你好!

这可能是一个原始的话题,但无论我找了多少次,都没有找到答案。

你能告诉我如何以编程方式找到图表上某一类型的对象(比如说4-5),这些对象是之前手动设置的,并将其名称、坐标和其他属性保存在缓冲区中,以便在EA中进一步使用?

或者,什么会更容易,如何将一个图形对象的名称、坐标和其他属性读入程序缓冲区,或者在用鼠标将其放置在图表上后立即读入一组简单的变量?
假设这个对象的属性可以手动或通过鼠标进行调整,然后将这些数据作为最终数据记录下来,以便在EA中进一步使用。
 
vladmirad:
你好! ,我可能提出了一个原始的、微不足道的话题,但尽管我四处寻找,我也没有找到答案。您能告诉我们如何在图表上找到手动设置的某一类型的对象(如4-5),并将其名称、坐标和其他属性保存在缓冲区,以便在EA中进一步使用?或者,什么会更容易,如何将一个图形对象的名称、坐标和其他属性读入程序缓冲区,或者在用鼠标将其放置在图表上后立即读入一组简单的变量?假设这个对象的属性可以手动或通过鼠标进行调整,然后将这些数据作为最终数据记录下来,以便在EA中进一步使用。






学习 - MQL4参考指南 / 图形对象 / ObjectFind()搜索具有指定名称的对象,ObjectGet()返回属性(例如端点的线的价格),ObjectSet()改变属性。同样,对象必须有一个名字,有许多函数与对象一起工作。当然,你还必须通过循环正确地计算它们,这不是一件快速的事情。我不知道你是否可以返回对象的名称,事实上,名称是由用户给出的,它可以被保存在一个数组中,以后再复制,以减少负载。

 
vladmirad:
你好! 这可能是一个原始的话题,但我没有找到任何答案。请您告知如何以编程方式找到图表上某一类型的对象(如4-5),这些对象是之前手动设置的,并将其名称、坐标和其他属性保存在缓冲区,以便在EA中进一步使用?或者,什么会更容易,如何将一个图形对象的名称、坐标和其他属性读入程序缓冲区,或者在用鼠标将其放置在图表上后立即读入一组简单的变量?假设这个对象的属性可以手动或通过鼠标进行调整,然后将这些数据作为最终数据记录下来,以便在EA中进一步使用。






你好。
首先在OnChartEvent()中监控图表的状态https://www.mql5.com/ru/docs/event_handlers/onchartevent
有几个事件是你需要的:
CHARTEVENT_OBJECT_CREATE 创建一个图形对象
CHARTEVENT_OBJECT_CHANGE 使用属性对话框改变一个图形对象的属性
CHARTEVENT_OBJECT_DELETE 删除一个图形对象
https://www.mql5.com/ru/docs/constants/chartconstants/enum_chartevents
当你添加/修改/删除图形对象时,记录OnChartEvent()处理器中所有参数并查看其值。这将为你提供去哪里的方向。
 
vladmirad:
你好! ,我可能提出了一个原始的过时的话题,但我搜索了多少次,都没有找到答案。如何在图表上找到手动设置的某一类型的对象(如4-5),并将其名称、坐标和其他属性保存在缓冲区,以便在EA中进一步使用?或者,什么会更容易,如何将一个图形对象的名称、坐标和其他属性读入程序缓冲区,或者在用鼠标将其放置在图表上后立即读入一组简单的变量?假设这个对象的属性可以手动或通过鼠标进行调整,然后将这些数据作为最终数据记录下来,以便在EA中进一步使用。






你可以找到并记录给定类型的对象,其坐标如下。

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart(){
  int total = ObjectsTotal(0, subwin, type);
  int i = 0;
  string name;
  datetime time1, time2;
  double price1, price2;
  for(; i < total; i++) {
    name = ObjectName(0, i, subwin, type);
    Print("Object: \"", name, "\"");
    time1 = (datetime)ObjectGetInteger(0, name, OBJPROP_TIME, 0);
    time2 = (datetime)ObjectGetInteger(0, name, OBJPROP_TIME, 1);
    price1 = ObjectGetDouble(0, name, OBJPROP_PRICE, 0);
    price2 = ObjectGetDouble(0, name, OBJPROP_PRICE, 1);
    Print("Time1: ", TimeToString(time1), "; Price1: ", DoubleToString(price1, Digits()), "; Time2: ", TimeToString(time2), "; Price2: ", DoubleToString(price2, Digits()), ".");
  }
}

你可以将任何数据保存到一个文件中。而在专家顾问中,制作一个加载器,将添加适当的对象,然后将文件中的数据加载到其中。但你至少要为你的具体任务勾勒出一个源代码,并在这里发布。

附加的文件:
ObjGet.mq5  4 kb
 
Seric29:

学习 - MQL4参考指南 / 图形对象 / ObjectFind()搜索具有指定名称的对象,ObjectGet()返回属性(例如端点的线的价格),ObjectSet()改变属性。同样,该对象必须有一个名字。 有许多函数与对象一起工作。当然,你还必须通过循环正确地计算它们,这不是一件快速的事情。我不知道你是否可以返回对象的名称,事实上,名称是由用户给出的,它可以保存在一个数组中,以后再复制以减少负载。

谢谢你的建议,我知道这些功能。
但是,如果我们不预先知道它的名字,我们怎么能用它们来自动检测图表上的一个对象并读取它的参数?
当用鼠标在图表上画一个对象时,系统会给出它的名字。

当然,从对象的属性表中手动输入对象的所有必要数据并不困难,但为什么要实现自动化?
但如何以编程方式将对象名称传入EA,然后可以激活你提到的所有功能,我仍然不清楚......

原因: