Görüntüleri tanıma (retorik tema) - sayfa 9

 

Gerçekten de, Debugger'ın belirttiği gibi, kalıpların kendilerine ek olarak, tamamlanma olasılıkları (veya kalıptan çıkma olasılıkları) ilginçtir.

Kalıpların sınıflandırılması oldukça geniştir, bu nedenle öncelikle burada hangi kalıpları ele alacağımıza karar vermelisiniz (dalga, şamdan, şekiller, ...).

 

Bana öyle geliyor ki, çoğu piyasa katılımcısının aynı şekilde gördüğü ve yorumladığı bu kalıpları (tipi) analiz için almak daha iyi.

Onlar. IMHO, EWA ile ilgili bazı problemler var, çünkü farklı seviyelerde dalgaların başlangıcını / sonunu belirlemenin birçok yorumu var.

Şahsen, neredeyse herkes tarafından görülen şamdan kalıplarına ve figürlerine (üçgenlerin kırılması vb.) "ruh olarak" daha yakınım. Her ne kadar, genel olarak, üçgenin aynı dökümü, bence, hem EWA hem de şamdan kalıpları (örneğin, NR4) açısından tanımlanabilir.

 
DDFedor :

bir teklif var. belki hazırlık (açıklama) için bir model göndermek isteyen biri var mı? iddiasız, ancak bir örnek üzerinde kalıbın kendisini bulmanın (tanımlamanın) yollarını, kalıbın onaylarını bulmanın yollarını, sinyal(ler)i uygulama yollarını ortaya çıkarmak için yeterli. "canlı" üzerine böyle bir örneğin ele alınmasının, birini ölü noktadan hareket etmeye sevk etmesi oldukça olasıdır.


Konu başlığındaki anahtar kelime neden "retorik"?

Desenler->Desenler->Sadece ZigZag

Ve parçalı bir doğrusal grafiğin tanınması (vektör kodlaması + bulanık daha yüksek/daha uzun), dört ... daha kısa mum dizisi ve bunların karşılıklı konumu (özellikle aynı bulanık ile sınırlı sayıda kombinasyon) ve "Brownian hareketli görüntü" ( siyah kare gibi - geometrik bir figür vardı) bunlar tamamen farklı üç şeydir.

Ve "ZigZag görüntülerin" daha çok bilgilendirici olduğu gerçeği de bir gerçek değil.

Ve tüm neden - uzaktan toplu çalışma AKA Swan (siyah), kanser ve turna ("sc" de değil)

;)

 

Bir zikzak kullanarak örüntü tanıma bağlamı hesaba katmaz. Bu nedenle gürültü (1) olacaktır - bazı desenler yanlış olacaktır.

Ayrıca, zikzak bir düzeltme alanını işaretleyebileceğinden bazı desenler bulunmayacaktır. Düzeltme alanındaki zikzak ışınları, model arama algoritması tarafından dikkate alınmayabilir. Bu da gürültüdür (2).

Gürültüyü (1) filtrelemek için kalıbı bulduktan sonra giriş noktasının filtrelenmesi gerekiyor. Filtre, örneğin çeşitli göstergeler olabilir...

Gürültüyü (2) ortadan kaldırmak için, desen aramak için bir algoritma derlerken karmaşık olmak gerekir. Bu durumda gürültü değişkeni (1) de oluşabilir. Bu seçeneğe gürültü (3) diyelim.

Gürültü (1), bir dalga analizi oluşturma girişimiyle düzeltilebilir ve bu şu anda büyük ölçüde özneldir.

 
Balıkların okula gittiğine dair herhangi bir istatistik veya çalışma var mı? Konunun yazarı anlaşılabilir, sipariş vermek için çalışıyor, ancak kürek olduğu için böyle kazıyor .......
 
DDFedor :

bir teklif var. belki hazırlık (açıklama) için bir model göndermek isteyen biri var mı? iddiasız, ancak bir örnek üzerinde kalıbın kendisini bulmanın (tanımlamanın) yollarını, kalıbın onaylarını bulmanın yollarını, sinyal(ler)i uygulama yollarını ortaya çıkarmak için yeterli. "canlı" üzerine böyle bir örneğin ele alınmasının, birini ölü noktadan hareket etmeye sevk etmesi oldukça olasıdır.


basit, hatta diyebilirim ki, kod için bir çift üst (alt) bulmak için ilkel bir algoritma, tekme atmayın, şu anda öğreniyorum, sadece algoritmayı paylaşmak için kodu gönderiyorum, birinin nasıl olduğunu bilmek ilginç bu zirveleri bulur.

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


basit, hatta diyebilirim ki, kod için bir çift tepe (alt) bulmak için ilkel bir algoritma, tekme atmayın, şu anda öğreniyorum, sadece algoritmayı paylaşmak için kodu gönderiyorum, birinin nasıl olduğunu bilmek ilginç bu zirveleri bulur.


Sıradaki ne. :)

Onlar. snippet'inizi komut dosyasına yapıştırın. Ayrıca orada geleceğe bakan bir "öğretmen" girersiniz ve geçmişin içinden geçerek "Örüntü -Öğretmenin İşareti"ni içeren bir dosya oluşturursunuz. Bundan sonra, Excel'de, modelden sonra hangi sinyallerin hangi sıklıkta göründüğünü görün.

Ve kalıbınızı, örneğin, DV olarak adlandırırsanız (ve bir işlev olarak biçimlendirirseniz), ardından “bazı Kızılderililer” (3I), vb. ya da tam tersi", Uzak Doğu'dan sonra daha fazla satış oldu.

Bunları "daha sık" gördüğümde ... "tanımaya" olan ilgimi kaybettim.

not. "Öğretmenim Versiyonu"

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

Bu durumda (böyle bir "öğretmen" için), harici değişkenler (kodda sahip olduğum, dolayısıyla değişkenlerin farklı adları var) üzerinde döngüler yaparak, yalnızca sinyali "tahmin etme" gerçeğini değerlendirmek mümkün olmayacaktır. değil, aynı zamanda niteliksel özelliklerinden bazıları.

Hatırlanması gereken en önemli şey, "bu" bilimin bunun için yanlış olduğu ("xforex" denen bir yerde !!!), "trisigmaların" çalışmadığıdır;)

not. Shift - bu sadece komut dosyası içindir - geçmişte Shift çubuğunda kalıbı "tanırız" ve gelecekte ondan (Shift çubuğu) sinyali değerlendiririz.

 
gip :
Genellikle başarılı olup olmadığını yaklaşık iki gün içinde belirleyebilirim. Başlamak için basit bir sözlü açıklama yeterli olacaktır.

Büyüklük devriliyor

 
hhohholl :

Büyüklük devriliyor


ne nedir? Büyüklüğün kalıp performansının tanımıyla ne ilgisi var?

Yoksa basit testin bir şekilde uzman bir sistemdeki işleme ile karşılaştırılabileceğini mi düşünüyorsunuz?

 
gip :


ne nedir? Büyüklüğün kalıp performansının tanımıyla ne ilgisi var?

Yoksa basit testin bir şekilde uzman bir sistemdeki işleme ile karşılaştırılabileceğini mi düşünüyorsunuz?

Vadim, "uzman sistem" ile ne demek istiyorsun, ne yapabilir?
Neden: