ダイナミックな再参入購入戦略


作成日: 2023-12-19 13:56:55 最終変更日: 2023-12-19 13:56:55
コピー: 0 クリック数: 643
1
フォロー
1621
フォロワー

ダイナミックな再参入購入戦略

概要

この戦略は,移動平均線が交差し,周期性商品通路指数 ((CCI) または周期性平均方向指数 ((ADX) に基づいて買い信号を生成する買取のみの取引システムである. 急速な移動平均線がゆっくりとした移動平均線を横断し,周期性CCIおよび/または周期性ADXが特定の条件を満たしたときに買い信号を生成する.

この戦略はまた,ダイナミックな再入場も許し,つまり,価格が再び3つの移動平均を突破した場合,新しい多頭ポジションを開くことができる.しかし,価格の閉じる価格が第3の移動平均を突破した場合,この戦略は多頭ポジションを平らにする.

戦略原則

スクリプトは,買取シグナルを生成する条件を定義する.それは有効な買取シグナルを判断するために2つの条件をチェックする:

  • 平均は移動する速さで,移動する速さで,移動する速さで移動します.
  • ユーザは,周期CCIまたは周期ADXのフィルターを使用することができます.

ダイナミックな再入場:3つの移動平均より高い価格で未開封の多頭ポジションがない場合は,新しい多頭ポジションを開きます.

退会条件:この戦略は,閉店価格が第3移動平均を下回ると,多頭ポジションを平らにする.

優位分析

この戦略の利点は以下の通りです.

  1. 複数の技術を用いた指標フィルタリングにより,誤信号を減らす
  2. ダイナミックな再入学メカニズムは,トレンドを最大限に捉えることができます.
  3. 余分な仕事をして 余分な仕事をしないこと

リスク分析

この戦略には以下のリスクもあります.

  1. リスクがあるでしょう.
  2. 複数の株主が長期にわたって保有する可能性があるため,ストップダウンを設定する必要があります.
  3. パラメータの設定を間違えた場合,取引が頻発する可能性があります.

対応方法:

  1. よりよいパラメータの組み合わせと技術指標の組み合わせによる波
  2. 合理的なストップを設定する
  3. パラメータを調整し,パラメータを安定させる

最適化の方向

この戦略は以下の点で最適化できます.

  1. 投資の機会を模索し,より多くの技術指標の組み合わせをテストする
  2. パラメータを最適化して,最適なパラメータの組み合わせを見つける
  3. 単一損失を抑えるための止損機構の増強
  4. ポジション管理を増やし,市場状況に応じてポジションを増やし,減少させる

要約する

このダイナミック再入場買取戦略は,購入のタイミングを判断する複数の技術指標を統合し,ダイナミック再入場設計を採用し,トレンドをリアルタイムで追跡することができる.ただし,空白がもたらす追加のリスクを回避するだけです.パラメータの最適化,ストップ・損失設定,およびポジション管理により,この戦略を實体取引で使用して,リスクを制御しながら,余分な利益を獲得することができます.

ストラテジーソースコード
/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Buy Only Strategy with Dynamic Re-Entry and Exit", overlay=true)

// Input Parameters
fast_length = input(20, title="Fast Moving Average Length")
slow_length = input(30, title="Slow Moving Average Length")
third_ma_length = input(100, title="Third Moving Average Length")
cci_period = input(14, title="CCI Period for Weekly CCI")
use_cci = input(true, title="Use CCI for Entry")
use_adx = input(true, title="Use ADX for Entry")
adx_length = input(14, title="ADX Length")
adx_threshold = input(25, title="ADX Threshold")

// Calculate Moving Averages
fast_ma = ta.sma(close, fast_length)
slow_ma = ta.sma(close, slow_length)
third_ma = ta.sma(close, third_ma_length)

// Weekly Commodity Channel Index (CCI) with user-defined period
weekly_cci = request.security(syminfo.tickerid, "W", ta.cci(close,  cci_period))

// Weekly Average Directional Index (ADX)
dirmov = hlc3
plus = ta.change(dirmov) > 0 ? ta.change(dirmov) : 0
minus = ta.change(dirmov) < 0 ? -ta.change(dirmov) : 0
trur = ta.rma(ta.tr, adx_length)
plusDI = ta.rma(plus, adx_length) / trur * 100
minusDI = ta.rma(minus, adx_length) / trur * 100
sum = plusDI + minusDI
DX = sum == 0 ? 0 : math.abs(plusDI - minusDI) / sum * 100
ADX = ta.rma(DX, adx_length)

// Entry Conditions (Buy Only and Weekly CCI > 100 and/or Weekly ADX > 25)
cci_condition = use_cci ? (weekly_cci > 100) : false
adx_condition = use_adx ? (ADX > adx_threshold) : false
long_condition = ta.crossover(fast_ma, slow_ma) and (cci_condition or adx_condition)

// Exit Condition and Dynamic Re-Entry
exit_condition = close < third_ma
re_entry_condition = close > fast_ma and close > slow_ma and close > third_ma and weekly_cci > 100

// Entry and Exit Signals
strategy.entry("Long", strategy.long, when=long_condition)
strategy.close("Long", when=exit_condition)

// Dynamic Re-Entry and Exit
if strategy.position_size == 0 and re_entry_condition
    strategy.entry("Long", strategy.long)

if strategy.position_size > 0 and close < third_ma
    strategy.close("Long")

// Plot Weekly CCI and ADX for reference
plot(weekly_cci, title="Weekly CCI", color=color.orange)
plot(ADX, title="Weekly ADX", color=color.blue)