Reconocer imágenes ( tema retórico ) - página 9

 

De hecho, como ha señalado Debugger, además de los propios patrones, es interesante la probabilidad de finalización del patrón (o la probabilidad de salida del patrón).

La clasificación de los patrones es bastante amplia, por lo que primero debemos decidir qué patrones queremos considerar aquí (patrones de onda, patrones de velas, formas, ...).

 

Me parece que es mejor analizar los patrones que la mayoría de los participantes del mercado ven e interpretan de la misma manera.

Es decir, con el EWA hay, en mi opinión, algunas dificultades, porque hay bastantes interpretaciones para determinar el principio/final de las ondas de los diferentes niveles.

Personalmente, prefiero los patrones y figuras de velas "en espíritu" (rupturas de triángulos, etc.), que prácticamente todo el mundo puede ver. Pero creo que la misma ruptura de un triángulo se puede determinar en términos de EWA y patrones de velas (por ejemplo, NR4).

 
DDFedor:

Tengo una sugerencia. tal vez alguien estaría dispuesto a publicar un patrón para su disección (descripción). uno simple, pero suficiente para mostrar con un ejemplo cómo encontrar (definir) el patrón en sí, cómo encontrar confirmaciones del patrón, cómo implementar la(s) señal(es). es posible que la consideración de tal ejemplo en una "transmisión en vivo" pueda mover a alguien a seguir adelante.


Por qué la palabra clave del título del tema es "retórica"

Imágenes->Patrones->Sólo ZigZag

Y reconociendo un gráfico lineal a trozos (codificación vectorial + difusa por encima/por debajo), una matriz de cuatro ... Los candelabros más cortos y su posición mutua (número limitado de combinaciones, especialmente con el mismo difuso) y la "imagen del movimiento browniano" (como un cuadrado negro - aquí era una figura geométrica ) son tres cosas completamente diferentes.

Y el hecho de que las "imágenes en zigzag" sean más ... informativo tampoco es un hecho.

Y todo por qué - trabajo colectivo a distancia AKA Swan (negro), langostas y lucios (no en "ss" )

;)

 

El reconocimiento de patrones con un zigzag no tiene en cuenta el contexto. Por ello, habrá ruido (1): algunos patrones serán falsos.

Además, algunos patrones no se encontrarán porque el zigzag puede marcar una sección de corrección. Es posible que el algoritmo de búsqueda de patrones no tenga en cuenta los rayos en zigzag en la zona de corrección. Esto también es ruido (2).

Es necesario filtrar el punto de entrada después de encontrar el patrón para filtrar el ruido (1). El filtro puede ser, por ejemplo, varios indicadores...

Para eliminar el ruido (2) es necesario elaborar el algoritmo de búsqueda de patrones. En este caso también puede darse una variante del ruido (1). Llamemos a esta variante ruido (3).

El ruido (1) se puede suavizar tratando de crear un análisis de ondas, que por el momento es muy subjetivo.

 
¿Existe alguna estadística o trabajo que demuestre que los peces se están hundiendo aquí? El autor de este tema, comprensiblemente, trabaja a comisión, pero sólo cava porque tiene una pala .......
 
DDFedor:

Tengo una sugerencia. tal vez alguien estaría dispuesto a publicar un patrón para su disección (descripción). uno simple, pero suficiente para mostrar con un ejemplo cómo encontrar (definir) el patrón en sí, cómo encontrar confirmaciones del patrón, cómo implementar la(s) señal(es). es posible que un ejemplo en vivo como este pueda mover a alguien a seguir adelante.


un algoritmo simple, incluso diría, primitivo para encontrar un doble tope (fondo) no me pateen por el código, sólo estoy aprendiendo, estoy poniendo el código sólo para compartir el algoritmo, es interesante saber cómo alguien encuentra estos topes.

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);
}
Archivos adjuntos:
 
RomanS:


Incluso diría que un algoritmo primitivo para encontrar un doble tope (fondo), no me culpen por el código, solo estoy aprendiendo, solo comparto el algoritmo, es interesante saber como alguien encuentra estos topes.


Y luego. :)

Es decir, insertas tu fragmento en el script. Allí también se inserta un "profesor" que mira hacia el futuro y, recorriendo el historial, crea un archivo que contiene "Patrón - Señal del profesor". Después de eso, en Excel, ver con qué frecuencia después de que el patrón de lo que las señales aparecieron.

Y si enumeras tu patrón, por ejemplo, DV (y lo formas como una función), luego "algunos indios" (3I), etc., del archivo puedes sacar datos como "hubo más frecuencia de DV antes de señales de compra" o viceversa, "hubo más frecuencia de señales de venta después de DV".

Fue ver estos "más a menudo" lo que me hizo ... ... enfriado hasta ... "reconocimiento".

ZS. "Mi versión del maestro".

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);

En ese caso (para tal "maestro"), haciendo bucles sobre variables externas, (que es lo que tenía en mi código, por lo que las variables tienen otros nombres), será posible evaluar no sólo el hecho de la "predicción" de la señal, sino también algunas de sus características cualitativas.

Lo principal es recordar que "esta" ciencia es falsa (en un sitio llamado "xforex"!!), que los "trisigmas" no ruedan ;)

SZY. Shift - es sólo para el guión - en la barra de Shift en el pasado "reconocemos" un patrón, y en el futuro de ella (la barra de Shift) - evaluamos la señal.

 
gip:
Suelo saber si tiene éxito o no en unos dos días. Una simple descripción verbal es suficiente para empezar.

La grandeza se sale de lo normal.

 
hhohholl:

La grandeza se sale de lo normal


¿Qué a qué? ¿Qué tiene que ver la grandeza con la determinación del rendimiento de los patrones por la metodología?

¿O cree que una simple prueba puede compararse de algún modo con el procesamiento en un sistema experto?

 
gip:


¿Qué a qué? ¿Qué tiene que ver la grandeza con determinar por método la eficacia de un patrón?

¿O cree que una simple prueba puede compararse de alguna manera con el procesamiento en ¿el sistema experto?

Vadim, ¿qué quieres decir con "sistema experto", qué puede hacer?