新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 984 1...977978979980981982983984985986987988989990991...1953 新评论 Igor Makanu 2019.10.17 08:57 #9831 Ivan Butko: 如果你知道要添加什么条件或如何实现(如果很容易),请分享。 我可以,但检查它的工作原理并不有趣,所以这里有一个大纲 void OnTick() { static int ticket = -1; while(!IsStopped() &&ticket<0) { if(TerminalInfoInteger(TERMINAL_CONNECTED) && TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) && !IsTradeContextBusy()) { RefreshRates(); ticket = OrderSend("EURUSD", OP_SELL, 0.01, Bid, 3, 0, 0, "", 0, 0, clrRed); if(ticket > 0) break; } Sleep(123); } } Ivan Butko 2019.10.17 09:04 #9832 Igor Makanu: 我可以,但检查它的工作原理并不有趣,所以我只是勾画了一下。 伊戈尔,谢谢你。也不需要检查,我当然会自己做。 有什么办法可以不等待打勾就能做到吗? 因此,当按下 "推 "的时候,打开的请求立即进行。 它就像一个标准的 "买/卖 "按钮,在终端快速打开交易(在图表的左上方)。你按下它,卖家就会立即打开。你所需要的是开出一篮子订单,而不是单笔交易,不需要等待嘀嗒声。 有两种实现方式(在我看来)。 1)要么在图表上有一个打开篮子的按钮(类似)。 2)或专家顾问。对我来说,顾问似乎更方便,因为它可以比我更快地重复打开请求(如果有问题)。 UPD 你的代码起作用了,在一个新的勾上打开,很酷,谢谢) UPD 我还记得:复制器有参数 "ms",你可以在那里设置检查时间。而如果主站有一个开放的交易,它可以从1毫秒的从站发送一个开放交易的请求。即,即时开放是可行的 Ivan Butko 2019.10.17 09:20 #9833 Igor Makanu:我可以,但检查它的工作原理并不有趣,所以这里有一个草图伊戈尔,请用眼睛检查一下,这种打开方式是否是即时的,不需要等待新的勾选?int OnInit(){//---static int ticket = -1;while(!IsStopped() &&ticket<0){ if(TerminalInfoInteger(TERMINAL_CONNECTED) && TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) && !IsTradeContextBusy() ){RefreshRates()。ticket = OrderSend("EURUSD", OP_SELL, 0.01, Bid, 3, 0, 0, "", 0, 0, clrRed);if(ticket > 0) break;}睡眠(1)。}//---return(INIT_SUCCEEDED)。}------------------ 而它似乎是按计划进行的......。 Igor Makanu 2019.10.17 09:55 #9834 Ivan Butko: 否则,它似乎可以按计划工作...... 不是最好的选择....那么至少要这样写 #property strict int ticket = -1; int OnInit() { if(ticket < 0) SendMyOrder(); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ void OnTick() { if(ticket < 0) SendMyOrder(); } //+------------------------------------------------------------------+ void SendMyOrder() { while(!IsStopped() && ticket < 0) { if(TerminalInfoInteger(TERMINAL_CONNECTED) && TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) && !IsTradeContextBusy()) { RefreshRates(); ticket = OrderSend("EURUSD", OP_SELL, 0.01, Bid, 3, 0, 0, "", 0, 0, clrRed); if(ticket > 0) break; } Sleep(123); } } //+------------------------------------------------------------------+ 但是,如果你在图表上抛出了第一个选项,并在你认为有必要 "待机 "时按下了自动交易按钮,那么这个选项应该能清楚地发挥作用。 如果你想做交易,那么你应该这样写。 void OnTick() { if(ticket < 0) SendMyOrder(); if(ticket > 0) ExpertRemove(); } Ivan Butko 2019.10.17 10:29 #9835 Igor Makanu: 不是最好的选择....那么至少要这样写 但是,如果你在图表上抛出了第一个选项,并在你认为有必要 "待机 "时按下了自动交易按钮,那么这个选项应该能清楚地发挥作用。 如果你想做交易,那么你应该这样写。 多谢 Ivan Butko 2019.10.17 10:57 #9836 很好!对变种的测试仍在继续。弗拉基米尔和伊戈尔的变体原来是相当快的。在实践中,事实证明,点击快速买入按钮时的交易打开速度比使用专家顾问时快。另一个奇怪的事情是,如果我们在专家顾问中规定哪些交易要逐个打开,它们就会逐个打开,而且速度很慢......而如果我们在每个图表中放入7个EA(更像是无负荷),那么相反,所有交易都会立即打开,不按顺序,订单之间没有延迟(但在开始时仍有一些半秒或一秒的空间)。 我想试试图表上的按钮,找到了手册,但它只描述了坐标什么的。请告知,我应该在 "按钮 "脚本的什么地方写代码来打开交易?要在图表上点击它,交易就打开了。如标准的MT快速购买/卖出按钮。 或者如何升级贸易面板以打开一篮子的订单? pvba 2019.10.17 11:22 #9837 请帮助解决这个问题 Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам 2019.10.14www.mql5.com В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н... Igor Makanu 2019.10.17 12:13 #9838 Ivan Butko: 我想试试图上的按钮,找到了手册。 我没有寻找手册,而是画了一个按钮 ))) #property copyright "IgorM" #property link "https://www.mql5.com/ru/users/igorm" #property version "1.00" #property strict input string sym1 = "EURUSD"; input string sym2 = "GBPUSD"; input string sym3 = "USDCAD"; input string sym4 = "USDJPY"; input string sym5 = "AUDUSD"; #include <Controls\Button.mqh> CButton ButtonSend; string sym[5]; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { sym[0] = sym1; sym[1] = sym2; sym[2] = sym3; sym[3] = sym4; sym[4] = sym5; ButtonSend.Create(0, "ButtonSend" + _Symbol, 0, 10, 50, 100, 90); ButtonSend.Color(clrRed); ButtonSend.Text("Kill Forex!"); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { static int ticket[5] = {-1, -1, -1, -1, -1 }; if(ticket[0] > 0 && ticket[1] > 0 && ticket[2] > 0 && ticket[3] > 0 && ticket[4] > 0) return; if(ButtonSend.Pressed()) { ButtonSend.Pressed(false); Print("Start OrderSend()"); while(!IsStopped()) { if(TerminalInfoInteger(TERMINAL_CONNECTED) && TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) && !IsTradeContextBusy()) { RefreshRates(); for(int i = 0; i < 5; i++) { if(sym[i] == "") ticket[i] = INT_MAX; if(ticket[i] > 0) continue; ticket[i] = OrderSend(sym[i], OP_SELL, 0.01, SymbolInfoDouble(sym[i],SYMBOL_BID), 3, 0, 0, "", 0, 0, clrRed); } } if(ticket[0] > 0 && ticket[1] > 0 && ticket[2] > 0 && ticket[3] > 0 && ticket[4] > 0) break; Sleep(123); } } } //+------------------------------------------------------------------+ 如果设置的符号会是"",那么就不要在这个符号上开0.01手,手数设置还没做,对于作为话题的如何学习,不看谁会做,必要时尽量自己附加;) Ivan Butko 2019.10.17 12:35 #9839 Igor Makanu: 我没有找手册,而是画了一个按钮))))。 如果符号设置为"",那么就不要为这个符号开0.01手,手数设置还没有做,对于作为话题的人来说如何学习,不是看谁会做,必要时尽量自己附和;) 非常感谢你,伊戈尔!快速而有针对性 将尝试 Ivan Butko 2019.10.17 16:45 #9840 Igor Makanu: 奇怪的是,如果在一个EA中,它在每个指定的货币对上一个接一个地打开交易...有一个时间滞后。当你把它放在5个不同货币对的图表上时(符号(0)),当你按下自动交易时,所有5笔交易都会立即同时开启。 你能建议一下可能是什么原因,以及如何解决这个问题吗?把所有的东西都放在一个EA和一个图表上(这样,图表上的按钮 打开所有的交易,就像在原始版本中用几个EA激活 "自动交易 "时一样快) 1...977978979980981982983984985986987988989990991...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
如果你知道要添加什么条件或如何实现(如果很容易),请分享。
我可以,但检查它的工作原理并不有趣,所以这里有一个大纲
我可以,但检查它的工作原理并不有趣,所以我只是勾画了一下。
伊戈尔,谢谢你。也不需要检查,我当然会自己做。
有什么办法可以不等待打勾就能做到吗?
因此,当按下 "推 "的时候,打开的请求立即进行。
它就像一个标准的 "买/卖 "按钮,在终端快速打开交易(在图表的左上方)。你按下它,卖家就会立即打开。你所需要的是开出一篮子订单,而不是单笔交易,不需要等待嘀嗒声。
有两种实现方式(在我看来)。
1)要么在图表上有一个打开篮子的按钮(类似)。
2)或专家顾问。对我来说,顾问似乎更方便,因为它可以比我更快地重复打开请求(如果有问题)。
UPD
你的代码起作用了,在一个新的勾上打开,很酷,谢谢)
UPD
我还记得:复制器有参数 "ms",你可以在那里设置检查时间。而如果主站有一个开放的交易,它可以从1毫秒的从站发送一个开放交易的请求。即,即时开放是可行的
我可以,但检查它的工作原理并不有趣,所以这里有一个草图
伊戈尔,请用眼睛检查一下,这种打开方式是否是即时的,不需要等待新的勾选?
int OnInit()
{
//---
static int ticket = -1;
while(!IsStopped() &&ticket<0)
{ if(TerminalInfoInteger(TERMINAL_CONNECTED) && TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) && !IsTradeContextBusy() )
{
RefreshRates()。
ticket = OrderSend("EURUSD", OP_SELL, 0.01, Bid, 3, 0, 0, "", 0, 0, clrRed);
if(ticket > 0) break;
}
睡眠(1)。
}
//---
return(INIT_SUCCEEDED)。
}
------------------而它似乎是按计划进行的......。
否则,它似乎可以按计划工作......
不是最好的选择....那么至少要这样写
但是,如果你在图表上抛出了第一个选项,并在你认为有必要 "待机 "时按下了自动交易按钮,那么这个选项应该能清楚地发挥作用。
如果你想做交易,那么你应该这样写。
不是最好的选择....那么至少要这样写
但是,如果你在图表上抛出了第一个选项,并在你认为有必要 "待机 "时按下了自动交易按钮,那么这个选项应该能清楚地发挥作用。
如果你想做交易,那么你应该这样写。
很好!对变种的测试仍在继续。弗拉基米尔和伊戈尔的变体原来是相当快的。在实践中,事实证明,点击快速买入按钮时的交易打开速度比使用专家顾问时快。另一个奇怪的事情是,如果我们在专家顾问中规定哪些交易要逐个打开,它们就会逐个打开,而且速度很慢......而如果我们在每个图表中放入7个EA(更像是无负荷),那么相反,所有交易都会立即打开,不按顺序,订单之间没有延迟(但在开始时仍有一些半秒或一秒的空间)。
我想试试图表上的按钮,找到了手册,但它只描述了坐标什么的。请告知,我应该在 "按钮 "脚本的什么地方写代码来打开交易?要在图表上点击它,交易就打开了。如标准的MT快速购买/卖出按钮。
或者如何升级贸易面板以打开一篮子的订单?
我想试试图上的按钮,找到了手册。
我没有寻找手册,而是画了一个按钮 )))
如果设置的符号会是"",那么就不要在这个符号上开0.01手,手数设置还没做,对于作为话题的如何学习,不看谁会做,必要时尽量自己附加;)
我没有找手册,而是画了一个按钮))))。
如果符号设置为"",那么就不要为这个符号开0.01手,手数设置还没有做,对于作为话题的人来说如何学习,不是看谁会做,必要时尽量自己附和;)
将尝试
奇怪的是,如果在一个EA中,它在每个指定的货币对上一个接一个地打开交易...有一个时间滞后。当你把它放在5个不同货币对的图表上时(符号(0)),当你按下自动交易时,所有5笔交易都会立即同时开启。
你能建议一下可能是什么原因,以及如何解决这个问题吗?把所有的东西都放在一个EA和一个图表上(这样,图表上的按钮 打开所有的交易,就像在原始版本中用几个EA激活 "自动交易 "时一样快)