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

 
HideYourRichess :
Test metodolojisi hakkında birkaç kelime söyleyin. Dürüstçe bir dizi çubuk oluşturdunuz ve ardından harici/dahili olanları kontrol ettiniz mi, yoksa sadece SB numaralarını mı kullanıyorlardı?


Önceden hazırlanmış rastgele 3.000.000 bağımsız çubuk serim vardı. Oluşturma mekanizması basittir: eşit sayıda kene ile çubuklar halinde toplanan normal bir ikili yürüyüş +1 -1'dir. İşte tam C# kodu (bu arada, algoritma olağanüstü hızlı üretir):

 /// <summary>
         /// Возвращает случайно сгенерированную серию баров
         /// </summary>
         /// <param name="Сount"> Количество баров </param>
         /// <returns> </returns>
         public static Bars GetRandomBars( int Count)
        {
            Bars RandomBars = new Bars( "Random Bars" , BarScale.Minute, 1 );
            Random rnd = new Random();
             byte [] byte_array = new byte [ 375 ];
             int open = 100000 ;
             int close;
             int high;
             int low;
            DateTime first_data = DateTime.Now.AddMinutes(Count * (- 1 ));
             for ( int bar = 0 ; bar < Count; bar++)
            {
                close = open;
                high = open;
                low = open;
                rnd.NextBytes(byte_array);
                BitArray MyBit = new BitArray(byte_array);
                 for ( int k = 0 ; k < MyBit.Count; k++)
                {
                    close += MyBit[k] ? 1 : - 1 ;
                     if (close < high && close > low) continue ;
                     if (close > high) high = close;
                     else if (close < low) low = close;
                }
                RandomBars.Add(first_data, open, high, low, close, MyBit.Count);
                first_data = first_data.AddMinutes( 1 );
                open = close;
            }
            SaveBarsToCSV(RandomBars);
             return RandomBars;
        }

Ardından, ortaya çıkan grafikte aşağıdaki WL betiği başlatılır:

namespace WealthLab.Strategies
{
         public class MyStrategy : WealthScript
        {
                 protected override void Execute()
                {
                         int ExBar= 0 , EnBar= 0 ;
                         for ( int bar = 1 ; bar < Bars .Count; bar++)
                        {
                                 if (High[bar] < High[bar- 1 ] && Low[bar] > Low[bar- 1 ])
                                        EnBar++;
                                 if (High[bar] > High[bar- 1 ] && Low[bar] < Low[bar- 1 ])
                                        ExBar++;
                        }
                         double percent_ex = Math.Round(( double )ExBar /( double ) Bars .Count * 100.0 , 2 );
                         double percent_en = Math.Round(( double )EnBar /( double ) Bars .Count * 100.0 , 2 );
                        PrintDebug( "Расширение диапозона: " + ExBar + "(" + percent_ex + "%)" );
                        PrintDebug( "Сужение диапозона: " + EnBar + "(" + percent_en + "%)" );
                }
        }
}

Pareto dağılımının da basit olduğu ortaya çıktı. Sabit sayıda onay işareti yerine, 5m'lik bir EURUSD onay hacmi kullandım. Her çubuğun gerçek EURUSD'nin oynaklığını çok doğru bir şekilde taklit ettiği ortaya çıktı.
 
poruchik :
buraya yazdım :)
Senck-s. Zaten indirildi...
 
Roman100 :
Bir yönde veya başka bir yönde hareket olasılığı 50/50 olacaktır.

Test ettiniz mi yoksa tahmin mi ediyorsunuz? Soruyu tekrarlıyorum: Uçucu (dış) çubuğun yönüne göre daralan üçgeni kırdıktan sonra fiyat hareketinin yönünün istatistikleri nelerdir? Yönün ters yönde olması gerektiğini varsayıyorum.
 
C-4 :


Önceden hazırlanmış rastgele 3.000.000 bağımsız çubuk serim vardı. Oluşturma mekanizması basittir: eşit sayıda kene ile çubuklar halinde toplanan normal bir ikili yürüyüş +1 -1'dir. İşte tam C# kodu (bu arada, algoritma olağanüstü hızlı üretir):

