ストキャスティクスクロスオーバーに基づく取引戦略


作成日: 2023-09-20 17:05:17 最終変更日: 2023-09-20 17:05:17
コピー: 0 クリック数: 640
1
フォロー
1617
フォロワー

概要

この戦略は,ランダムな指標のK線とD線の交差を利用して取引信号を生成し,典型的なランダムな指標の取引戦略に属している.

戦略原則

  1. 一定周期内のランダムな指標K線とD線を計算する.

  2. K線が下からD線を突破すると,買取信号が生成される.

  3. K線がD線を上から下から突破すると,出売信号が生成される.

  4. 戦略の効果をテストするために,反射の時間帯を設定できます.

  5. ランダムな指標の交差で取引し,戦略はシンプルで明確である.

優位分析

  1. ランダムな指標は,過剰買いと過剰売りに敏感である.

  2. K線とD線は取引信号を形成しやすい.

  3. 戦略の効果を裏付けるための反省テスト.

  4. ランダムな指標は計算しやすい.

  5. 簡単なコードで二次開発が容易です.

リスク分析

  1. ランダムな指数交差は偽信号を発生させる可能性があります.

  2. ストップダストは設定されていません.

  3. 傾向と整合の区別がつかない.

  4. データの適合偏差が検出されました.

  5. リアルタイムで実施した結果には違いがあるかもしれない.

最適化の方向

  1. 異なるパラメータをテストし,最適なパラメータを探します.

  2. 傾向判断指標のフィルタリングを増やす.

  3. 損害防止の仕組みを確立する

  4. 信号の検証のために他の要素を導入する.

  5. 測定データを処理して偏差を排除する.

  6. パラメータ配置を最適化するために実ディスクを模擬する.

要約する

この戦略は,簡単なランダムな指標の交差で取引し,容易に実現しますが,安定性を高めるためにさらに最適化する必要があります.パラメータ調整,リスク管理などの方法で強化され,信頼性の高い定量取引戦略に構築することができます.

ストラテジーソースコード
/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © utanico

//@version=4
strategy(title="Stochastic", overlay=true, shorttitle="Stoch")
periodK = input(35, title="K", minval=1)
periodD = input(21, title="D", minval=1)
smoothK = input(21, title="Smooth", minval=1)
startYear = input(type=input.integer, title = "開始年", defval = 2020)
startMonth = input(type=input.integer, title = "開始月", defval = 1)
startDay = input(type=input.integer, title = "開始日", defval = 1)
endYear = input(type=input.integer, title = "終了年", defval = 2030)
endMonth = input(type=input.integer, title = "終了月", defval = 12)
endDay = input(type=input.integer, title = "終了日", defval = 31)

//開始日時
test_start = timestamp(startYear, startMonth, startDay, 00, 00)
//終了日時
test_end   = timestamp(endYear, endMonth, endDay, 00, 00)
//テスト期間の指定
is_test = true

k = sma(stoch(close, high, low, periodK), smoothK)
d = sma(k, periodD)

if (is_test)
    if (k > d)
        strategy.entry("Stoch_LE", strategy.long, comment="Stoch_LE")
    //if (strategy.opentrades > 0 and k < d)
        //strategy.close("Stoch_LE",comment="CloseLONG")
    if (k < d)
        strategy.entry("Stoch_SE", strategy.short, comment="Stoch_SE")
    //if (strategy.opentrades < 0 and k > d)
        //strategy.close("Stoch_SE",comment="CloseShort")