Fiyat Hareketi Modelleri: Bölüm 1. Fiyat Yönelimi - sayfa 8

 
tara :


Yapılacak ilk şey, kanalın ne olduğuna karar vermektir. Ayrıca - her şey basit :)


Kodda anladığım kadarıyla başlangıç ve son barı ve fiyat eğimini belirliyoruz ve bu eğimden maksimum uzaklıktaki fiyatları arıyoruz. Bu elbette en kolay seçenektir. Benim tanımıma göre, fiyatın en az 3 kez dokunduğu (geçmeden) düz bir çizgi bulunabiliyorsa bir kanal vardır. Neden tam olarak 3 kez? Çünkü 2 dokunuş önemli değil (her zaman herhangi bir 2 noktadan düz bir çizgi çizebilirsiniz). Bu çizgi destek (fiyat artışı) veya direnç (fiyat düşüşü) olabilir. Eğim herhangi bir şey olabilir.
 
// Поиск ближайшей точки пробоя линии
void fBreakPoint( string Name                 // Имя пробоя
                , int Bar1, double Price1       // Начать поиск
                , double Speed                 // Наклон линии
                , int Bar2                     // Закончить поиск
                , int & Bar, double & Price) {   // Пробой линии
   Bar=LastBar- 1 ;
   Price= 0 ;
   datetime Time1=Time[Bar1],
            Time2=Time[Bar2];
   if ( Bar1<LastBar || Bar2<LastBar || Price1<Zero ) {
       if ( РежимОтладки ) Print ( "***   " +Name+ " - параметры пробоя: "
                    + DoubleToStr (Price1, Digits )+ " (" +Bar1+ "/" + TimeToStr (Time1)
                                            + ")...(" +Bar2+ "/" + TimeToStr (Time2)+ ")" );
       return ;
   }
   int Step;
   double H, L, P;
   if ( Bar2>Bar1 ) Step= 1 ; else Step=- 1 ;
   if ( High[Bar1]-Price1>Zero
    && Price1-Low[Bar1]>Zero ) {             // Первый бар
      Bar=Bar1;
      Price=Price1;
       return ;
   }
   while ( Bar1!=Bar2 ) {
      H=High[Bar1];                           // Предыдущий бар
      L=Low[Bar1];
      P=Price1;
      Price1-=Step*Speed;                     // Текущий бар
      Bar1+=Step;
       if ( ( High[Bar1]-Price1>Zero && P-L>Zero )
       || ( Price1-Low[Bar1]> Zero && H-P>Zero ) ) {
         Bar=Bar1;
         Price=Price1;
         return ;
   }  }
   return ;
}

Kanalın başlangıç ve bitişinin belirlenmesi:

 
gpwr :

Kodda anladığım kadarıyla başlangıç ve son barı ve fiyat eğimini belirliyoruz ve bu eğimden maksimum uzaklıktaki fiyatları arıyoruz. Bu elbette en kolay seçenektir. Benim tanımıma göre, fiyatın en az 3 kez dokunduğu (geçmeden) düz bir çizgi bulunabiliyorsa bir kanal vardır. Neden tam olarak 3 kez? Çünkü 2 dokunuş önemli değil (her zaman herhangi bir 2 noktadan düz bir çizgi çizebilirsiniz). Bu çizgi destek (fiyat artışı) veya direnç (fiyat düşüşü) olabilir. Eğim herhangi bir şey olabilir.

Kalıplar söz konusu olduğunda belirli sayıları sevmiyorum.

Ana aracım teğetler. Bizim durumumuzda sadece iki puan elde edildi :(

 
Uyku gitti. gece yarısını çoktan geçti :)
 
alsu :

Büyük olasılıkla olmayacak. Termodinamiğin ikinci yasası bize kapalı bir sistemin entropisinin azalamayacağını söyler. Ve bu, herhangi bir gerçek süreç için, zaman içinde ileri ve geri yönler arasında daima bir dengesizlik gözlemlememiz gerektiği anlamına gelir.

Pratik açıdan, ikinci yasaya biraz farklı bir şekilde bakabilirsiniz: eğer zaman içinde belirli bir noktada (örneğin, bu durumda olduğu gibi bir artış gördüğümüzde) entropideki bir düşüşü hala sabitlersek, o zaman bu şu anlama gelir: sistemin dış etkiye maruz kalması. Hangi yönde mümkün olduğunca çabuk öğrenebileceğiz - bir ödül alacağız)


