感谢您的文章。特别感谢提供改变智能交易系统状态库的链接。通过模板工作确实是一种非常新颖的解决方案。
不过说实话,看到标题我还以为是关于客户服务器或套接字的....。
如果您有多个账户,您会厌倦到处放置挂单。
在论坛的某个地方有一个通过电报进行交互的库。那里有更多的可能性,而且所有命令都可以通过按下机器人中预先准备好的按钮来设置。
据我所知,有计划准备一篇关于通过电报进行管理的文章,甚至已经指定了作者。也许新文章会对您更有用。
#define private public #include <fxsaber\Expert.mqh> //https://www.mql5.com/zh/code/19003 #undef private #define STRING_END "\r\n" #define EXPERT_BEGIN ("<expert>" + STRING_END) #define EXPERT_END ("</expert>" + STRING_END) #define EXPERT_NAME "name="
因此,要启用/禁用智能交易系统,我们只需重写模板文件,将 expertmode 标志更改为我们需要的值,并删除隐藏对象。
我不知道有这个标志,也没有考虑到与对象打交道的微妙之处,谢谢!
这段代码
string temp=EXPERT::TemplateToString(i_chart,true); if(temp==NULL) { i_chart=ChartNext(i_chart); continue; } //--- temp=EXPERT::StringBetween(temp,EXPERT_BEGIN,EXPERT_END); if(temp==NULL) { i_chart=ChartNext(i_chart); continue; }
不仅会捕获 EA,还会捕获脚本。所以最好这样写
if(!EXPERT::Is(i_chart)) { i_chart=ChartNext(i_chart); continue; } string temp=EXPERT::TemplateToString(i_chart,true);
在这种情况下,模板将只保存在需要的地方。
ZY 我并没有刻意让 FileDelete 总是显示最后生成的模板。
您可以使用这种技术来不改变原始资料
有趣的技术,以前从未想到过这种方法。谢谢。
该代码
不仅会捕获 EA,还会捕获脚本。所以最好这样写
在这种情况下,模板将只保存在需要的地方。
在代码中,TemplateToString 被有意调用为 true。也许您忘记了,在带有 true 标志的函数体中,通过调用 Is 方法来检查图表上是否存在智能交易系统。
static string TemplateToString( const long Chart_ID = 0, const bool CheckExpert = false ) { short Data[]; return(((!CheckExpert || EXPERT::Is(Chart_ID)) && ::ChartSaveTemplate((ulong)Chart_ID, PATH + FILENAME) && (::FileLoad(FILENAME, Data) > 0)) ? ::ShortArrayToString(Data) : NULL); }
这就是为什么这两个代码应该以同样的方式工作。
总之,感谢您提供的库和评论。
,
Dmitry。
由于技术原因,带有智能交易系统的 VPS(或您家中的电脑)可能会离线一段时间。虽然不知道什么时候能重新上线,但您需要,比如,不要进行交易,因为您知道可能会有更多的中断。在这种情况下,建议的远程控制功能比您的变体要强大得多。
MetaQuotes 也有 VPS。只有在那里才会这样。
这种情况不会发生,原因只有一个,那就是没有互联网--没有交易,而且您可能没有注意到,您的手机或平板电脑上可以看到账户控制。如果网络断了,我们只需用手关闭所有交易,然后等待网络出现,或者在家对电脑进行进一步操作。
在没有网络的情况下,电脑上的终端离您很远。您可以访问您的账户,但无法访问带有智能交易系统的终端。如何让 Expert Advisor 在连接到交易服务器(互联网正常)时不进行交易?
新文章 EA 遥控方法已发布:
交易机器人的主要优势在于能够在远程 VPS 服务器上每天 24 小时不间断工作。 但有时候有必要干预它们的工作,而此刻可能无法直接访问服务器。 是否可以遥控管理 EA? 本文提出了一种通过外部命令控制 EA 的选项。
我们处于数字时代,各种用于金融市场交易的自动化系统已经变得非常普遍。 电子智能交易系统(EA)的主要优点一般认定为能够完美无瑕的执行算法,并可一天 24 小时不间断工作。 虚拟主机允许全天候自动运行 EA。
不幸的是,并非所有的 EA 在任何市场情况下都能同样有效。 在这些情况下,交易者通常需要手动启用和禁用它们。 当用户可以直接访问终端时,这很容易做到。 但是如果您无法快速访问终端来控制 EA 工作怎么办? 在这种情况下,能够远程控制 EA 操作会很好。 我们来研究一下在终端中遥控 EA 的可能方法之一。
作者:Dmitriy Gizlyk