これは,トレンドを特定するために,デュアルストキャスティック指標とボリューム重量移動平均の組み合わせを使用する戦略である.現在のトレンド方向を決定するために,短期と長期の2つのストキャスティック指標を組み合わせて,異なる期間の2つのストキャスティック指標を使用する.
戦略は主に次の部分を通じて傾向の識別を実施します.
短期間ストキャスティック指標を計算し,期間の長さの入力 ((30) とスムーズパラメータ2を計算する
長期ストキャスティック指標を計算し,期間の長さの入力 (90),スムーズパラメータ2
短期ストキャストと長期ストキャストを足し合わせると,合計ストキャストの曲線が得られる.
周期長入力で ts 曲線のボリューム重量移動平均を計算する ((30)
現在のTSL値と1年前のTSL値を比較します.TSLが上昇すると上昇傾向を示し,TSLが下がると下落傾向を示します.
ストキャスティック曲線の位置を組み合わせて,上昇または下落の信号を識別する
この戦略は,傾向の特定と過買い過売分析を組み合わせ,傾向の方向性をかなり信頼的に特定することができます.
双重ストキャスティックは,短期的および長期的過剰購入/過剰売却状況を反映し,いくつかの信号を見逃すのを避けることができます.
ボリューム重度の移動平均値は,いくつかの誤ったブレイクシグナルをフィルタリングすることができます.
ストキャスティック曲線の位置は,トレンド信号の信頼性を再確認します.
調整可能なパラメータは,異なる市場に適しています
わかりやすく,シンプルな論理,理解し,変更しやすい
この戦略には注意すべきリスクもあります.
ストーキャスティックは誤った信号を与え,より長い期間の指標でフィルタリングする必要があります
固定期間がすべての市場に合わない場合,ダイナミック最適化が役立ちます
純粋に技術指標に基づいた基本値が正確性を向上させる
誤った量データは結果に影響し,データの質を検証する必要がある
バックテスト履歴が不十分で,検証のためにより多くのデータが必要
低点の下の交差点で直接の長よりも,入口点を改善することができます.
概要すると,この戦略は二重ストカスティックスとVWMAを使用してトレンドを特定し,理論的にはトレンド逆転を信頼的に特定することができます.しかし,特定の市場のためにパラメータ調整が必要であり,誤った信号のリスクがあります.戦略の利益因子を改善するために,判断のために基礎,長期トレンドなどなどの他の要因を組み合わせることをお勧めします.論理は単純で明確で,必要に応じて修正できる量子取引のテンプレートを提供します.それは大きなアプリケーション価値を持っています.
/*backtest start: 2022-10-19 00:00:00 end: 2023-10-25 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="Trend Finder V2", shorttitle="TFV2", format=format.price, precision=2, overlay = true) //----------Indicator------------// periodK = input(30) periodD = 3 smoothK = 2 periodK_two = input(90) periodD_two = 3 smoothK_two = 2 k = sma(stoch(close, high, low, periodK), smoothK) d = sma(k, periodD) k_two = sma(stoch(close, high, low, periodK_two), smoothK_two) d_two = sma(k, periodD_two) ts = k + k_two tsl = vwma(ts, input(30, title = "VWMA Length")) //--------Label parameter--------// up_label = tsl[1] < 100 and tsl > 100 ? 1 : 0 down_label = tsl[1] > 100 and tsl < 100 ? 1 : 0 //----------Color Code-----------// //tsl_col = tsl > 100 and tsl > tsl[1] ? color.aqua : tsl > 100 and tsl < tsl[1] ? color.green : tsl < 100 and tsl > tsl[1] ? color.maroon : tsl < 100 and tsl < tsl[1] ? color.red : color.silver //tsl_col = tsl > 100 and ts < 100 and ts > ts[1] ? color.aqua : tsl > 100 and ts > 100 and (ts > ts[1] or ts < ts[1]) ? color.green : tsl < 100 and ts > 100 and ts < ts[1] ? color.red : tsl < 100 and ts < 100 and (ts < ts[1] or ts > ts[1]) ? color.maroon : color.purple tsl_col = ts > ts[1] and tsl > tsl[1] ? color.lime : ts < ts[1] and tsl < tsl[1] ? color.red : color.yellow ts_col = (tsl_col == color.lime or tsl_col == color.maroon) and (k>k[1] and k < 30) ? color.lime : (tsl_col == color.green or tsl_col == color.red) and (k < k[1] and k > 70) ? color.red : color.silver //-------------Plots-------------// buy = tsl_col[1] == color.yellow and tsl_col == color.lime ? 1 : 0 sell = tsl_col[1] == color.yellow and tsl_col == color.red ? -1 : 0 plotcandle(open,high,low,close, color=tsl_col) strategy.entry("Long", strategy.long,when=buy==1) strategy.close("Long", when=sell==-1)