資源の読み込みに... 荷物...

戦略をフォローする多指標の傾向

作者: リン・ハーンチャオチャン開催日:2024年4月28日 14:25:12
タグ:マックドマルチRSIATR

img

概要

Jancok Strategycs v3という戦略は,移動平均値 (MA),移動平均収束差 (MACD),相対強度指数 (RSI),平均真差 (ATR) をベースとした多指標トレンド戦略である.この戦略の主な考え方は,市場のトレンドを決定し,トレンドの方向で取引するための複数の指標の組み合わせを使用することである.さらに,この戦略は,リスクを管理し,リターンを最適化するために,動的なストップ・ロストとテイク・プロフィート方法,およびATRベースのリスク管理を採用している.

戦略原則

この戦略は,以下の4つの指標を用いて市場動向を決定しています.

  1. 移動平均 (MA): 短期 (9 期) と長期 (21 期) の移動平均を計算する.短期MAが長期MAを超えると上昇傾向を示し,短期MAが長期MAを下回ると下落傾向を示します.
  2. 移動平均収束分差 (MACD):MACD線と信号線を計算する.MACD線が信号線の上を横切ると上昇傾向を示し,MACD線が信号線下を横切ると下落傾向を示します.
  3. 相対強度指数 (RSI): 14 期間の RSI を計算する.RSI が 70 を超えた場合,市場は過買いされていることを示唆する.RSI が 30 未満である場合,市場は過売りされていることを示唆する.
  4. 平均実範囲 (ATR): 市場の変動を測定し,ストップ・ロストとテイク・プロフィートポイントを設定するために14期間のATRを計算します.

戦略の取引論理は次のとおりです

  • 短期MACが長期MACを超えると,MACD線がシグナル線を超えると,取引量は移動平均値より大きく,波動性は値を下回ると,ロングポジションを入力します.
  • 短期MACが長期MACを下回り,MACD線がシグナル線を下回り,取引量は移動平均値より大きく,波動性は値を下回ると,ショートポジションを入力します.
  • ストップ・ロスト・ポイントとテイク・プロフィート・ポイントは,ATRに基づいて動的に設定され,ストップ・ロスト・ポイントはATRの2倍,テイク・プロフィート・ポイントはATRの4倍です.
  • ATRをベースとしたオプションの遅延停止が使用可能で,遅延停止点はATRの2.5倍である.

戦略 の 利点

  1. 傾向を特定するための複数の指標の組み合わせで,傾向の識別の精度を向上させる.
  2. ダイナミックなストップ・ロストとテイク・プロフィートで,市場の波動性に基づいて適応的に調整し,リスクをより良く制御し,収益を最適化します.
  3. 低流動性や高流動性期間の取引を避けるため,ボリュームと波動性フィルターを導入し,誤った信号を減らす.
  4. 傾向が続く場合,より多くの利益を維持するためにオプションの遅延停止.

戦略リスク

  1. 市場の整合やトレンド逆転時に誤った信号が発生し,損失を引き起こす可能性があります.
  2. パラメータ設定は戦略のパフォーマンスに大きく影響し,異なる市場や資産に最適化する必要があります.
  3. パラメータを過度に最適化すると,過剰なフィットメントや実際の取引のパフォーマンスが低下する可能性があります.
  4. この戦略は,異常な市場変動やブラック・スワン・イベントで重大な損失を伴う可能性があります.

戦略の最適化方向

  1. ボリンジャーバンド,ストカスティックオシレーターなど,より多くの指標を導入し,傾向の識別の精度をさらに向上させる.
  2. 遺伝子アルゴリズムやグリッド検索などの方法を使って 最適なパラメータの組み合わせを見つけるために パラメータ選択を最適化します
  3. 戦略の適応性を向上させるために,異なる市場や資産に対して異なるパラメータと規則を設定する.
  4. ポジションサイズを組み込み,トレンド強さと口座リスクに基づいてポジションサイズを動的に調整する.
  5. 最大引き上げ制限を設定し,取引を停止したり,口座が最大引き上げに達したときのポジションサイズを減らしたりしてリスクを制御します.

概要

Jancok Strategycs v3は,複数の指標の組み合わせに基づいたトレンドフォロー戦略で,市場動向を決定するために移動平均値,MACD,RSI,ATRを使用し,リスクを制御し収益を最適化するためにダイナミックストップ・ロス,テイク・プロフィート,トレリング・ストップなどのリスク管理技術を使用する.この戦略の利点は,トレンド識別の高い精度,柔軟なリスク管理,強い適応性にある.しかし,誤った信号,パラメータ設定への敏感性,ブラック・スワンイベントなどの特定のリスクも伴う.将来,より多くの指標を導入し,パラメータ選択を最適化し,ポジションサイズを組み込み,最大引き下げ制限を設定することによって,戦略のパフォーマンスと安定性がさらに向上することができる.


/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © financialAccou42381

//@version=5
strategy("Jancok Strategycs v3", overlay=true, initial_capital=100, currency="USD")

// Inputs
short_ma_length = input.int(9, title="Short MA Length", minval=1)
long_ma_length = input.int(21, title="Long MA Length", minval=1)
atr_multiplier_for_sl = input.float(2, title="ATR Multiplier for Stop Loss", minval=1.0)
atr_multiplier_for_tp = input.float(4, title="ATR Multiplier for Take Profit", minval=1.0)
volume_ma_length = input.int(20, title="Volume MA Length", minval=1)
volatility_threshold = input.float(1.5, title="Volatility Threshold", minval=0.1, step=0.1)
use_trailing_stop = input.bool(false, title="Use Trailing Stop")
trailing_stop_atr_multiplier = input.float(2.5, title="Trailing Stop ATR Multiplier", minval=1.0)

// Calculating indicators
short_ma = ta.sma(close, short_ma_length)
long_ma = ta.sma(close, long_ma_length)
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
atr = ta.atr(14)
volume_ma = ta.sma(volume, volume_ma_length)
volatility = atr / close

// Plotting indicators
plot(short_ma, color=color.red)
plot(long_ma, color=color.blue)

// Defining entry conditions with added indicators and filters
long_condition = ta.crossover(short_ma, long_ma) and (macdLine > signalLine) and (volume > volume_ma) and (volatility < volatility_threshold)
short_condition = ta.crossunder(short_ma, long_ma) and (macdLine < signalLine) and (volume > volume_ma) and (volatility < volatility_threshold)

// Entering trades with dynamic stop loss and take profit based on ATR
if (long_condition)
    strategy.entry("Long", strategy.long)
    if use_trailing_stop
        strategy.exit("Exit Long", "Long", trail_points=atr * trailing_stop_atr_multiplier, trail_offset=atr * 0.5)
    else
        strategy.exit("Exit Long", "Long", loss=atr * atr_multiplier_for_sl, profit=atr * atr_multiplier_for_tp)

if (short_condition)
    strategy.entry("Short", strategy.short)
    if use_trailing_stop
        strategy.exit("Exit Short", "Short", trail_points=atr * trailing_stop_atr_multiplier, trail_offset=atr * 0.5)
    else
        strategy.exit("Exit Short", "Short", loss=atr * atr_multiplier_for_sl, profit=atr * atr_multiplier_for_tp)

関連性

もっと