初学者的问题 MQL5 MT5 MetaTrader 5 - 页 673 1...666667668669670671672673674675676677678679680...1503 新评论 greeng2016 2016.11.16 18:00 #6721 你好,我应该添加什么代码 来使任何指标的警报出现在EA中?如何通过iCustom检测警报?也许你知道已经存在的指标/顾问? Vitaly Muzichenko 2016.11.16 20:46 #6722 RichLux:我正在编写一个在马丁格尔基础上工作的EA。我怎样才能让它在某一货币对达到最大允许损失的点数时关闭所有未结订单?如果你真的需要以点为单位而不是以钱为单位,这里有一个函数可以应用,就像上一个函数一样//===============================================================================================//------------------ Возвращает суммарный профит открытых позиций в пунктах --------------------+//===============================================================================================double GetProfitOpenPosInPoint(string symb="0", int type=-1, int mg=-1) { double p=0, prb=0, prs=0, pr=0; if(symb=="0") { symb=Symbol();} for(int i=0; i<OrdersTotal(); i++) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if((OrderSymbol()==symb||symb=="")&&(type<0||OrderType()==type)&&(mg<0||OrderMagicNumber()==mg)) { p=MarketInfo(OrderSymbol(), MODE_POINT)*Sign; if(OrderType()==OP_BUY) { prb+=((MarketInfo(OrderSymbol(), MODE_BID)-OrderOpenPrice())/p); } if(OrderType()==OP_SELL) { prs+=((OrderOpenPrice()-MarketInfo(OrderSymbol(), MODE_ASK))/p); } pr=prb+prs; } }} return(pr); } Questions from Beginners MQL5 新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 问吧! Vitaly Muzichenko 2016.11.16 20:47 #6723 greeng2016:你好,我应该添加什么代码 来使任何指标的警报出现在EA中?如何通过iCustom检测警报?也许你知道已经存在的指标/顾问? 据我所知,警报窗口的出现是不能被追踪的。 Petr Berdin 2016.11.17 15:41 #6724 你好,我想用mt4.exe打开.ex4文件,并将其设置为用于所有文件。我怎样才能找回 "windows通用shell库"? 由于某些原因,mt4现在不能看到这个专家(机器人)。 附加的文件: pui_mqhrx2.png 40 kb Vitaly Muzichenko 2016.11.17 15:46 #6725 VSEVPOTOLKI: 你好,我想用mt4.exe打开.ex4文件,并将其设置为用于所有文件。我怎样才能恢复 "windows通用外壳库"? 由于某些原因,MT4现在看不到这个EA(机器人)。你不会相信,但每个人!!!都想打开一个.ex4文件,问题是它从未被打开编辑过,无法打开。可编辑的文件只有.mq4,可执行的文件是.ex4。 Leo59 2016.11.23 09:54 #6726 客户端事件 啟動 在客户终端加载一个程序(专家顾问或自定义指标)并开始初始化全局变量后,将立即发送一个Init事件,如果有的话,将使用OnInit() 处理。在证券和/或图表周期变化后,在MetaEditor中重新编译程序后,在改变专家顾问或自定义指标设置窗口的 输入参数后,也会产生这个事件。专家顾问在账户改变后也会被初始化。脚本不产生初始事件。如果它不是 "窗外 "呢?例如,在策略测试器的优化模式中?在哪里可以读到这些信息? Vladimir Karputov 2016.11.23 09:59 #6727 Leo59:客户端事件 啟動 在客户终端加载一个程序(专家顾问或自定义指标)并开始初始化全局变量后,将立即发送一个Init事件,如果有的话,将使用OnInit() 处理。在证券和/或图表周期变化后,在MetaEditor中重新编译程序后,在改变专家顾问或自定义指标设置窗口的 输入参数后,也会产生这个事件。专家顾问在账户改变后也会被初始化。脚本不产生初始事件。如果它不是 "窗外 "呢?例如,在策略测试器的优化模式中?在哪里可以读到这些信息? 在优化模式下,每一次带有新参数的传递无非是一次新的程序启动。启动后,OnInit()事件会相应地执行。 Leo59 2016.11.23 10:06 #6728 Vladimir Karputov: 在优化模式下,每一次带有新参数的传递都不过是一次新的程序运行。因此,在启动后,OnInit()事件就会通过。(谢谢你,弗拉基米尔!我理解))。但文件中哪里写了?如果我在init()中加入Print、Alert和Comment,在日志和屏幕上都没有显示。我们怎么能确定我们所知道的事情呢? Vladimir Karputov 2016.11.23 10:11 #6729 Leo59: 谢谢你,弗拉基米尔!我明白了))。但文件中哪里写了?如果我在init()中加入Print、Alert、Comment,那么无论是日记还是屏幕上都没有写任何东西。我们怎么能确定我们所知道的事情呢?策略测试器中功能的局限性。在客户终端的策略测试器中,有些功能是有限制的。 函数Print()和PrintFormat()。为了提高优化EA参数时的性能,函数Print()和PrintFormat() 不被执行。例外的情况是在OnInit() 处理程序中使用这些函数。这使我们能够在错误发生时方便搜索错误原因。 Alert(), MessageBox(), PlaySound(), SendFTP, SendMail(), SendNotification()和WebRequest()函数与 "外部世界 "交互的Alert()、MessageBox()、PlaySound()、SendFTP()、SendMail()、SendNotification()和WebRequest() 函数在策略测试器中不执行。为了确保这一点--在历史上开始调试并在OnInit()中设置断点。 Leo59 2016.11.23 10:35 #6730 Vladimir Karputov:策略测试器中功能的局限性。我不能让一些东西打印()到测试者的日志中。你是如何做到这一点的? 1...666667668669670671672673674675676677678679680...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
如何通过iCustom检测警报?
也许你知道已经存在的指标/顾问?
我正在编写一个在马丁格尔基础上工作的EA。
我怎样才能让它在某一货币对达到最大允许损失的点数时关闭所有未结订单?
如果你真的需要以点为单位而不是以钱为单位,这里有一个函数可以应用,就像上一个函数一样
//------------------ Возвращает суммарный профит открытых позиций в пунктах --------------------+
//===============================================================================================
double GetProfitOpenPosInPoint(string symb="0", int type=-1, int mg=-1) {
double p=0, prb=0, prs=0, pr=0;
if(symb=="0") { symb=Symbol();}
for(int i=0; i<OrdersTotal(); i++) {
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if((OrderSymbol()==symb||symb=="")&&(type<0||OrderType()==type)&&(mg<0||OrderMagicNumber()==mg)) {
p=MarketInfo(OrderSymbol(), MODE_POINT)*Sign;
if(OrderType()==OP_BUY) {
prb+=((MarketInfo(OrderSymbol(), MODE_BID)-OrderOpenPrice())/p);
}
if(OrderType()==OP_SELL) {
prs+=((OrderOpenPrice()-MarketInfo(OrderSymbol(), MODE_ASK))/p);
}
pr=prb+prs;
}
}}
return(pr);
}
你好,我应该添加什么代码 来使任何指标的警报出现在EA中?
如何通过iCustom检测警报?
也许你知道已经存在的指标/顾问?
你好,我想用mt4.exe打开.ex4文件,并将其设置为用于所有文件。我怎样才能恢复 "windows通用外壳库"? 由于某些原因,MT4现在看不到这个EA(机器人)。
你不会相信,但每个人!!!都想打开一个.ex4文件,问题是它从未被打开编辑过,无法打开。
可编辑的文件只有.mq4,可执行的文件是.ex4。
客户端事件
啟動
在客户终端加载一个程序(专家顾问或自定义指标)并开始初始化全局变量后,将立即发送一个Init事件,如果有的话,将使用OnInit() 处理。在证券和/或图表周期变化后,在MetaEditor中重新编译程序后,在改变专家顾问或自定义指标设置窗口的 输入参数后,也会产生这个事件。专家顾问在账户改变后也会被初始化。脚本不产生初始事件。
如果它不是 "窗外 "呢?例如,在策略测试器的优化模式中?在哪里可以读到这些信息?
客户端事件
啟動
在客户终端加载一个程序(专家顾问或自定义指标)并开始初始化全局变量后,将立即发送一个Init事件,如果有的话,将使用OnInit() 处理。在证券和/或图表周期变化后,在MetaEditor中重新编译程序后,在改变专家顾问或自定义指标设置窗口的 输入参数后,也会产生这个事件。专家顾问在账户改变后也会被初始化。脚本不产生初始事件。
如果它不是 "窗外 "呢?例如,在策略测试器的优化模式中?在哪里可以读到这些信息?
在优化模式下,每一次带有新参数的传递都不过是一次新的程序运行。因此,在启动后,OnInit()事件就会通过。
谢谢你,弗拉基米尔!我明白了))。但文件中哪里写了?如果我在init()中加入Print、Alert、Comment,那么无论是日记还是屏幕上都没有写任何东西。我们怎么能确定我们所知道的事情呢?
在客户终端的策略测试器中,有些功能是有限制的。
函数Print()和PrintFormat()。
为了提高优化EA参数时的性能,函数Print()和PrintFormat() 不被执行。例外的情况是在OnInit() 处理程序中使用这些函数。这使我们能够在错误发生时方便搜索错误原因。
Alert(), MessageBox(), PlaySound(), SendFTP, SendMail(), SendNotification()和WebRequest()函数
与 "外部世界 "交互的Alert()、MessageBox()、PlaySound()、SendFTP()、SendMail()、SendNotification()和WebRequest() 函数在策略测试器中不执行。
为了确保这一点--在历史上开始调试并在OnInit()中设置断点。
我不能让一些东西打印()到测试者的日志中。你是如何做到这一点的?