// Демонстрация открытия дубля позиции в MT5.#include <Trade\Trade.mqh>
voidOnStart()
{
CTrade Trade;
while (!IsStopped() && (PositionsTotal() <= 1)) // Закончим, когда появится более одной позиции.if (PositionsTotal() == 1)
Trade.PositionClose(PositionGetTicket(0)); // Если есть позиция - закрываем.elseif (!OrdersTotal())
Trade.Buy(0.01); // Если нет позиции и ордера - открываем позицию.
}
你不能用你的舌头说话。你应该教我。我,请。
有一个问题,而且不仅仅是在这个经纪人那里。
问题不在于等待特定订单的执行(那是另一回事),而在于在订单执行 的那一刻,它们从所有列表中暂时消失了(开仓、平仓、交易、头寸)。
当然,我们可以使用另一个拐杖。但我们希望找到一个人性化的解决方案。于是,fxsaber公开工作,听着路过的祝福者的叫声。
我个人希望你能理解文件的内容
就个人而言,我希望你对这样的文件字句有足够的洞察力
这不仅涉及OnTradeTransaction() 事件处理程序,而且还 涉及OrderSend()发送后的任何部分代码。等待交易的完成。没有其他选择,也不会有任何选择。 只要想想为什么在mql4中一切都那么简单?嗯,这是因为这些期望是在离你的眼睛很远的地方奠定的。而在MQL5中,你不知为何认为所有的检查和期望都是拐杖。为什么?阿列克谢,你偏离了主题。抱歉,没有时间或意愿再解释一遍。
这样试了一下。
我运行了5次我的代码,直到正好有10个位置开放
这样试了一下。
运行我的代码5次,直到正好有10个位置开放
看起来是在设置HistorySelect 输入时出了错。
看起来是在设置HistorySelect 输入时出现了错误。
想法,以达到服务器并进行同步
把它改写成了剧本。
运行了几次,也打开了10个位置,添加了脚本的当前开始时间
到达服务器并同步的想法
把它改写成了剧本。
运行了几次,也打开了10个位置,添加了脚本的当前开始时间
这种变化将显示什么?
这种变化将显示什么?
2021.05.09 21:35:06.210 tst (ETHUSD,H1) Benchmark.mqh: TimeAvg[GetMicrosecondsCount()] = 0 mcs.
2021.05.09 21:35:06.211 tst (ETHUSD,H1) Benchmark.mqh is On.
2021.05.09 21:35:06.211 tst (ETHUSD,H1) Alert: Bench_Stack = 0, 1 <= Time[tst.mq5 16 in OnStart: HistorySelect(TimeCurrent(),t_start) ] = 20 mcs.
2021.05.09 21:35:06.308 tst (ETHUSD,H1) Alert: Bench_Stack = 0, 1 <= Time[tst.mq5 16 in OnStart: HistorySelect(TimeCurrent(),t_start) ] = 6 mcs.
2021.05.09 21:35:06.404 tst (ETHUSD,H1) Alert: Bench_Stack = 0, 1 <= Time[tst.mq5 16 in OnStart: HistorySelect(TimeCurrent(),t_start) ] = 10 mcs.
2021.05.09 21:35:06.501 tst (ETHUSD,H1) Alert: Bench_Stack = 0, 1 <= Time[tst.mq5 16 in OnStart: HistorySelect(TimeCurrent(),t_start) ] = 13 mcs.
2021.05.09 21:35:06.597 tst (ETHUSD,H1) Alert: Bench_Stack = 0, 1 <= Time[tst.mq5 16 in OnStart: HistorySelect(TimeCurrent(),t_start) ] = 10 mcs.
2021.05.09 21:35:06.694 tst (ETHUSD,H1) Alert: Bench_Stack = 0, 1 <= Time[tst.mq5 16 in OnStart: HistorySelect(TimeCurrent(),t_start) ] = 3 mcs.
2021.05.09 21:35:06.792 tst (ETHUSD,H1) Alert: Bench_Stack = 0, 1 <= Time[tst.mq5 16 in OnStart: HistorySelect(TimeCurrent(),t_start) ] = 4 mcs.
2021.05.09 21:35:06.888 tst (ETHUSD,H1) Alert: Bench_Stack = 0, 1 <= Time[tst.mq5 16 in OnStart: HistorySelect(TimeCurrent(),t_start) ] = 3 mcs.
2021.05.09 21:35:06.989 tst (ETHUSD,H1) Alert: Bench_Stack = 0, 1 <= Time[tst.mq5 16 in OnStart: HistorySelect(TimeCurrent(),t_start) ] = 4 mcs.
职位仍然是10个,还没有翻倍。
HistorySelect的执行时间很好地表明,它没有向贸易服务器请求任何东西。
有几个版本。
试着用同样的方法来摆脱这里的翻倍。
关于交易、自动交易系统和策略测试的论坛
伟大而强大的永远的MT4(或如何正确地制定策略来切换)。
fxsaber, 2021.05.05 02:04
在一个空的模拟账户上运行这段代码,看看是否在几秒钟内有两个仓位开仓。
我偶然来到这里,读到了它--这是一个耻辱 !
任何人都不应该被信任 !你可以从HistorySelect的执行时间清楚地看到,它没有向贸易服务器请求任何东西。
有几个版本。
试着用同样的方法来摆脱这里的双重性。
1.唉,没有它就无法在我们的业务中生存))。
2.我几天前问过什么版本(不是测试版)是相关的,沉默不语,我决定不更新,在笔记本和电脑上很难理解什么版本是相关的--我已经有几个月没有用终端工作了,我不懂。现在在PC上构建2903。
3.我就不说了,这个宴会由你负责,开发商不说话,我猜...竖起大拇指,我认为问题出在网络延迟上,而且多个套接字?终端,没有同步,一个套接字价格,另一个OrderSend,另一个OnTrade().....,所以数据包从哪里飞到哪里
4.我有robotforex + 100 mbps的光纤(ETTH),我有一个糟糕的移动互联网和fhopin在我的笔记本电脑之前
我试了2分钟,脚本甩了2分钟,总是一个位置,没有反转,我用手把脚本拿下来了