if(Recovery)
{
//loop through open orders and check for magic number, symbol and type//if you find a buy order with the magic number and symbol
BuyTicket=OrderTicket();
//if you find a sell order with the magic number and symbol
SellTicket=OrderTicket();
Recovery=false;
}
如果你需要一个比较(A>B) ,使用(A-B)*DIR>0 来扭转卖出的比较。
似乎你有这个想法。
修改并发布你的代码,我或其他人会对它进行评论。
嘿,GumRai。
我已经有一段时间没有在这里发布更新了,但是我一直在努力学习代码,并最终完成了它--在每天工作10小时的情况下,这很痛苦。然而,我有两个主要问题。1)无论我做什么,它都会产生一个错误代码。"2)我做了一个文件的保存,(调用了一个USDCAD,另一个EURUSD),使用了不同的magicnumbers等,但它仍然每次只做一个交易--并没有独立处理这些交易。事实上,它还产生了一个 "OrderCloseFunction无效票 "的错误。
我试着在谷歌上搜索这个问题,但无济于事。如果你能在这个问题上为我提供正确的指导,我将非常感激。我做错了什么?
预先感谢!
永远不要使用OrdersTotal()==0 作为交易的条件
这意味着,如果一个交易已经被手动打开,或被另一个EA打开,或同一EA连接到另一个图表符号,只能打开一个交易。
你有全局变量BuyTicket,把它初始化为-1。
在平仓前不要对订单进行循环,这没有必要。
现在,当使用全局声明的票号变量时,如果终端因某种原因被关闭并重新启动,可能会出现问题。
所以要声明一个新的全局范围变量
我打得很快,所以我可能有错误,但足以给你一个概念。
非常感谢!我之所以把这个循环放在那里,是因为我注意到,当它关闭卖出时,由于某种原因,它不会触发买入。
我已经做了必要的修改......但似乎还是有些不对劲。它现在不进行任何长线交易,并产生无效票据的错误代码,以及OrderClose错误4051。对这里的问题有什么建议吗?
奇怪的是,无论是以前的代码,还是现在的代码(只针对卖出),它都能合理地进行交易(如果我只在一个图表上执行)。
我不认为这有多难,哈哈!我想我错了,我以为这是一个非常简单和直接的事情......当蜡烛穿过并开在MA之上时买入,当蜡烛穿过并低于MA时关闭并卖出。
很抱歉,但我真的不知道你想做什么
没有选择任何顺序。这段代码甚至可以编译吗?
这里的else适用于如果(OrderCloseTime()==0)为假的 情况。
这里适用于OrderSelect失败的情况,当然它也是如此。
很抱歉,但我真的不知道你想做什么
没有选择任何顺序。这段代码甚至可以编译吗?
这里的else适用于如果(OrderCloseTime()==0)为假的 情况。
这里适用于OrderSelect失败的情况,当然它也是如此。
对不起,完全是我的错。我没有正确地阅读/应用你的建议;非常感谢你指出这些建议。我在这里已经做得很正确了。报告中完全没有产生错误。唯一的问题是,现在,它有时会输入多个卖单 和买单,这使它不能在正确的时间关闭交易。
编辑:准确地说,它只在SL和TP处退出,而不是在价格越过MA的另一边时退出。这与bool有关系吗?
这不是选择交易,请按照我给你的例子,正确地做。
我觉得......真的很蠢。笑。谢谢你的发现!!
1)还剩下两件事......现在它产生了一个错误代码 OrderClose 4108。我应该再贴一次代码吗?它与上面的代码相同,并进行了你所说的修正。不过它是按照规则进入和退出的。
2) 它没有像图中所示,在关闭多头头寸后立即进入空头。绿色的向下箭头显示了它应该做空的地方。它买入了一个,一旦收盘低于黄色MA,它就亏损平仓。在这里,它应该做空。我怎样才能做到这一点呢?
非常感谢GumRai。说实话,如果没有你的帮助,我不会达到这么近的地方。
这是个小变化,因为它正在检查 关闭一个没有的订单。
根据代码,没有理由在买入结束后立即打开卖出。
退出买入的条件与打开卖出的条件是不一样的。
请记住,由于你只检查蜡烛的开盘,Close[0]将是该蜡烛的第一个刻度的买入值。
这是个小变化,因为它正在检查关闭一个没有的订单。
根据代码,没有理由在买入结束后立即打开卖出。
退出买入的条件与打开卖出的条件是不一样的。
请记住,由于你只检查蜡烛的开盘情况,Close[0]将是该蜡烛的第一个刻度的买入值。
我的天哪!你成功了!再三感谢GumRai。你是最棒的。
现在不能向前测试,但一旦市场开放,我想我应该能够使用这个,只要我在演示上有不同的魔法#,就可以使用其他对。