発明者の定量化模擬レベル回測メカニズム説明

作者: リン・ハーン小さな夢, 作成日: 2017-02-07 13:04:57, 更新日: 2023-09-07 17:49:15

発明者の定量化模擬レベル回測メカニズム説明


  • 1 復習構造

    発明者による量化回測の内策は,完全な制御プロセスであり,プログラムは一定の周波数で継続的に相談する. 各市場,取引APIが返したデータは,実際の実行時の状況を模倣する呼び出しのタイミングにも準拠する. onTickレベルに属し,他の回測システムのonBarレベルではない.より優れた支持は,Tickerデータに基づく戦略による回測操作 (より高い周波数での戦略) にある.

  • 2 模擬レベル再測と実盤レベル再測の違い

    • 模擬レベル再測

      模擬レベル回計は,回計システムの底層K線データに従って,あるアルゴリズムによって,与えられた底層K線Barの最高価格,最低価格,開盤価格,閉盤価格の数値構成の枠内で,このBarの時間配列に tickerデータ插入を模擬する.

    • リアル・ディスク・レベル再測

      リアルディスクレベルの回帰は,Barの時間列に真なティッカーレベルのデータがある. リアルディスクレベルの回帰は,ティッカーレベルのデータに基づく戦略にとって,より真に近いものである. リアルディスクレベルの復習,ティッカーは,模擬生成ではなく,実際の記録データである.

  • 3,模擬レベル回測メカニズム 底K線

    リアルディスクレベルの復習には底辺K線オプションがない (ティッカーのデータは全てリアルで,底辺K線を模倣して生成されない). アナログレベル回測では,K線データに基づいてアナログで生成されたティッカーである.このK線データは底線K線である.実用的な使用のアナログレベル回測では,底線K線周期は,戦略実行時にAPIが取得するK線の周期よりも小さいものでなければならない.そうでなければ,底線K線周期が大きいため,生成されたティッカーの数は不足し,APIが指定された周期のK線を呼び出すとき,データが実際に失われる.大周期K線回測を使用する場合は,適切な大底線K線周期を調整することができます.

  • 4 底辺のK線が ticker データを生成する方法

    底辺のK線は,MT4と同じような模擬ティッカーを生成する仕組みである.

    img img img img

  • 5 ティッカーデータを生成するアルゴリズムコード

    底辺のK線データをシミュレートする特定のアルゴリズム:

function recordsToTicks(period, num_digits, records) {
    if (records.length == 0) {
        return []
    }
    var ticks = []
    var steps = [0, 2, 4, 6, 10, 12, 16, 18, 23, 25, 27, 29]
    var pown = Math.pow(10, num_digits)

    function pushTick(t, price, vol) {
        ticks.push([Math.floor(t), Math.floor(price * pown) / pown, vol])
    }

    for (var i = 0; i < records.length; i++) {
        var T = records[i][0]
        var O = records[i][1]
        var H = records[i][2]
        var L = records[i][3]
        var C = records[i][4]
        var V = records[i][5]
        if (V > 1) {
            V = V - 1
        }
        if ((O == H) && (L == C) && (H == L)) {
            pushTick(T, O, V)
        } else if (((O == H) && (L == C)) || ((O == L) && (H == C))) {
            pushTick(T, O, V)
        } else if ((O == C) && ((O == L) || (O == H))) {
            pushTick(T, O, V / 2)
            pushTick(T + (period / 2), (O == L ? H : L), V / 2)
        } else if ((C == H) || (C == L)) {
            pushTick(T, O, V / 2)
            pushTick(T + (period * 0.382), (C == L ? H : L), V / 2)
        } else if ((O == H) || (O == L)) {
            pushTick(T, O, V / 2)
            pushTick(T + (period * 0.618), (O == L ? H : L), V / 2)
        } else {
            var dots = []
            var amount = V / 11
            pushTick(T, O, amount)
            if (C > O) {
                dots = [
                    O - (O - L) * 0.75,
                    O - (O - L) * 0.5,
                    L,
                    L + (H - L) / 3.0,
                    L + (H - L) * (4 / 15.0),
                    H - (H - L) / 3.0,
                    H - (H - L) * (6 / 15.0),
                    H,
                    H - (H - C) * 0.75,
                    H - (H - C) * 0.5,
                ]
            } else {
                dots = [
                    O + (H - O) * 0.75,
                    O + (H - O) * 0.5,
                    H,
                    H - (H - L) / 3.0,
                    H - (H - L) * (4 / 15.0),
                    H - (H - L) * (2 / 3.0),
                    H - (H - L) * (9 / 15.0),
                    L,
                    L + (C - L) * 0.75,
                    L + (C - L) * 0.5,
                ]
            }
            for (var j = 0; j < dots.length; j++) {
                pushTick(T + period * (steps[j + 1] / 30.0), dots[j], amount)
            }
        }
        pushTick(T + (period * 0.98), C, 1)
    }
    return ticks
}

したがって,模擬レベル回測を使用すると,時間配列の価格跳躍が発生します.


もっと

ブラッド・ミッチなぜ下影線が12つの点に模倣されるのか? 単に点の数を増やすためでしょうか?

スパダは量化されているアナログレベルで生成されるティックピットは実際の点と大きく異なります.

月の下の無限空契約再評価は爆発を模倣できるのか?

ファングベイ模擬の回帰周期では,1時間後に1日になります. なぜ2時間,4時間,6時間,12時間の周期がないのでしょうか?

小さな夢底辺のK線周期は1分使用し,データ粒子は非常に小さい. リアルディスクレベルでの再測定,または自社収集したデータを自社データソースで提供することもできます.

小さな夢復習システム自体には爆破ポジションのメカニズムはないが,戦略的には爆破ポジションの検出を追加することができる. 口座利用資産よりも大きい損失を保持する値は爆破ポジションである.

小さな夢復習システムは,比較的に一般的な周期を設定し,任意の周期が必要な場合は,K線を参照できます.