下午好,这个机器人完全符合我的要求!我有个问题,怎样才能让新订单在每次成交时都插入,而不只是在新条形图出现时?我正在交易一种多次重复相同价格的资产,我可以每分钟做多笔交易。
Vladimir Karputov:
要在新蜡烛打开之前下新订单,您需要处理 isnewbar。
抱歉,该代码只在新蜡烛柱打开时有效。
sergiomt :
在这里,我的批次是每 1 个。如果我想让批次在每个订单中添加 +1 (1,2,3,4,5....),是否需要更改这一部分?
//----获取最小的体积变化步长
double volume_step=m_symbol.LotsStep();
int ratio=(int)MathRound(volume/volume_step);
if(MathAbs(ratio*volume_step-volume)>0.0000001)
这看起来像什么?
不对 要增加当前批次,需要知道上一次交易是什么。
如何限制未结订单的数量?
谢谢
sergiomt :
如何限制未结订单的数量?
谢谢
要限制 - 您需要计算所有仓位。
Expert Advisor 的作者无论如何都不会回答。如果有可能理解代码,至少有人能回答挂单限价指令是根据什么原则下达的。似乎是根据价格的滞后性,但如果可能的话,根据什么原则,在代码的什么地方可以进行调节。即使不做调整,也要了解它们是如何下达的,在什么条件下下达的。
Vladimir Gulakov #:
Expert Advisor 的作者无论如何都不会回答。如果有可能理解代码,至少有人能回答挂单限价指令是根据什么原则下达的。似乎是根据价格的滞后性,但如果可能的话,根据什么原则,在代码的什么地方可以进行调节。即使不做调整,也要了解它们是如何下达的,在什么条件下下达的。
Expert Advisor 的作者无论如何都不会回答。如果有可能理解代码,至少有人能回答挂单限价指令是根据什么原则下达的。似乎是根据价格的滞后性,但如果可能的话,根据什么原则,在代码的什么地方可以进行调节。即使不做调整,也要了解它们是如何下达的,在什么条件下下达的。
您好,弗拉基米尔!
在这个区块中,您可以根据需要调整/更改黄色标出的代码:
//--- MqlRates rates[]; ArraySetAsSeries(rates,true); int copied=CopyRates(m_symbol.Name(),Period(),1,1,rates); if(copied!=1) { PrevBars=0; return; } double H4=((((rates[0].high-rates[0].low)*1.1)/2)+rates[0].close); double H3= ((((rates[0].high-rates[0].low)*1.1)/4)+rates[0].close); double L3= (rates[0].close-((rates[0].high-rates[0].low)*1.1)/4); double L4= (rates[0].close-((rates[0].high-rates[0].low)*1.1)/2); double price=0.0; double sl=0.0; double tp=0.0; price=L4; sl=(InpStopLoss==0.0)?0.0:ExtStopLoss; tp=(InpTakeProfit==0.0)?0.0:ExtTakeProfit; m_trade.BuyLimit(InpLots,m_symbol.NormalizePrice(price),m_symbol.Name(), m_symbol.NormalizePrice(price-sl), m_symbol.NormalizePrice(price+tp)); price=H4; sl=(InpStopLoss==0.0)?0.0:ExtStopLoss; tp=(InpTakeProfit==0.0)?0.0:ExtTakeProfit; m_trade.SellLimit(InpLots,m_symbol.NormalizePrice(price),m_symbol.Name(), m_symbol.NormalizePrice(price+sl), m_symbol.NormalizePrice(price-tp));
敬上,弗拉基米尔。
Surefirething:
处理 Buy Limit 和 Sell Limit 挂单。 能够持仓尾随。
作者: Vladimir Karputov