结构规则。 学习如何构建方案,探索可能性、错误、解决方案等。 - 页 16

 
正如你可能期望的那样,每个人都有自己的结构和对事情应该如何的理解。))
 
tol64:
正如你可能期望的那样,每个人都有自己的结构和对事情应该如何的理解。))
正是如此,这就是为什么我提议放弃这种争论,因为无论如何我们都不会达成任何共识。我建议我们回到讨论大型项目 编程的一般原则。
 
C-4:
不,不,再不!!!!!!!!!!!!!!!!按照这个逻辑,在移动平均线上翻转的简单策略也是MM。为什么,原来是+1的合同,变成了-1。

:)

我的同事试图向你解释EA如何方便地进行结构划分(当然,模块名称是常规的)。 与其玩弄术语(这并不重要),不如尝试检查这种结构划分。 它是相当方便和富有成效的。

图片:箭头显示信息的移动。


 
C-4:
没错,所以我建议我们不要再为这个问题争论了,因为无论如何我们都不会达成共识。我建议我们回到讨论大型项目编程的一般原则。
似乎正在讨论这些原则之一,当适用于交易项目(对其创建的基本逻辑)。
 
MetaDriver:

...

卡廷科。 箭头显示了信息的流动。

这是看思想的一个更清晰的方式。即使没有文字,一切都很清楚。否则,这些无休止的胡说八道有时很难消化。))而在计划之后,你可以提出合格的问题。我还没有得到它们。))

 
MetaDriver:

:)

我的同事试图向你解释EA如何方便地进行结构划分(当然,模块名称是常规的)。 与其玩弄术语(这并不重要),不如尝试检查这种结构划分。 它是相当方便和富有成效的。

箭头显示了信息的流动。

是的,我可以看到这一点。只有复杂性没有被赋予任何地方,而是委托给了建议纠正者和市场驱动者。在这个方案下,纠正者必须挖掘TS的交易历史,并为它了解它的实际状态是什么。市场驱动力仍需正确识别策略的当前位置 并加以纠正,而在净值化中,这并不容易。
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Позиционирование графика
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Позиционирование графика
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Позиционирование графика - Документация по MQL5
 
tol64:

这是一个更清晰的思考问题的方式。即使没有文字,一切都很清楚。否则,这些无休止的胡说八道有时很难消化。))而在计划之后,你可以提出合格的问题。我还没有得到它们。))

这里有一个答案,你是否必须画一张图来理解任务 :)

MetaDriver

:)

(当然,模块名称是相对的。)与其玩弄术语(这并不重要),不如尝试检查这种结构划分。 它相当方便和高效。

箭头显示了信息的流动。


那里的拖网在哪里? 我认为是在MM 区,因为它需要一个方向性的预报器

还是仍在市场驱动力 中?因为你需要当前的姿势来拖动。

我将添加一个波动率预测器 和一个更多的块来纠正保护性止损,即保护性止损,因为(我认为)通过TP或SL退出对一个正常的TS来说是不可抗力的。

 
Urain:

这就是你是否需要画图来理解任务的答案 :)

拖网在哪里? 我想它是在MM 区块,不是吗?

毕竟,你需要当前的位置来进行拖网。

我将添加一个波动率预测器 和一个更多的块来纠正保护性止损,确切的说是保护性的,因为(我认为)通过TP或SL退出对于一个正常的TS来说是不可抗力的。

再过几个街区,战略就开始颠簸了......如果一开始就有绝对合理的问题,在哪个区块中描述战略的一部分,在另一个区块中描述哪一部分,那么这就意味着该计划不是明确的,这就导致了什么已知的问题。
 

现在我们已经开始画示意图了,这是我改进后的一个示意图。我希望它能比以前的更清晰。

福利待遇

  • 只有两个模块。
  • 这些联系是明确的、毫不含糊的。
  • 任何描述4种方法的类都可以成为交易策略
  • 所有规则的描述总是存储在一个地方:交易策略类。没有必要在整个项目中寻找一些 "波动性模块"。
  • 策略状态的数量是一个常数。根据TS的任何规则,它不能更大。不能有任何额外的模块,它们根本没有必要。
  • 所有的普通实体都可以而且必须在控制*的基类中进行描述。

*因此,"在交易时段结束时退出 "的规则,对所有策略都是通用的,可以在 基类中描述如果设置了这一规则,基类将在一天结束时调用平仓的支持方法,而不是再调用一次。而且,即使基本策略的规则中没有规定,该头寸也会在合适的时间被平仓。
 
C-4:

是的,我可以看到这一点。只有复杂性没有被赋予任何地方,而是委托给了建议调整者和市场驱动者。

这很好,我们的目标不是要消除客观困难,而是要创造新的困难。


根据这个方案,调整者必须挖掘TS的交易历史,并为它了解它的实际状态是什么。

我想我们已经发现,TS没有状态(记忆)。 纠正者也不需要挖掘历史。它是应你的要求故意插入计划的--没有它我也能做得很好......))


市场驱动力仍然要正确识别当前的 策略位置 并进行调整,在净值化中,这并不容易。

:)

我必须相信你的话吗?

double CMarketDriver::GetCurrentPos(string Sym)
  {
   if(!PosInfo.Select(Sym)) return 0; // DBL_MIN;
   double v=PosInfo.Volume();
   return(PosInfo.PositionType()==POSITION_TYPE_SELL) ? -v : v;
  }
bool CMarketDriver::Synhronize(const SymbolPos  &sp,int  &Err)
  {
   Err=0;
   bool res=true;
     {
      SymInfo.Name(sp.Sym);
      SymInfo.Refresh();
      double fp= TranslateLots(sp.Pos);  // Приводит рекомендованную в процентах от депо позу к рыночным лотам для данного инструмента
      double cp=GetCurrentPos(sp.Sym);
      double pos=fp-cp;   // вычисляет разницу текущей и рекомендованной позы
      if(pos>0.000001)
         res=Trade.Buy(NolrmalizeLots(pos),sp.Sym);  // "обналичивает разницу"
      if(pos<-0.000001)
         res=Trade.Sell(NolrmalizeLots(pos),sp.Sym);  // "обналичивает разницу"   
     }
   return res;
  }