EA: 期货投资组合控制移仓

 

期货投资组合控制移仓:

一款用于莫斯科证券所 FORTS 市场的投资组合 EA。


作者: Sergey Chalyshev

 

我在现实生活中进行了检查,把它放在图表上,它打开了一个仓位,然后更改了时间,使其超过当前符号的到期时间,机器人关闭了仓位,并在另一个地址上又打开了仓位。

一切正常...但有一个缺点,机器人平仓后,其所在的图表仍然是旧的,如果在新的期货上开仓时,交易工具本身也发生了变化,这样就不必手动将机器人移动到新的期货上了。

 

我添加了一行

//+------------------------------------------------------------------+
void CheckPos(string sym, string & TradeFutures, double lot)
  {
   if(SymbolInfoInteger(TradeFutures,SYMBOL_EXPIRATION_TIME)-TimeCurrent()<hours_before_expiration*60*60)
     {
      trade.PositionClose(TradeFutures);
         Sleep(3000);
      SymbolSelect(TradeFutures,false);
      TradeFutures=NextFutures(sym);
     }
   if(!PositionSelect(TradeFutures))
     {
      if(lot>0) trade.Buy(lot,TradeFutures);
      if(lot<0) trade.Sell(-lot,TradeFutures);
      ChartSetSymbolPeriod(0,TradeFutures,PERIOD_CURRENT);
         Sleep(3000);
     }
  }
//+------------------------------------------------------------------+

一切切换正常。

感谢您提供的示例。

 
Konstantin Seredkin:

我加了一行

一切切换正常。

谢谢你的例子。

如果 Expert Advisor 交易多个工具,我认为切换图表没有意义。您可以把它粘在胶水上。

这只是个例子,具体情况由用户自己决定。

在实际交易中,我会扔掉Sleeps,正常检查订单执行情况。但我不想过多介绍这个例子的精髓,这是另一个话题。

 
Sergey Chalyshev:

如果 Expert Advisor 交易多个工具,我认为没有必要切换图表。可以将其放在胶水上。

这只是一个例子,具体情况由用户自己决定。

在实际交易中,我会扔掉 Sleeps,正常检查订单执行情况。但我不想过多讨论这个例子的本质,这是另一个话题。

我完全同意您的观点,但我需要一种算法,能在白天平仓,移除所有限价器,机器人切换到另一种期货,并改变交易时间表,然后在新的期货上以干净的单子开始新的交易。

好像我已经完成了所有这些,但有一个问题我不知道如何解决。

例如,添加

ChartSetSymbolPeriod(0,TradeFutures,PERIOD_CURRENT);

图表改变了,但如果我尝试在转换后点击时间框架,例如 M5 M30 等,机器人会在下一个跳转点返回改变期货图表的 TF。

我还计划在设置中强制选择交易品种,例如,我们选择石油(根据您的选择),但机器人被抛向 rts,当初始化时,图表变为 oil....我已经做了所有这些,但在到期时切换到另一种期货时出现了循环,机器人初始化时设置为 BR-5.18,然后随着图表的变化变为 6.18,在这里每个 tick 开始从 6.18 变为 5.18,然后返回....。

在这个问题上我还不是很强,我没有在数据库中找到此类工作的例子,也许是通过任何检查、标志等完成的,但我还没有想出如何去做。如果能帮我找到正确的方向,我将感激不尽,我想我不是唯一一个这样做的人...如果能看到 V2 的扩展示例就更好了,我想每个人都会同意我的观点,即每一个在 FORTS 上交易的机器人都应该默认嵌入这种过渡和更改交易时间表的算法,也许开发人员自己会将其添加到他们的库中。

 
亲爱的程序员

我正在莫斯科证券交易所的报纸上测试 DEMO,它在默认设置下运行得非常好。- 但我有一些疑问:

1 - 如何操作少于 3 份文件(例如 2 份),甚至多于 3 份文件?

2 - 能否设置为在其他国家的交易所进行交易?

感谢您的贡献和提供这款优秀的 EA。

感谢
P.Campozana