クリプト・ブル・ラン追跡戦略

作者: リン・ハーンチャオチャン, 日時: 2023-12-08 15:45:47
タグ:

img

概要

この戦略は,動的移動平均値であるDEMAとTEMAを2つ計算し,黄金クロスまたは死クロスを生成するときにロングまたはショートポジションを設定することによってトレンドを追跡します.同時に,戦略は不必要なストップ損失を避けるために一定の数のホールディングバーを設定します.

戦略の論理

この戦略の基本的な論理は,動的移動平均値DEMAとTEMAの交差点に基づいてトレンド方向を決定することです.

DEMAは,ダブル指数関数移動平均を表す.EMAの重量化平滑機能を組み合わせ,EMAの遅延問題を最適化する.その式は:

DEMA = 2*EMA(CLOSE, N) -EMA(EMA(CLOSE, N), N)

この辺の長さは

TEMAはTriple Exponential Moving Average (トリプル指数指数移動平均) を略している.移動平均の遅れを減らすためにトリプル指数指数平滑を使用する.その式は:

EMA1 = EMA ((CLOSE, Temalength) について) EMA2 = EMA ((EMA1,テンパールング) EMA3 = EMA ((EMA2, 温度長) TEMA = 3EMA1 - 3EMA2 + EMA3

TEMAがDEMAを横切ったとき,それは長い行くための黄金十字信号とみなされます. TEMAがDEMAを下回ったとき,それは短い行くための死の十字信号とみなされます.

さらに,この戦略は,信号の有効性を確保し,偽信号を回避するために,遅延バーを設定します.入力を誘発する前に,黄金/死十字が一定の期間継続することを要求します.

最後に,この戦略は二重チェックロジックを採用します.新しい取引を開く前に反対のポジションを閉鎖する必要があるかどうかを確認します.これは二重方向のポジションのリスクを回避します.

利点分析

  1. 2つのダイナミックMAを用いてより正確な傾向判断

伝統的なEMAとSMAと比較して,DEMAとTEMAはより敏感なダイナミックMAであり,トレンド変化を迅速に把握し,市場トレンド判断の精度を向上させる.

  1. 遅延期間を設定することで誤信号をフィルタリングする

delayBars パラメータは,シグナルが出た後,ポジションに入る前にしばらく待つようにする.これはいくつかの偽信号をフィルタリングし,罠にはまりないようにする.

  1. 双重検査によるリスク削減

新しい取引を開く前に反対ポジションを閉鎖する必要があるかどうかを確認することで,戦略は双方向のポジションを保持することを避け,ヘッジ取引による損失を最小限に抑える.

  1. 強い普遍性

この戦略は,傾向とシグナルを決定するために,主に共通の技術指標であるMAsのクロスオーバーに依存しています.特定の製品に依存せず,ほとんどの傾向製品に適しています.

リスク分析

  1. 市場 に 閉じ込め られ ます

横向変動が大きい市場では,MAsは頻繁に交差し,損失を引き起こす偽信号を生成することがあります.この場合,遅延設定も失敗する可能性があります.

解決策は,横向的な傾向を特定する際に戦略を一時停止するか,MAパラメータと遅延期間を適切に調整することです.

  1. 罠やブラック・スワン・イベントを特定できない

この戦略は,価格動向を純粋に追跡し,重大イベントによる短期的なトラップやトレンド逆転を予測することはできません.そのような場合,大きな損失につながる可能性があります.

解決策は,リスク評価のための他の指標を組み込むか,ポジションサイズを適切に削減することです.

オプティマイゼーションの方向性

  1. より多くのタイプのMAsをテストする

DEMAとTEMAを除いて SMA,EMA,その他の強化MAsの組み合わせをテストし,この市場に最も適したものを探します.

  1. MA パラメータと遅延期間を最適化

より正確な取引信号のための最適なMA長さと信号遅延期間を見つけるために最適化を実行します.

  1. 異なる製品のパラメータを調整する

異なる製品特性を考慮して,MA長度,価格変動の遅延期間,およびトレンド性の適切な組み合わせを見つけます.

  1. リスク評価のための他の指標を組み込む

例えば,波動性と価格レベルを判断するためにボリンジャー帯を使用し,ウィップソー市場を避ける.トレンド強みを評価するためにモメントインジケーターを使用します.

結論

DEMAとTEMAの間のダイナミックMAクロスオーバーに基づいた戦略の基本トレンドである.その利点は高い安定性,信頼性,普遍性である.しかし,いくつかの遅れと弱い逆転検出能力もある.この記事は,この戦略を使用するための貴重な参考文献として役立つ,そのメリット,メリット,最適化方向の包括的な分析を提供します.全体として,それはさらなる研究に値する定量的な取引戦略設計の典型的な例を提供しています.


/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © jacobdickson255

strategy("Crypto Bull Run Tracker", overlay=true, pyramiding=0)

//Dema Scripting
Demalength = input.int(230, minval=1)
src = close
e1 = ta.ema(src, Demalength)
e2 = ta.ema(e1, Demalength)
dema = 2 * e1 - e2
plot(dema, "DEMA", color=#43A047)

//Tema Scripting
Temalength = input.int(210, minval=1)
ema1 = ta.ema(close, Temalength)
ema2 = ta.ema(ema1, Temalength)
ema3 = ta.ema(ema2, Temalength)
tema = 3 * (ema1 - ema2) + ema3
plot(tema, "TEMA", color=#2962FF)

delayBars = input(5, title="Bar Delay")
var int lastTradeBar = na

longCondition = ta.crossover(tema, dema) 
longExit = ta.crossunder(tema, dema)
shortCondition = ta.crossunder(tema, dema)
shortExit = ta.crossover(tema, dema)

// Exit conditions should be checked before entry conditions
// Close short position if a long condition is present
if ((shortExit and strategy.position_size < 0)) // If conditions for exiting the short are met, and there is a balance in the short direction, exit the short
    strategy.close("Short")
   

// Close long position if a short condition is present
if ((longExit and strategy.position_size > 0))
    strategy.close("Long")
   
// Now check for entry conditions
if (longCondition)
    strategy.entry("Long", strategy.long)
    lastTradeBar := bar_index

if (shortCondition)
    strategy.entry("Short", strategy.short)
    lastTradeBar := bar_index


もっと