oynaklık etkileri olmayan bir seri oluşturursanız rastgele olacaktır. Ve volatiliteyi korurken gerçek seriden rastgele bir seri alırsanız, orijinal seri ile aynı olacaktır. Onlar. 0,5 olasılığı olan her çubuk için onu değiştirmeden bırakırız veya aynalarız.
 
Avals :

oynaklık etkileri olmayan bir seri oluşturursanız rastgele olacaktır. Ve volatiliteyi korurken gerçek seriden rastgele bir seri alırsanız, orijinal seri ile aynı olacaktır. Onlar. 0,5 olasılığı olan her çubuk için onu değiştirmeden bırakırız veya aynalarız.


ilk gönderideki komut dosyasını, rastgele alıntılarla hesaplayacak şekilde düzeltti (0.5 olasılıkla çubuğun ayna görüntüsü). Ayrıca, dahili ve harici sayıların oranı 1'den büyüktür, ancak gerçek çubuklardakinden tutarlı bir şekilde daha azdır.

Belki senaryoda bir hata yaptım:

 // Скрипт для подсчёта доли внешних и внутренних бар //
#property  copyright "Copyright © Svinotavr-2000"
#property  link       "DmitriyN"

int start()
 {
   MathSrand ( TimeLocal ());
   double n;                 // Количество бар всего, шт
   double KolVneshBar;       // Количество внешних бар, шт
   double KolVnutrBar;       // Количество внутренних бар, шт
   double ProcentVneshBar;   // Процент внешних бар, %
   double ProcentVnutrBar;   // Процент внутренних бар, %
   double OtnoshVnutKVnesh; // Отношение числа внутренних бар к числу внешних бар, раз
   double H,L,pH,pL;
   // Берём число бар на единицу меньшее, чем всего
   n= Bars - 1 ; 
   double lastCl=Close[ Bars ];
   // Цикл по всем барам
         for ( int j = n; j > 0 ; j--)
        {      
               int rnd= MathRand ();
               if (rnd>= 16384 ) bool zerk=true; else zerk=false;
              pH=H;
              pL=L;
               if (!zerk){
                H=lastCl+(High[j]-Close[j+ 1 ]);
                L=lastCl+(Low[j]-Close[j+ 1 ]);
                lastCl=lastCl+(Close[j]-Close[j+ 1 ]);
              } else {
                H=lastCl-(Low[j]-Close[j+ 1 ]);
                L=lastCl-(High[j]-Close[j+ 1 ]);
                lastCl=lastCl-(Close[j]-Close[j+ 1 ]);
              }
               // Считаем количество внутренних бар
               if ((H < pH) && (L > pL))
               {
               KolVnutrBar=KolVnutrBar+ 1 ;
               }  
               // Считаем количество внешних бар               
               if ((H > pH) && (L < pL))
               {
               KolVneshBar=KolVneshBar+ 1 ;
               
               }      
         }
   // Считаем отношение числа внутренних бар к числу внешних бар
  OtnoshVnutKVnesh=KolVnutrBar/KolVneshBar;
   // Переводим в проценты
  ProcentVneshBar=KolVneshBar/n* 100 ;
  ProcentVnutrBar=KolVnutrBar/n* 100 ;
   // Формируем строки для печати
   string S0 = "\n" + "=============== Результаты расчётов ===============" + "\n" + "\n" ;  
   string S1 = "Исследовано бар = " + DoubleToStr (n, 0 )+ " шт" + "\n" ; 
   string S2 = "Процент внешних бар = " + DoubleToStr (ProcentVneshBar, 3 ) + " %" + "\n" ; 
   string S3 = "Процент внутренних бар = " + DoubleToStr (ProcentVnutrBar, 3 )+ " %" + "\n" ;
   string S4 = "Отношение числа внутренних бар к числу внешних бар = " + DoubleToStr (OtnoshVnutKVnesh, 2 );
   // Выводим на экран     
   Comment (S0, S1, S2, S3, S4);          
 }
 

