DIクロスオーバーに基づくデイトレード戦略


作成日: 2023-11-13 11:32:08 最終変更日: 2023-11-13 11:32:08
コピー: 0 クリック数: 685
1
フォロー
1617
フォロワー

DIクロスオーバーに基づくデイトレード戦略

概要

この戦略は,平均真範囲指標 ((ATR) とトレンド指標 ((DMI)) の正向指標 ((DI+) と負向指標 ((DI-) の交差を基に,買入と売却のタイミングを判断する.この戦略は,トレンドフォロー戦略に属し,DI+とDI-の交差を基にトレンドの転換点を判断する.ATRは,ストップ損失とストップ価格を設定するために使用される.

戦略原則

  1. ATR ((14)) を計算する:過去14日の最高値,最低値,閉店価格を利用して平均的な実際の波動範囲を計算する

  2. DI+とDI−を計算する:

    • DI+ = 100 * RMA(MAX(UP,0),N) / ATNR

    • DI- = 100 * RMA(MAX(DOWN,0),N) / ATNR

UPは当日の最高値と昨日の閉店価格の差,DOWNは当日の最低値と昨日の閉店価格の差,Nはパラメータの長さで,デフォルトは14,ATNRは前回の計算から得られたATRです.

  1. 買ったり売ったりする際の判断:

    • 購入信号はDI+とDI−の上で発生します.

    • 販売信号はDI+がDI−を突破すると発生します.

  2. ストップダストを設定する:

    • 複数の単一のストップ・ローズを入場価格で減算し,ATRをストップ・ローズ倍数で掛けます.

    • 多単一ストップの値上げは,入場価格とATRの倍数である.

    • 空券のストップローズは入場価格とATRのストップローズ倍数

    • 空券ストップ値上げは入場価格減算ATR掛けるストップ値上げ倍数

戦略的優位分析

  1. DI+とDI-の交差点を利用して,トレンドの転換点を判断し,新しいトレンドの方向をタイムリーに捉える

  2. ATRは,市場変動に応じて合理的なストップポイントを設定できるダイナミックなストップポイント指標です.

  3. 戦略のパラメータが少なく,理解しやすく,実行できます.

  4. この戦略はポジティブな収益因子を持ち,買い持策よりも優れていると反省データで示されています.

リスクと解決策の分析

  1. DIの交差は誤った取引のリスクを招く

    • 偽突破が発生すると,不必要な取引信号が生み出され,誤った信号をフィルターするためにDIサイクルパラメータを適切に調整できます.
  2. 止損停止点が近づいている

    • 市場が急激に波動すると,近くのストップ・ストップが容易にトリガーされ,ATRの倍数は市場の波動の頻度に合わせて調整できます.
  3. 市場が動揺する傾向を 効率的に処理できない

    • 振動的な状況ではDIは頻繁に交差し,無効取引信号を過剰に発生させ,他の指標のフィルター信号と組み合わせることができます.
  4. リスクの撤回

    • 最大の撤回策は受け入れられるが,完全にはシステム的な撤回を回避できない.撤回を制御するためにポジション管理策を調整できる.

改善の提案

  1. 移動平均などの指標を組み合わせてDIの交差信号をフィルタリングし,波動的な状況で誤った取引を避ける

  2. ポジション管理機構の追加,固定シェア,マーティンゲルなどの方法,撤回を制御し,収益性を向上させる

  3. ATRパラメータを最適化して,ストップ・ストップを異なる取引品種の波動範囲に適合させる

  4. パラメータを最適化して,DI周期,ATR周期,ATR倍数などの最適なパラメータの組み合わせを見つける

  5. 夜盤と朝盤の取引判断論理を追加し,戦略を24時間稼働させる

要約する

この策略は,DIの交差によって,買い買いのタイミングを判断し,ATR動的にストップ・ストップを設定する.戦略のパラメータは少ない,テストや実況検証が容易で,最適化調整も便利である.しかし,DIの交差は,震動の判断に不十分な効果であり,これはこの策略の改善が必要な方向である.全体的に言えば,この策略は,安定したパフォーマンスを発揮し,日中のショートライン取引策として使用するのに適している.

ストラテジーソースコード
/*backtest
start: 2022-11-06 00:00:00
end: 2023-11-12 00:00:00
period: 1d
basePeriod: 1h
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/
// © TheHulkTrading
//@version=4
strategy("DI Crossing Daily Straregy HulkTrading", overlay=true)
// ATR Multiplier. Recommended values between 1..4
atr_multiplier = input(1, minval=1, title="ATR Multiplier") 
//Length of DI. Recommended default value = 14
length = input(14, minval=1, title="Length di")
up = change(high)
down = -change(low)
range = rma(tr, 14)

//DI+ and DI- Calculations
di_plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, length) / range)
di_minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, length) / range)

//Long and short conditions
longCond = crossover(di_plus,di_minus)
shortCond = crossunder(di_plus,di_minus) 


//Stop levels and take profits
stop_level_long = strategy.position_avg_price - atr_multiplier*atr(14)
take_level_long = strategy.position_avg_price + 2*atr_multiplier*atr(14)
stop_level_short = strategy.position_avg_price + atr_multiplier*atr(14)
take_level_short = strategy.position_avg_price - 2*atr_multiplier*atr(14)


//Entries and exits 
strategy.entry("Long", strategy.long, when=longCond)
strategy.exit("Close Long","Long", stop=stop_level_long, limit = take_level_long)
strategy.entry("Short", strategy.short, when=shortCond)
strategy.exit("Close Short","Short", stop=stop_level_short, limit = take_level_short)