识别图像(修辞学主题) - 页 9

 

事实上,正如Debugger 指出的,除了模式本身,模式完成的概率(或模式退出的概率)也很有趣。

模式的分类相当广泛,所以首先我们需要决定我们在这里要考虑哪些模式(波浪模式、烛台模式、形状,......)。

 

在我看来,最好是分析大多数市场参与者看到的模式,并以同样的方式进行解释。

例如,对于EWA,我认为有一些困难,因为有相当多的解释来确定不同级别的波的开始/结束。

就个人而言,我更喜欢 "精神上 "的烛台形态和数字(三角形的突破,等等),实际上每个人都能看到。但我认为同样的三角形的突破可以从EWA和烛台形态(例如,NR4)方面来确定。

 
DDFedor:

我有一个建议。也许有人愿意发布一个模式来进行剖析(描述)?一个简单的模式,但足以通过实例说明如何找到(定义)模式本身,如何找到模式的确认,如何实现信号()。


为什么主题标题中的关键词是 "修辞"

图片->图案->仅ZigZag的图案

并认识到一个片状线性图(矢量编码+模糊以上/更长),一个数组的四...较短的烛台和它们的相互位置(有限的组合数量,特别是相同的模糊)和 "布朗运动图像"(像一个黑色的正方形 - 这里是一个几何 图形)是三个完全不同的东西。

而事实上,"ZigZag图像 "是更...告知也不是一个事实。

和所有的原因 - 远程集体工作AKA天鹅(黑色),小龙虾和梭鱼(不在 "SS "上)。

;)

 

用 "之 "字形进行的模式识别没有考虑到上下文。正因为如此,会有噪音(1)--有些模式会是假的。

另外,有些图案将无法被发现,因为之字形可能标记了一个修正部分。修正区的人字形射线可能不会被图案搜索算法 所考虑。这也是噪音(2)。

在找到模式后有必要对入口点进行过滤,以过滤掉噪音(1)。该过滤器可以是,例如,各种指标...

为了消除噪音(2),有必要详细说明模式寻找算法。在这种情况下,也可能出现噪音(1)的变种。我们把这种变体称为噪音(3)。

噪声(1)可以通过尝试创建一个波浪分析来平滑,目前这是很主观的。

 
有什么统计数据或工作表明鱼在这里上岸了吗? 这个话题的作者可以理解为受委托工作,但他只是在挖,因为他有一把铲子 .......
 
DDFedor:

我有一个建议。也许有人愿意贴出一个模式供人剖析(描述)。一个简单的模式,但足以通过实例说明如何找到(定义)模式本身,如何找到模式的确认,如何实现信号。


一个简单的,我甚至可以说是原始的寻找双顶(底)的算法,不要踢我的代码,我只是在学习,我放出代码只是为了分享算法,知道有人是如何找到这些顶的,这很有趣。

extern double ExtDepth  = 12; // шаг зигзага
extern double Lot       = 1;  // лот
extern double Accuracy  = 95; // точность совпадения в %
extern int    SL_TP     = 2;  // соотношение SL к TP

double ZZ;

int start()
{
   double SL, TP, zz, zz0, zz1, zz2, zz3;
   bool BUY, SELL;
  
   for (int i=0; i<1000; i++) // ищем 4 точки зигзага
     {
      zz=iCustom(NULL, 0, "ZigZag", ExtDepth, 5, 3, 0, i);
      if (zz!=0 && zz!=EMPTY_VALUE) 
        {
         if (zz0==0)           {zz0=zz; continue;} 
         if (zz1==0 && zz0!=0) {zz1=zz; continue;}
         if (zz2==0 && zz1!=0) {zz2=zz; continue;} 
         if (zz3==0 && zz2!=0) {zz3=zz; break;}    
        }
     }
  
  if (zz0!=0 && ZZ!=zz2) // если образовался новый луч ЗЗ 
    {
     if (zz2>zz1 && zz2>zz3) // если ЗЗ образовал /\-фигуру то проверяем точность совпадения в %
         {
         if ((zz2-zz1)/(zz2-zz3)*100>Accuracy && (zz2-zz1)/(zz2-zz3)*100<200-Accuracy) 
           // например если Accuracy = 98 то разность ног ЗЗ должна попадать в диапозон от 98% до 102%
           BUY = true; // если двойное дно найдено покупаем
         } 
    
     // Тоже самое для двойной вершины
     if (zz2<zz1 && zz2<zz3 && (zz2-zz1)/(zz2-zz3)*100>Accuracy && (zz2-zz1)/(zz2-zz3)*100<200-Accuracy) SELL = true;
     // Как видим все условие образования двойной вершины умещается в одну строчку :))
    }
   if ( BUY ) // покупаем
    {
     SL = zz1-Point;           // стоп ставим на дно
     TP = Ask+(Ask-SL)*SL_TP;  // т.п. в SL_TP раз больше чем с.л.
     SL = NormalizeDouble(SL, Digits);
     TP = NormalizeDouble(TP, Digits);
     OrderSend( Symbol(), OP_BUY, Lot, Ask, 20, SL, TP );
     ZZ=zz2; // запомним значения ЗЗ чтобы больше сделок на этой ноге не открывать
    }
  if ( SELL ) // продаем
    {
     SL = zz1+(Ask-Bid)+Point; // стоп ставим на вершину
     TP = Bid-(SL-Bid)*SL_TP;  // т.п. в SL_TP раз больше чем с.л.
     SL = NormalizeDouble(SL, Digits);
     TP = NormalizeDouble(TP, Digits);
     OrderSend(Symbol(), OP_SELL, Lot, Bid, 20, SL, TP );
     ZZ=zz2; // запомним значения ЗЗ чтобы больше сделок на этой ноге не открывать
    }
   return(0);
}
附加的文件:
 