Güzel, evet. Ve bu işlev WL'den nasıl başlatılır? Bu arada, beş mi, altı mı?
 
C-4 :

Pareto Dağılımı üzerinde Test:

Menzil genişletme: 69206 (%8.04)
Aralık Daraltma: 68867(8%)

Figase? Olasılıklar eşittir! Volatilite versiyonu onaylanmadı.

Gördüğünüz gibi, oldukça önemli farklılıklar gösteriyorlar.

bu, Pareto tipi dağılımın gerçek paranın etkilerini yansıtmadığı anlamına gelir. Öküzün gerçek olandan alındığı ve iç çubukların dış çubuklara oranının neredeyse gerçek çubuklardaki gibi elde edildiği senaryonun bir versiyonunu verdi.
 

Maalesef lisanssız 5 kullanıyorum. Gerçek algoritmalar Stock C# altında işlem görüyor ve böyle bir WL6 lisansına gerek yok. Ve araştırma için Wealth neredeyse mükemmel bir platform. İçine her şeyi yükleyebilirsiniz.

WL için kodlar genellikle içinde C# kodunun bulunduğu özel XML dosyalarıdır. Ancak hem C# dll hem de uygun geliştirme ortamlarını kullanabilirsiniz. Basit fikirleri doğrudan WL'de kontrol ederim, karmaşık olanları - VS2008'de dll biçiminde özel sınıflar yazarım ve bunları zaten XML sarmalayıcısında bağlarım. İşte tam bir çalışma örneği:

 using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using WealthLab;
using WealthLab.Indicators;
using WealthLab.MyIndicators;

namespace WealthLab.Strategies
{
         public class MyStrategy : WealthScript
        {
                 protected override void Execute()
                {
                        //Получить последовательность из 1000 случайных баров
                        Bars RandomBars = PriceGenerator.GetRandomBars( 1000 );
                        //Подготовить новое окно чарта.
                        ChartPane RandomPane = CreatePane( 50 , false, true );
                        //Синхронизировать по времени данные текущего графика с данными RandomBars
                        RandomBars = Synchronize(RandomBars);
                        //Отобразить в виде свечей график случайного блуждания под окном основного инструмента.
                        PlotSymbol(RandomPane, RandomBars, Color.Black, Color.Black);
                }
        }
}

PriceGenerator sınıfı ve GetRandomBars() yöntemi, WealthLab.MyIndicators ad alanıyla harici bir kitaplık dll'sinde tanımlanır. Bu kodun bir sonucu olarak, paralel olarak rastgele bir yürüyüşü gösteren grafikte başka bir grafik belirir. Aynı işlemi MT4/5'te 4 satır kod ile yapmayı deneyin :)

 
Avals :

bu, Pareto tipi dağılımın gerçek paranın etkilerini yansıtmadığı anlamına gelir. Öküzün gerçek olandan alındığı ve iç çubukların dış çubuklara oranının neredeyse gerçek çubuklardaki gibi elde edildiği senaryonun bir versiyonunu verdi.

Kazalım. Dağıtımı kontrol edeceğim.
 
gpwr :

Test ettiniz mi yoksa tahmin mi ediyorsunuz? Soruyu tekrarlıyorum: Uçucu (dış) çubuğun yönüne göre daralan üçgeni kırdıktan sonra fiyat hareketinin yönünün istatistikleri nelerdir? Yönün ters yönde olması gerektiğini varsayıyorum.

Dolaylı olarak buna tanıklık eden bazı hesaplamalar yapıldı.
Ama bu biraz farklı bir soru.)

Oran mutlak toplam değerde ise haklısınız, miktar olarak ise yanılıyorsunuz.

Bence öyle ... Ama ilginç olması için kontrol etmek daha iyidir.

 
poruchik :
Dima, bugün böyle bir şeyi hatırladım - ana mum - 1. içinde 4 mum
sonuçlar oldukça olumlu
istatistiklerine bakın, ancak yine de bir dizi s. 60
Tamam, sonra bakarım. Şimdi yeni bir konu için senaryolar yazıyorum - "Fiyat Hareketleri Modelleri"nin bir sonraki bölümü.
 
DmitriyN :

Çok faydalı bir konu. Dmitry, harikasın!
Neden: