有一个多货币的EA。简要的想法如下。对一个符号进行所有的计算,而对另一个符号进行交易。专家顾问的工作方式是明确控制打开一个新栏。这样一来,下一件不愉快的事情就发生了。专家顾问可能不会在真实账户上开立(跳过)交易,但在策略测试器中检查时,这个交易是存在的。或者,专家顾问可能比必要的时间晚开一个真正的交易,但是,同样,当在策略测试器中检查时,交易是存在的。它能与什么有关?
如果有新的报价,而你用旧的报价开仓,则可能无法开仓...
如果有新的报价,一个位置可能不会打开,但你用旧的报价打开...
我明白你的意思,但EA会处理这种情况。仅仅通过查看日志,根本没有任何信号。这意味着EA没有自行触发(没有给出开仓请求)。或者它只在下一栏工作。而这种情况并不总是发生。但只是有时。而与之相关的是什么,根本不清楚......虽然在测试器中--一切都很好,一切都能正确打开和关闭。
有一个多币种的EA。简而言之,其含义如下。所有的计算是针对一个符号进行的,而交易是针对另一个符号进行的。专家顾问的工作方式是明确控制打开一个新栏。这样一来,下一件不愉快的事情就发生了。专家顾问可能不会在真实账户上开立(跳过)交易,但在策略测试器中检查时,这个交易是存在的。或者,专家顾问可能比必要的时间晚开一个真正的交易,但是,同样,当在策略测试器中检查时,交易是存在的。它能与什么有关?
尝试打印出来...
打印(.
信号前,信号后,开幕时,开幕后
打印明确的条件
喜欢
// Print( " wait for MyOPEN == 1 " + MyOPEN );
如果 ( MyOPEN == 1 )
{
Print( " 由MyOPEN ==1输入");.
}
---
哦,还有更多关于开设新BAR的事情!!!。
请注意,有跳过的小节!测试仪不产生失误条不要只找一个酒吧,要找一个新的酒吧
---
现在在我的现实时间
图中欧元兑美元M5从当天开始形成140条,但瑞士法郎为137条,即损失3条:-)
如果你只是简单地在瑞士法郎中寻找对应于欧元的条形图,你可能会错过一个条形图。
---
然后是重新报价
如果你有一个SIGNAL,而且你不能错过它,就利用条件进入 或退出市场 吧
并检查你的信号是否被填满!
并直到它完成--运行代码来执行--为了不进入一个循环,做一个计数器
离开柜台后--检查是否需要进去--出去
如果它需要进入--再运行一次
----
此外,交易代码
此外,这个代码不可能是简单的!
(有一个代码负责机械工作--打开拖网无损关闭,即在收到信号后与订单一起工作)
有一个多货币专家顾问。简要的想法如下。所有的计算是针对一个符号进行的,而交易是针对另一个符号进行的。专家顾问的工作方式是明确控制打开一个新栏。这样一来,下一件不愉快的事情就发生了。专家顾问可能不会在真实账户上开立(跳过)交易,但在策略测试器中检查时,这个交易是存在的。或者,专家顾问可能比必要的时间晚开一个真正的交易,但是,同样,当在策略测试器中检查时,交易是存在的。它能与什么有关?
这些被称为重新报价。在测试器中,交易不是重新报价。因此,如果开仓交易的票据是负的,有必要重置已形成的条形图的标志。
static int prevtime = 0; // 酒吧开始时间
...
int start() {
if (Time[0] == prevtime) return(0); // bar是一样的,因此退出。
prevtime = Time[0]; // 新条,保持时间。
...
int ticket = -1;
...
ticket = OrderSend(...); // 尝试开仓
if (ticket < 0) { // 位置因某种原因没有被打开。
睡眠(30000)。
// 这里我们重置了所形成的条形标志,这样我们就在下一个tick上重复操作,而不是在下一个条形上。
prevtime = Time[1];
}
}
你的专家顾问暗示不同符号的小时蜡烛同步打开。也就是说,当欧元兑美元出现新的1小时蜡烛图时,专家顾问将开始在英镑兑美元的每小时时间框架上检查数值。但是,如果在那一刻,英镑的新时价还没有开始--一切都会变得破败不堪。一般来说,我们需要重新安排一下EA的逻辑。
谢谢你的回答,我以为是这个原因。请你告诉我怎么做?因为这是个大问题。这是一张截图,来自真实的截图。我们可以看到,在策略测试器中,姿势是在15.00打开的,而在真实账户中,它只在16.00打开。尽管我们在策略测试器和真实账户上有相同的参数。
该EA在每小时条形图上工作。这与重新报价无关--EA监控着这一点,必要时将发送新的请求。我写到,该EA甚至没有触发,以便它至少尝试开始开单。也就是说,2-3个订单,它开得很好(应该如此),而第四个(或第三个)可能甚至没有开始开,或者一小时后才开。虽然,如果你在测试器中检查这个时刻,这个命令会在正确的地方。
根据我的理解,问题在于乐器的刻度不是均匀地出现的。而为计算的符号打开一个新条形图的时间可能比我们交易的符号要晚很多。或反之亦然。而这里会出现一个差异。但如何避免呢?
考虑到任何小时条的新刻度(对于任何工具)都是小时的开始。
---
纠正这一脉络的逻辑...
一旦任何工具上的小时条打开,就会出现
重新计算另一个工具,假设该条线已经关闭,即使它没有形成一个新的条线。
因为在几秒钟内,它就会出现在那里。
---
比方说,你算上2或3种乐器
你可以在至少20个符号上捕捉到一小时的开始 - 最好是日元工具,因为它们非常快。
// --- практически гарантия ловли начала часа двумя БОДРЫМИ парами if ( TimeSaveBehchH1 == iTime("GBJJPY",PERIOD_H1,0) ) { TimeSaveBehchH1 = iTime("GBJJPY",PERIOD_H1,0); // новый бар } if ( TimeSaveBehchH1 == iTime("USDJPY",PERIOD_H1,0) ) { TimeSaveBehchH1 = iTime("USDJPY",PERIOD_H1,0); // новый бар } //--- if ( TimeSaveBehchH1 == iTime("EURUSD",PERIOD_H1,0) ) // в довершении ловим на своей рабоче паре { TimeSaveBehchH1 = iTime("EURUSD",PERIOD_H1,0); // новый бар } if ( TimeSaveBehchH1 == iTime("USDCHF",PERIOD_H1,0) ) // ловим на второй паре { TimeSaveBehchH1 = iTime("USDCHF",PERIOD_H1,0); // новый бар }
说实话,这不是很好...... 虱子不是在这对夫妇身上出现的,你会再次飞过。
如果你展示一段产生输入的代码--你可能会更快地发现逻辑中的错误。
您的专家顾问假设不同符号的小时烛台同步打开。也就是说,当欧元兑美元出现一个新的1小时蜡烛图时,专家顾问将开始在英镑兑美元的每小时时间框架上检查数值。但是,如果在那一刻,英镑的新时价还没有开始--一切都会变得破败不堪。一般来说,我们需要重新安排一下EA的逻辑。
谢谢你的回答,我以为是这个原因。请你告诉我怎么做?因为这是个大问题。这是一张截图,来自真实的截图。我们可以看到,在策略测试器中,姿势是在15.00打开的,而在真实账户中,它只在16.00打开。虽然在测试器中和在真实的参数中是一样的。
...
对于交易符号来说,新条形图的 刻度线来得更早,这就是为什么被分析符号的旧条形图参与了分析,开始工作了,正在等待下一个小时。在没有看到一段代码的情况下进行猜测是很有趣的。