値動きの規則性:その1。価格志向 - ページ 11

 
HideYourRichess:
テスト方法について一言お願いします。素直に一連のバーを生成して、外部/内部をチェックしたのか、それともSBの数字をそのまま使ったのか。 。


私はすでに、3,000,000本の独立したバーのランダムな系列をあらかじめ用意していたのです。生成の仕組みは簡単で、通常の+1-1バイナリーのワンダーを同数の刻みを持つバーに組み立てるものである。以下は、C#によるフルコードです(ちなみに、このアルゴリズムは驚異的に高速に生成されます)。

/// <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;
        }

次に、出来上がったチャートに対して、以下のWLスクリプトを実行します。

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 + "%)");
                }
        }
}

パレート分布も簡単に出てきた。固定ティック数ではなく、EURUSDの5mティックボリュームを 使いました。各バーは、実際のEURUSDのボラティリティをかなり正確に模倣していることがわかります。
 
poruchik:
ここに投稿しました:)
Senc.すでにダウンロード済み...
 
Roman100:
どちらかに動く可能性は五分五分でしょう。

テストしたのですか、それとも推測ですか?繰り返しになりますが、テーパリングトライアングルを抜けた後の値動きの方向について、ボラティリティの高い(外側の)バーの方向との関係で、どのような統計があるのでしょうか?方向は逆であるべきだと推測しています。
 
C-4:


私はすでに、3,000,000本の独立したバーのランダムな系列をあらかじめ用意していたのです。生成の仕組みは簡単で、通常の+1-1バイナリーのワンダーを同数の刻みを持つバーに組み立てるものである。以下は、C#のフルコードです(ちなみに、このアルゴリズムは驚異的に高速に生成されます)。

かっこいい、うん。そして、この機能はWLからどのように実行されるのでしょうか?ちなみに、5、6?
 
C-4:

Paretto型分布のテスト。

レンジの拡大:69206(8.04%)
レンジ狭窄:68867(8%)

数字?確率は等しい!揮発性のバージョンは未確認です。

ご覧のように、大きな違いがあります。

これは、パレート分布が実際の牛の影響を反映していないことを意味します。スクリプトは本物をベースにしており、内側のバーと外側のバーの比率は本物とほぼ同じである。
 

残念ながら私は非正規の5を使用しています。実アルゴリズムはStock C#で取引されており、WL6ライセンスは必要ありません。しかし、研究用にはWealthはほぼ理想的なプラットフォームです。好きなものを何でも積み込むことができる。

WLコード自体は、通常、C#のコードを含む特別なXMLファイルです。しかし、C# dllとそれに対応する開発環境を利用することもできます。単純なアイデアはWLで直接テストし、特殊なクラスはVS2008でDLLという形で書き、XMLラッパーの中でリンクさせます。ここでは、その完成例をご紹介します。

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クラスとそのGetRandomBars()メソッドはWealthLab.MyIndicators名前空間を持つ外部DLL ライブラリで定義されています。このコードの結果、チャート上に別のチャートが表示され、ランダムなランプが並列に表示されます。MT4/5で4行のコードで同じことをやってみる:)

 
Avals:

つまり、パレート型の分布は、実際の牛の影響を反映していないことになる。スクリプトのバージョンは、oxを本物から取ったもので、内側のバーと外側のバーの比率は、本物とほぼ同じものをあげました。

掘ります。配信を再確認してみる。
 
gpwr:

テストしたのですか、それとも推測ですか?質問を繰り返しますが、狭義の三角持ち合いを抜けた後の値動きの方向について、ボラティリティの高い(外側の)バーの方向との関係で、どのような統計があるのでしょうか?方向は逆であるべきだと推測しています。

それを間接的に示すような計算をしてみました。
しかし、これは質問の形が少し違う)

比率が絶対和であれば正しく、量的比率であれば間違っている。

そうですね...。しかし、興味本位で確認したほうがいい。

 
poruchik:
ディマ、今日こんなことを思い出したんだ。マスターキャンドル、 4本のキャンドルの中に1本のキャンドルがある。
その結果、かなり好評です
その統計を見てください。しかし、Pの範囲もあるので、60
わかりました、後で見てみます。今は新しいテーマ、「値動きの規則性」の次の部分のスクリプトを書いているところです。
 
DmitriyN:

非常に有用なテーマです。ドミトリー、よくやった!)