通过专家顾问运行脚本 - 页 2

 
Shaun:

真实的故事,我是新来的,对这个网站,对编码也是。以前从未编码过。
这里 开始
 
qjol:
这里 开始

谢谢你提供这些信息。

说实话,我来到交易员/编码论坛是想从已经做过的人那里得到答案,并可能帮助我,而不是自己从头开始学习如何编码。

 
Shaun:

谢谢你提供这些信息。

说实话,我来到交易员/编码论坛是想从已经做过的人那里得到答案,并可能帮助我,而不是自己从头开始学习如何编码。

展示你的脚本,展示你的EA,也许有人会怜悯你,把它们结合起来 . .
 
Shaun:

谢谢你提供这些信息。

说实话,我来到交易员/编码论坛是想从已经做过的人那里得到答案,并可能帮助我,而不是自己从头开始学习如何编码。

好吧,展示你的代码,我们会试着帮助你,但我相信你不会期望我为你做整个代码。
 

谢谢大家!

根据你的建议,我在我的EA中写了这样的东西。

if(MyCondition)
{
  PlaySound("my_alert.wav");
    if(MessageBox("Do you really want to run the script?", 0, MB_YESNO|MB_ICONQUESTION)!=IDNO)
     { 
      MyScript();
      DisableAllEA();
      Sleep(3000);    
     }
  }

在某种情况下,由MyCondition定义,这将播放我的警报,所以我可以听到我必须检查正在发生的事情。

一个信息框跳出来,问我是否要运行这个脚本--这是一个关闭所有头寸的脚本。

当我点击[YES]按钮时,脚本就会执行--关闭所有头寸--并禁用MT4的[专家]按钮。

当然,你不需要禁用专家,除非你有理由这么做。

如果在下一个循环中,你的EA没有发现这个条件,它就不会触发脚本。

很明显,这只是一个变通办法,而不是一个完美的解决方案,因为EA在每个tick 上都会不断循环。

而且在脚本执行之前,你不能禁用专家,因为脚本是在EA内部,不是独立的。

P.S.

为了使其发挥作用,你需要在你的EA的开始部分包括以下内容。

#include <WinUser32.mqh>
 

我刚刚想到了另一个解决办法!!!。

你可以给你的脚本指定一个快捷键(HOTKEY)。

这样,你就可以模拟键盘事件了。

所以,更好。

if(MyCondition)
{
      EnableScript();
      DisableAllEA();
      Sleep(3000);
}

你可以在独立的脚本中加入你的alert.wav,也可以在消息框中加入。

而且,你可以在你对情况采取行动后,决定是否启用专家。

这样,你就不会有过度堆积的风险。

当然,这需要对按键事件进行更多的研究。

Ctrl+E键盘事件的功能是。

void DisableAllEA() {
   keybd_event(17, 0, 0, 0); // CTRL down
   keybd_event(69, 0, 0, 0); // E down
   keybd_event(69, 0, 2, 0); // E up
   keybd_event(17, 0, 2, 0); // CTRL up
}

只要在谷歌上搜索一下,你就可以找到每个键的数字代码。

或者,你可以使用这个链接 https://www.mql5.com/en/code

当然,keybd_event不是mql4的一部分,这就是为什么你需要。

#include <WinUser32.mqh>
 

还有,顺便问一下!

有谁曾经厌倦了在图表上实施EA作为一个指标?

这应该是很好的工作!

你可以在一个图表上运行任何数量的指标!

我已经尝试过将脚本作为指标来实施,而且工作得很好!

 
Dadas:

还有,顺便问一下!

有谁曾经厌倦了在图表上实施EA作为一个指标?

它应该同样有效!


你不能从指标中进行交易,只能从脚本和EA中进行。
 
RaptorUK:

你不能通过指标进行交易,只能通过脚本和EA。


那么,一个EA可以作为一个脚本运行吗?在一个循环中?

只是,在无限循环的情况下,电脑最终会崩溃。

有什么方法可以在循环中触发一个脚本,由一些刻度线控制,比如每50ms或类似的东西?

而不是由MT4的ticks控制?

 
RaptorUK:

你不能通过指标进行交易,只能通过脚本和EA。


还有一个想法。

因此,你可以使用键盘事件功能,通过脚本下单。

1.写一个脚本来自动下订单。

2.2. 给它指定一个HOTKEY。

3.3.在作为指标运行的EA中定义键盘事件。

然后,您可以为平仓订单做同样的事情。

这就是您的成果!一个作为指标运行的EA,正在做它的工作!

这种方式的唯一缺点是,你不能用键盘事件禁用指标,只能从图表中手动删除它。