Reconnaître les images (thème rhétorique) - page 9

 

En effet, comme l'a souligné Debugger, en plus des motifs eux-mêmes, la probabilité d'achèvement du motif (ou la probabilité de sortie du motif) est intéressante.

La classification des schémas est assez large, nous devons donc d'abord décider quels schémas nous voulons considérer ici (schémas de vagues, schémas de chandeliers, formes, ...).

 

Il me semble qu'il est préférable d'analyser les schémas que la plupart des acteurs du marché voient et interprètent de la même manière.

Par exemple, avec l'EWA, il y a quelques difficultés, car il y a beaucoup d'interprétations pour déterminer le début/la fin des vagues de différents niveaux.

Personnellement, je préfère les figures et les modèles de chandeliers "dans l'esprit" (ruptures de triangles, etc.), que pratiquement tout le monde peut voir. Mais je pense que la même rupture d'un triangle peut être déterminée en termes d'EWA et de modèles de chandeliers (par exemple, NR4).

 
DDFedor:

J'ai une suggestion. peut-être que quelqu'un serait prêt à poster un modèle pour une dissection (description) ? un modèle simple, mais suffisant pour montrer par exemple comment trouver (définir) le modèle lui-même, comment trouver des confirmations du modèle, comment mettre en œuvre le(s) signal(s). il est possible que le fait de considérer un tel exemple dans une "émission en direct" puisse inciter quelqu'un à avancer.


Pourquoi le mot clé du titre du sujet est "rhétorique" ?

Images->Motifs->Zigzag uniquement

Et en reconnaissant un graphe linéaire par morceaux (codage vectoriel + fuzzy above/longer), un tableau de quatre ... Des chandeliers plus courts et leur position mutuelle (nombre limité de combinaisons, surtout avec le même flou) et "l'image du mouvement brownien" (comme un carré noir - ici, c'était une figure géométrique ) sont trois choses complètement différentes.

Et le fait que les "images en zigzag" sont plus ... informatif n'est pas non plus un fait.

Et tout pourquoi - travail collectif à distance AKA Swan (noir), écrevisses et brochet (pas sur "ss" )

;)

 

La reconnaissance des formes avec un zigzag ne tient pas compte du contexte. Pour cette raison, il y aura du bruit (1) - certains modèles seront faux.

De plus, certains motifs ne seront pas trouvés car le zigzag peut marquer une section de correction. Les rayons en zigzag dans la zone de correction peuvent ne pas être pris en compte par l'algorithme de recherche de motifs. Il s'agit également du bruit (2).

Il est nécessaire de filtrer le point d'entrée après avoir trouvé le modèle afin de filtrer le bruit (1). Le filtre peut être, par exemple, divers indicateurs...

Afin d'éliminer le bruit (2), il est nécessaire d'élaborer l'algorithme de recherche de motifs. Dans ce cas, une variante du bruit (1) peut également se produire. Appelons cette variante le bruit (3).

Le bruit (1) peut être lissé en essayant de créer une analyse des ondes, ce qui est pour l'instant très subjectif.

 
L'auteur de ce sujet travaille à la commission, ce qui est compréhensible, mais il creuse juste parce qu'il a une pelle. .......
 
DDFedor:

J'ai une suggestion. peut-être que quelqu'un serait prêt à poster un motif pour le disséquer (description) ? un motif simple, mais suffisant pour montrer par exemple comment trouver (définir) le motif lui-même, comment trouver les confirmations du motif, comment mettre en œuvre le(s) signal(s). il est possible qu'un exemple vivant comme celui-ci puisse inciter quelqu'un à aller de l'avant.


un algorithme simple, je dirais même primitif, pour trouver un double top (bottom) ne me donnez pas de coup de pied pour le code, je suis juste en train d'apprendre, je mets le code juste pour partager l'algorithme, il est intéressant de savoir comment quelqu'un trouve ces tops.

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


Je dirais même un algorithme primitif pour trouver un double top (bottom), ne me reprochez pas le code, je ne fais qu'apprendre, je partage juste l'algorithme, il est intéressant de savoir comment quelqu'un trouve ces tops.


Et puis. :)

C'est-à-dire que vous insérez votre fragment dans le script. Vous y insérez également un "professeur" qui regarde vers l'avenir et, en parcourant l'historique, vous créez un fichier contenant "Pattern - Signal du professeur". Après cela, dans Excel, voyez avec quelle fréquence après le modèle quels signaux sont apparus.

Et si vous énumérez votre modèle, par exemple, DV (et le formez comme une fonction), puis "certains Indiens" (3I), etc., vous pouvez tirer du fichier des données telles que "il y avait plus de DV fréquents avant les signaux d'achat" ou vice versa, "il y avait plus de signaux de vente fréquents après DV".

C'est le fait de les voir "plus souvent" qui m'a fait ... ... refroidi jusqu'à ... "reconnaissance".

ZS. "Ma version d'un professeur".

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

Dans ce cas (pour un tel "professeur"), en faisant des boucles sur des variables externes, (c'est ce que j'avais dans mon code, donc les variables ont d'autres noms), il sera possible d'évaluer non seulement le fait de "prédire" le signal, mais aussi certaines de ses caractéristiques qualitatives.

La principale chose à retenir est que "cette" science est fausse (dans un endroit appelé "xforex" !!!), que les "trisigmas" ne roulent pas ;)

SZY. Shift - c'est juste pour le script - sur la barre de Shift dans le passé nous "reconnaissons" un modèle, et dans le futur à partir de celui-ci (la barre de Shift) - nous évaluons le signal.

 
gip:
Je peux généralement dire si c'est réussi ou non en deux jours environ. Une simple description verbale suffit pour commencer.

La grandeur est hors normes.

 
hhohholl:

La grandeur est hors normes


De quoi à quoi ? Qu'est-ce que la grandeur a à voir avec la détermination des performances d'un modèle par la méthodologie ?

Ou pensez-vous que de simples tests peuvent en aucune façon être comparés au traitement dans un système expert ?

 
gip:


De quoi à quoi ? Qu'est-ce que la grandeur a à voir avec le fait de déterminer par méthode l'efficacité d'un modèle ?

Ou pensez-vous que de simples tests peuvent en aucune façon être comparés au traitement en le système expert ?

Vadim, qu'entendez-vous par "système expert", que peut-il faire ?