文章 "基于 Bill Williams 所著《证券交易新空间》的 EA 交易程序" - 页 4

 
natyog:
和日志

遍历所有位置的算法不正确--位置是通过 SIMPLE 选择的:

void C_TS_BW::TrailingStop(void)
  {
   bool select=pos_info.Select(m_Symbol);

,因此有必要组织遍历所有位置,并按位置列表中的索引选择一个位置,类似于这样(这只是一个示例):

//+------------------------------------------------------------------+
//| 计算买入和卖出仓位|
//+------------------------------------------------------------------+
void CalculatePositions(int &count_buys,int &count_sells)
  {
   count_buys=0.0;
   count_sells=0.0;

   for(int i=PositionsTotal()-1;i>=0;i--)
      if(m_position.SelectByIndex(i)) // 通过索引选择位置,以便进一步访问其属性
         if(m_position.Symbol()==m_symbol.Name() && m_position.Magic()==m_magic)
           {
            if(m_position.PositionType()==POSITION_TYPE_BUY)
               count_buys++;

            if(m_position.PositionType()==POSITION_TYPE_SELL)
               count_sells++;
           }
//---
   return;
  }


位置修改 算法不正确 - 位置由 SIMBOLE 选择

bool  PositionModify( 
   const string  symbol,     // 符号 
   double        sl,         // 止损价格 
   double        tp          // 止盈价格 
   )

选择了位置,而该位置 本应由 ticket 选择:

bool  PositionModify( 
   const ulong   ticket,     // 位置票 
   double        sl,         // 止损价格 
   double        tp          // 止盈价格 
   )
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением...
 

等待作者修改。

 

在开发 Expert Advisor(智能交易系统)和设计这篇文章时,mt5 对冲账户甚至还未被提及。

因此,仓位选择 是通过符号实现的。

 
Alexey Klenov:

在开发 Expert Advisor(智能交易系统)和设计这篇文章时,mt5 对冲账户甚至还未被提及。

这就是为什么仓位选择 是通过符号来实现的。


对冲账户已有一年历史。因此,请进行我上面提到的所有更改。

 

为了让它在两种会计类型(股票和套期保值)上都能完全运行,有必要对 Expert Advisor 代码进行许多修改,而不仅仅是在带追踪止损的部分。

我会尽快完成。

 

测试期间, 在 2 个经纪商(BKS-Forex 和 Roboforex)的净额结算模式账户上(设置和测试参数附后)

红线上的移动止损(历史和操作 - 在附录中)在齿[5]上执行,与 Expert Advisor 代码中在齿[0]上的移动止损相反。

齿[0]。

但是,在Roboforex和BKS-Forex的模拟 账户上进行交易时,移动止损仍然在当前条的齿上执行。

但在 BKS-Forex真实 账户上交易时,止损再次 "进入 "齿[5]。

不应该是这样的。

 

我编译了代码并尝试在测试仪中使用,但没有任何操作。我应该修改哪些参数?谢谢。

 
拖网是如何工作的?止损 红线上的鳄鱼是拖网(牙齿)吗?
 
natyog:

测试期间, 在 2 个经纪商(BKS-Forex 和 Roboforex)的净额结算模式账户上(设置和测试参数附后)

红线上的移动止损(历史和操作 - 在附录中)在齿[5]上执行,与 Expert Advisor 代码中在齿[0]上的移动止损相反。

齿[0]。

然而,在Roboforex和BKS-Forex的模拟 账户上进行交易时,移动止损仍然在当前条形图的齿上执行。

但在BCS-Forex的真实 账户上交易时,止损再次 "进入 "齿[5]。

不应该是这样的。

这是正常的。从5条到0条的红线有一条直线--在齿[0]上拖曳。在您的两张极端图上 - 也有当前蜡烛图的收盘与红线的交叉 - 退出头寸。

 

下午好。

比方说,我动手更新了对冲账户的智能交易系统(Expert Advisor)。

我还做了一些改动

  • 当考虑到鳄鱼指标上的趋势时,5 bars trall 分析只有 AO 而没有 AC(这样似乎效果更好)。
  • 鳄鱼指标使用设置中的移动参数初始化,以便在视觉测试 模式下更加清晰
  • 在禁用所有分形变体的情况下,可能会出现拖网触发的情况,趋势上的新入口可能已经在分形上被价格提前 "取消"--我消除了这种情况。
我请所有无动于衷的人检查一下结果并提出意见。
附加的文件: