2つのDIのクロスオーバー・デイリー・トレーディング・戦略

作者: リン・ハーンチャオチャン,日付: 2023-11-13 11:32:08
タグ:

img

概要

この戦略は,平均の真の範囲 (ATR) から計算されたポジティブな方向指標 (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はステップ1から計算されたATRです.

  3. 入口と出口を決定する

    • DI+が DI-を横切ると,買い信号が生成される.

    • DI+がDI−を下回ると,売り信号が生成される.

  4. ストップ・ロスを設定し 利益を取ります

    • ロングストップ・ロスは,エントリー価格マイナスATRをストップ・ロスの倍数で掛ける.

    • ロング・テイク・プロフィートは,エントリー価格加えてATRをテイク・プロフィートの倍数で掛ける.

    • ショートストップ損失は,エントリー価格加えてATRをストップ損失倍数で掛ける

    • ショート・テイク・プロフィートは,入場価格マイナスATRをテイク・プロフィートの倍数で掛ける

利点分析

  1. トレンド逆転を決定するためにDI+/DI-クロスオーバーを使用することで,新しいトレンド方向性に対するタイミングのシグナルが提供されます.

  2. ATRは動的ストップ・ロース/テイク・プロフィート指標として,市場の変動に基づいて合理的なレベルを設定することができます.

  3. 戦略にはパラメータが少なく,理解し実行するのが簡単です.

  4. バックテストの結果 この戦略は ポジティブな利益因子を持ち バイ・アンド・ホールに優れていることが示されています

リスク と 解決策

  1. DIクロスオーバーによる誤信号リスク

    • 移動平均値などでシグナルをフィルタリングして 誤ったブレイクを避ける.
  2. ストップ・ロスト/得益の接近が過度に近かった

    • ATR マルチプリキュアを 変動に対応するように調整する
  3. 範囲限定市場での非効率性

    • 他の指標と組み合わせて,統合のシグナルをフィルタリングします.
  4. 引き上げリスク

    • 引き下げは許容できるが,体系的な戦略では避けられない.引き下げを制御するためにポジションサイズを調整する.

最適化 の 提案

  1. 移動平均値のようなフィルターを追加して 範囲内での誤った信号を避けるのです

  2. 固定分数やマルティンゲールのような ポジションサイズを導入して 引き下げを制御し 収益性を高めます

  3. ATR パラメータを最適化して,異なる取引手段の変動に対応する.

  4. 最適な組み合わせを見つけるためにDI期,ATR期,ATR倍数等でパラメータ最適化

  5. 戦略を24/7実行するために 夜間と初期のセッションの論理を追加します

結論

これは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)



もっと