この戦略は,複数の指標を統合して大トレンドを判断し,指標の組み合わせシグナルの同方向の変化に基づいて取引決定を生成する. 戦略は,移動平均速度,STOCH指標とMACD指標を融合して,より包括的で堅牢なトレンド追跡機構を形成する.
この戦略は,以下の指標に基づいてトレンドを判断します.
移動平均速度:価格の変化速度を反映するトレンド指数.
STOCH指数: 超買い超売り地域判断 トレンド転換
MACD指数:両均線差はトレンドの変化を表している.
取引の具体的ルールは以下の通りです.
移動平均の速度を向上させると,より多くの信号が表示されます.
STOCH指数は超売り領域に入り,空売り信号を発している.
MACD平均線が交差しているので,多信号を表示します.
任意の2つの指標信号が同方向になると,対応した入場決定を行う.
標識が変化すると平仓退場。
この戦略は,トレンドの複数の要因を考慮し,シグナルフィルタリングの誤導要因を組み合わせることで,強力な確認力を持つ安定した取引システムを形成します.
単一の指標と比較して,この組み合わせ戦略は以下の利点があります.
総合的な判断により 精度が向上した.
組合せフィルターにより,誤った取引が少なくなります.
傾向と逆転の指標を組み合わせて,全体的な視点を提供している.
同方向信号の強い確認力により,偽突破を回避できる.
規則はシンプルで明確で 実行しやすい.
パラメータ調整の柔軟性,適応性の強さ
異なる時間周期が共通で,使用範囲は広い.
機械学習の訓練指標の重さを導入できます.
安定性や収益性は単一の指標より優れている.
この戦略には多くの利点がありますが,以下のリスクは考慮する必要があります.
複数の指標によって戦略の複雑性が高まります.
パラメータ最適化と重量設定が難しい.
複数の指標の間で矛盾するシグナルがあるかもしれない.
損失を完全に避けるには,いくつかの指標が遅れている.
単独の保有期間は不確定で,運の要素がある.
組合せ信号はトレンド取引の固有の監視を排除することはできません.
取引頻度が高い場合,取引手数料がかかる可能性があります.
収益引き戻し比率に注目してください.
分析の結果,以下のような改善が可能です.
異なる市場における様々な指標の効果を評価する.
パラメータの安定性テストを追加し,過度最適化を防止する.
標識重量を最適化して信号衝突を低減する.
ストップ・ロスト・ストップを設定して,重大な損失を回避する.
タイムエグジットを採用し,一方的な無目標保有を制御する.
取引頻度が取引費用に与える影響を評価する.
リスク指標の規制を導入する
マルチマーケットの強さをテストする.
戦略を継続的に検証し,時代遅れの失敗を防止する.
この戦略は,指数判断のトレンドを判断する複数の指数を統合して,安定した組み合わせの信号システムを形成します.しかし,いかなる戦略も,リスク指標を注意し,過適合を防ぐために,常に最適化と進歩が必要です.量化取引は,継続的な学習と再帰のプロセスです.
/*backtest
start: 2022-09-16 00:00:00
end: 2023-09-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// By TradeStation
//@version=5
strategy("Mov Avg Speed Strategy", overlay=true)
src = input(close, title="Source")
// MA Speed
avg_len = input.int(50, minval=1, title="Avg Length", group="MA Speed")
roc_len = input.int(1, minval=1, title="Rate of Change Length", group="MA Speed")
avg_roc_len = input.int(10, minval=1, title="Avg Rate of Change Length", group="MA Speed")
// Stochastic
stoch_len = input.int(14, minval=1, title="Stochastic Length", group="Stochastic")
smooth_k = input.int(3, minval=1, title="Stochastic Smooth K", group="Stochastic")
overbought = input.float(80, title="Stochastic Overbought", group="Stochastic")
oversold = input.float(20, title="Stochastic Oversold", group="Stochastic")
// MACD
fast_length = input(12, title="Fast Length", group="MACD")
slow_length = input(26, title="Slow Length", group="MACD")
macd_avg_length = input.int(9, title="MACD Avg Length", minval=1, group="MACD")
// MA Speed
avg = ta.sma(src, avg_len)
roc = ta.roc(avg, roc_len)
avg_roc = ta.sma(roc, avg_roc_len)
avg_roc_signal = avg_roc > 0 ? 1 : avg_roc < 0 ? -1 : 0
// Stochastic k
k = ta.sma(ta.stoch(close, high, low, stoch_len), smooth_k)
stochastic_signal = k <= oversold ? 1 : k >= overbought ? -1 : 0
// MACD
fast_ma = ta.ema(src, fast_length)
slow_ma = ta.ema(src, slow_length)
macd = fast_ma - slow_ma
macd_avg = ta.ema(macd, macd_avg_length)
macd_signal = macd_avg > macd_avg[1] ? 1 : macd_avg < macd_avg[1] ? -1 : 0
// set the signal couint
long_count = 0
short_count = 0
if macd_signal == 1
long_count += 1
else if macd_signal == -1
short_count += 1
if stochastic_signal == 1
long_count += 1
else if stochastic_signal == -1
short_count += 1
if avg_roc_signal == 1
long_count += 1
else if avg_roc_signal == -1
short_count += 1
if (long_count >= 2)
strategy.entry("Long", strategy.long)
if (short_count >= 2)
strategy.entry("Short", strategy.short)