RomanS:


我甚至可以说是一种寻找双顶(底)的原始算法,不要踢我的代码,我只是在学习,我只是发布代码来分享算法,知道有人如何找到这些顶是很有趣的。


然后。:)

也就是说,你把你的片段插入到脚本中。在那里,你还插入了一个展望未来的 "教师",并通过运行历史,创建一个包含 "模式-教师信号 "的文件。之后,在Excel中,看看以什么样的频率出现在图案之后的信号。

而如果你列举你的模式,例如,DV(并将其形成一个函数),然后是 "一些印度人"(3I),等等,从文件中你可以提取数据,例如 "在买入信号之前有更频繁的DV "或反之,"在DV之后有更频繁的卖出信号"。

正是看到这些 "更经常",使我 ......冷却到..."识别"。

ZS。"我的老师版本"。

extern int     PredictLeadB    = 5;     //Число баров "предсказания"
extern int     LevelTrend     = 60;     //Выше этого - "сильное движение"
extern int     LevelFlat      = 30;     //Выше этого - "так себе бвижение", а ниже - на заборе
extern double  LevelFC        = 2.0;    //Грубо говря скорость/просадка (из кода ясно)
    
. . .

  {//Содержимое "Trade"
   int BarHigh  = iHighest(NULL, 0, MODE_HIGH, pPredictLead, Shift - pPredictLead);
   int BarLow   = iLowest(NULL, 0, MODE_LOW, pPredictLead, Shift - pPredictLead);
   double fHigh = iHigh(NULL, 0, BarHigh);
   double fLow  = iLow(NULL, 0, BarLow);
   double dLow  = (fLow - cClose) / Point;
   double dHigh = (fHigh - cClose) / Point;
   double fLevelFC;

   if(MathAbs(dHigh) > MathAbs(dLow))
    if(dLow == 0.00) 
     if(dHigh > 0)
      fLevelFC = 9999;
     else
      fLevelFC = -9999;
    else
     fLevelFC = dHigh / dLow;
   else
    if(dHigh == 0.00) 
     if(dLow > 0)
      fLevelFC = 9999;
     else
      fLevelFC = -9999;
    else
     fLevelFC = dLow / dHigh; 

   int signalTrade = 0;
   int fBar = Shift;
   if(dHigh > pLevelTrend && MathAbs(fLevelFC) > pLevelFC)
   {
    signalTrade = 2;
    fBar = BarHigh;
   }
   if(dLow < -1 * pLevelTrend && MathAbs(fLevelFC) > pLevelFC)
   {
    signalTrade = -2;
    fBar = BarLow;
   }
   if(dHigh > pLevelFlat && dLow > -1 * pLevelFlat && signalTrade == 0)
   {
    signalTrade = 1;
    fBar = BarHigh;
   }
   if(dLow < -1 * pLevelFlat && dHigh < pLevelFlat && signalTrade == 0)
   { 
    signalTrade = -1;
    fBar = BarLow;
   }
. . .
ФилеВрите(кодПаттерна, signalTrade);

在这种情况下(对于这样的 "老师"),通过对外部变量进行循环,(这是我在代码中的做法,所以变量有其他名称),将有可能不仅评估信号的 "预测 "事实,而且评估其一些定性特征。

主要要记住的是,"这个 "科学是假的(在一个叫 "xforex "的地方!!),"trisigmas "不会滚动;)。

SZY.Shift--这只是为了脚本--在过去Shift的条形图上,我们 "识别 "一个模式,在未来从它(Shift的条形图)--我们评估这个信号。

 
gip:
我通常在两天左右就能知道它是否成功。一个简单的口头描述就足以让你开始。

伟大的力量是不言而喻的。

 
hhohholl:

伟大的力量是不言而喻的


什么对什么?伟大与否与通过方法论确定模式表现有什么关系?

或者你认为简单的测试可以在任何方面与专家系统的处理相比较?

 
gip:


什么对什么?伟大与否与用方法确定模式的有效性有什么关系?

或者你认为简单的测试可以在任何方面比得上处理的方式。 专家系统?

瓦迪姆,你说的 "专家系统 "是什么意思,它能做什么?