EA: Surefirething

 

Surefirething:

处理 Buy Limit 和 Sell Limit 挂单。 能够持仓尾随。


作者: Vladimir Karputov

 
下午好,这个机器人完全符合我的要求!我有个问题,怎样才能让新订单在每次成交时都插入,而不只是在新条形图出现时?我正在交易一种多次重复相同价格的资产,我可以每分钟做多笔交易。
 
Fabio_tec :
下午好,这个机器人完全符合我的要求!我有个问题,怎样才能让新订单在每次成交时都能插入,而不只是在新条形图出现时?我正在交易一种多次重复相同价格的资产,我可以每分钟做多笔交易。

抱歉,该代码只在新条形图 出现时有效。

 
Vladimir Karputov:

抱歉,该代码只在新蜡烛柱打开时有效。

要在新蜡烛打开之前下新订单,您需要处理 isnewbar。
 
sergiomt :
您好,下一交易栏是如何定义买入还是卖出的?

EA 使用挂单: 买入限价和卖出限价。

 
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 的作者无论如何都不会回答。如果有可能理解代码,至少有人能回答挂单限价指令是根据什么原则下达的。似乎是根据价格的滞后性,但如果可能的话,根据什么原则,在代码的什么地方可以进行调节。即使不做调整,也要了解它们是如何下达的,在什么条件下下达的。

您好,弗拉基米尔!

在这个区块中,您可以根据需要调整/更改黄色标出的代码:

//---
   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));

敬上,弗拉基米尔。

 
MrBrooklin #:

你好,弗拉基米尔

在这个区块中,您可以根据需要调整/更改黄色标注的代码:

敬上,弗拉基米尔。

谢谢,我会试试的