Bu konudaki tüm katılımcılar, yalnızca geçmişi görebileceğiniz aynı çan kulesindedir. Tüm iç ve dış çubuklarınızı geçin. Sorun geçmişteki barları tanımak değil, geleceği tahmin etmektir.

Barların türü hakkında bir yargıya varmak için yeterli malzemeye sahip olduğunuzda, ticari anlamda tren çoktan ayrılmış demektir. Sağ kenarın ötesinde görünen bir sonraki çubuğun, tanıdığınızla hiçbir ilgisi olmayan yeni bir kalıbın başlangıcı olması muhtemeldir.

Asıl soru, figürünüzün hangi öngörü özelliklerine sahip olduğudur. Örneğin, baş ve omuzlar tamamen tahmini bir rakamdır: sağ omuzdan geçerlerse daha ileri giderler (büyük olasılıkla ve bunun "daha olası" olasılığı bilinmemektedir).

Biz bu sitede sadece tahminle ilgileniyoruz - diğer her şey tamamen sporla ilgili.

 
faa1947 :

Bu konudaki tüm katılımcılar, yalnızca geçmişi görebileceğiniz aynı çan kulesindedir. Tüm iç ve dış çubuklarınızı geçin. Sorun geçmişteki barları tanımak değil, geleceği tahmin etmektir.

Barların türü hakkında bir yargıya varmak için yeterli malzemeye sahip olduğunuzda, ticari anlamda tren çoktan ayrılmış demektir. Sağ kenarın ötesinde görünen bir sonraki çubuğun, tanıdığınızla hiçbir ilgisi olmayan yeni bir kalıbın başlangıcı olması muhtemeldir.

Asıl soru, figürünüzün hangi öngörü özelliklerine sahip olduğudur. Örneğin, baş ve omuzlar tamamen tahmini bir rakamdır: sağ omuzdan geçerlerse daha ileri giderler (büyük olasılıkla ve bunun "daha olası" olasılığı bilinmemektedir).

Biz bu sitede sadece tahminle ilgileniyoruz - diğer her şey tamamen sporla ilgili.


Ve bundan sonra ne yapılacağından nasıl emin olabilirsiniz? dakika milyonlarca terminal?
 
faa1947 : Biz bu sitede sadece tahminle ilgileniyoruz - geri kalan her şey tamamen spor amaçlı.

O zaman Merkeze gitmelisin ... hangi hidrometeor ... tahminleri orada verilir ... veya burada:


hala büyük, ama peri masallarına inanıyor :-)

 

Sonuçları normal dağılımlı bir SB üzerinde test etti. Şaşırtıcı bir şekilde, bu durumda her iki sonucun da olasılıkları eşit oluyor! Analiz edilen serileri birkaç bağımsız alt döneme özel olarak böldü. Tüm alt dönemler, tek bir değere dikkat çekici bir yakınsama göstermektedir.

Menzil genişletme: 89274 (%9.55)
Menzil azaltma: 89494(%9.58)

Menzil uzantısı: 5416(%9.44)
Aralık Daraltma: 5550(%9.67)

Menzil uzantısı: 21299(%9.6)
Aralık Daraltma: 21362(%9.63)

Menzil genişletme: 12519(%9.55)
Aralık Daraltma: 12423(%9.48)

Menzil genişletme: 21098(%9.51)
Aralık Daraltma: 21193(%9.56)

Menzil uzantısı: 16863(%9.52)
Aralık Daraltma: 16974(%9.58)

Avals :

bu bir oynaklık modelidir: bir dalgalanmadan sonra yavaş bir düşüş ve bunun sonucunda birkaç iç çubuk oluşur; hızlı büyüme - genellikle bir çubuk için ve buna göre bir dış çubuk oluşur


Evet, geriye kalan tek açıklama, oynaklığın kararlı Pareto dağılımlarında kümelenmesidir. Ancak genel olarak, bu durumda zamanın oku hem ileri hem de geri yönlendirilebilir. Ne de olsa, keskin bir sıçramadan önce küçük bir menzile sahip bir çubuğun oluşmasını kim engeller - ama çok daha azı olduğu için bir şeyin önlediği açık?

Ve işte RTS pazarı için aynı algoritma:

Menzil genişletme: 10597( %7.67 )
Menzil azaltma: 18714( 13.55% )