[注意 关闭] UmnickTrader自适应EA - 页 26

 
VictorArt:

2.我在这里主要是出于无聊和体育兴趣。

是不是因为同样的原因,你认为有人需要你的人作为一个明亮的个性或你的原始拟合算法?

3.你想理解--你必须用你的大脑,而不是参考 "全民扫盲"。

想再玩一次蛊惑人心的游戏吗?

Mathemat,请要求删除这条主题,因为它又是这样的冒犯性言论。

 
paukas:
我认为这位发明家同学只是在无礼。


我同意158%。同志 "不掌握答案"...:-)))

一个跛脚的树枝。
 
好吧,我提出动议,删除该分支。
 

对代码库进行了评论。正如你所看到的,它只是用亏损后的翻转作为 "市场 "功能。

整个要点就在强调的那块。

   double resultTransaction=AccountEquity()-equityPrev; equityPrev=AccountEquity(); 
   if(isOpenPosition) // если позиция была, то добавляем её результат в массив
   {
      isOpenPosition=false;
      if(resultTransaction>0 )  // если последняя сделка прибыльная
      {
         arrayProfit[currentIndex]=maxProfit-spred*3; //  задали значение будущего тейкпрофита
                                                      // в зависимости от ВОЗМОЖНОГО  достигнутого профита 
         arrayLoss[currentIndex]=StopBase+spred*7; // задали начальное значение размера стопа
      }
      else  // последняя сделка убыточная
      {
         arrayProfit[currentIndex]=StopBase-spred*3; //  задали значение требуемого тейкпрофита
         arrayLoss[currentIndex]=drawDown+spred*7; // задали значение будущего стопа
                                                   // в зависимости от ВОЗМОЖНОГО  убытка по истории
         currentBuySell=-currentBuySell; // изменяем направление сделок
      }
      if(currentIndex+1<8) currentIndex=currentIndex+1; else currentIndex=0; // увеличили счетчик сделок
   }
   // вычисляем лимиты и стопы
   sumProfit=0.; sumLoss=0.;
   for(i=0; i<8; i++)
   {
      sumProfit=sumProfit+arrayProfit[i]; // суммируем профиты
      sumLoss=sumLoss+arrayLoss[i]; // суммируем убытки
   }
   if(sumProfit>StopBase/2) limit=sumProfit/8; // ограничиваем размер профита, если суммарный больше 
   if(sumLoss>StopBase/2) stop=sumLoss/8; // ограничиваем размер стопа, если суммарный больше

   // открываем новую позицию
   if(currentBuySell == 1 ) action = "Buy"; else action = "Sell";
   ActionPosition(action, currentIdOrder, absAmount, limit, stop );

换句话说,在这种情况下,我们将尽可能在一个方向上开立订单,不断改变TP/SL的大小(我们总是增加TP),这取决于MaxProfit/DrawDown参数,直到我们抓住一个损失(在一个损失,我们增加SL)。

两个MaxProfit/DrawDown参数从最后一个订单打开的那一刻开始计算(适应)市场,直到关闭,因此订单的止损 被设置为之前可能的利润和损失的最大值。
在功能上。

空白 CalcDrawDown( 字符串 idSignal )

同时,我们移动7个价位的SL,并关闭3个价位的TP(如确定)。


吉兹。这里有什么可讨论的呢?

我的理解是,所有的歧路工程(乘法)都是不同的链条变化。何时翻转等。

你可以用这种方式来适应任何东西的市场。

 
sergeev:

对代码库进行了评论。正如你所看到的,它只是用亏损后的翻转作为 "市场 "功能。

整个要点就在强调的那块。

换句话说,在这种情况下,我们将在一个方向上一路开单,不断减少TP大小,增加SL大小,直到我们抓到一个损失。


Victor,这里的适应性是什么?
 
LeoV:

维克多,适应性的意义何在?
我已经更新了我的帖子,我写得更详细了
 
sergeev: 我已经更新了我的帖子,包括更多细节

好吧,那么适合SL和TA算不算是适应性?
 
LeoV:

好吧,那么适合SL和TA算不算是适应性?
事实证明,它确实如此。新的订单将以更 "正确 "的止损点开启。
 
Mathemat:

维克多,你自己写道,OTT的本质是使 "自身功能 "与 "市场功能 "同步。

什么是,是一种市场功能?

一个市场函数是一个价格序列,即一个价格图表。

列昂尼德问的是某种 "市场公式",也就是说,他似乎指的是某种数学公式,出于某种原因用来计算什么。总之,没有 "市场公式" - 我不使用这个词。

 
Mathemat:

维克多,你自己写道,OTT的本质是使 "自身功能 "与 "市场功能 "同步。

什么是市场功能?

还有,顺便问一下,你的 "特征函数 "是用什么变量或函数写的?


我在上面已经回答过了。自适应EA中使用的专有函数是最原始的--它被写成一个算法(有两个代码变体),而不是在一个变量或一个数组或其他什么地方。