これは,デトロンド合成価格 (DSP) をベースとした二重移動平均取引戦略である.DSPは,四半期サイクルEMAから半サイクルEMAを引くことで得られる,実際の価格データの支配的なサイクルと相性のある関数である.DSPが上帯以上または下帯を下を越えると,一方的な取引が行われます.
価格の1/2サイクルHL平均 xHL2を計算する.
xHL2の 1/4 サイクル EMA (xEMA1) と 1/2 サイクル EMA (xEMA2) を長さに基づいて計算する.
xEMA2からxEMA1を引いてDSPを得る.
上部と下部帯のパラメータを設定し,DSPが上部帯を横切ると長行し,下部帯を横切ると短行する.
リバースパラメータは長方向と短方向を切り替える
この戦略の利点:
DSPは支配的な価格サイクルを把握し,小規模なサイクルから誤導を避けます.
双 EMA デザインは,支配的なサイクル変化を効果的に追跡します.
簡単な上下帯は過剰取引を避ける.
リバースパラメータを使用して,簡単にロング/ショートに切り替える. 異なる市場環境に適応できる.
複雑なパラメータの最適化も不要で シンプルで実用的です
主なリスク:
誤ったDSPサイクル設定により,支配的なサイクルが見逃される可能性があります.
帯域幅の最適化が必要で,そうでなければ過剰な取引が起こる可能性があります.
固定サイクルの設計は 激しい市場変化に適応性が低い.
DSPでの取引だけでは 戦略は 攻撃を受けやすいのです
ストップロスの欠如は,重大な損失につながる可能性があります.
改善:
最良のサイクル組み合わせを見つけるためにパラメータを最適化します
動的帯を追加します.
誤った信号を減らすためにトレンドと波動性フィルターを組み込む.
リスク制御のためにストップ・ロストやトラッキング・ストップメカニズムを追加します
汎用性のために複数の機器でテストします
適応型DSPサイクル最適化のための機械学習を導入する.
一般的には,これは非常にシンプルで実用的な二重移動平均取引戦略である.DSPが支配的なサイクルを効果的に追跡する,堅牢なサイクル分析の基礎の上に構築されている.パラメータ最適化,ストップ損失,フィルター条件などの改良により,信頼性の高い定量的な取引戦略になることができます.
/*backtest start: 2023-09-11 00:00:00 end: 2023-09-13 02:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 20/03/2017 // Detrended Synthetic Price is a function that is in phase with the // dominant cycle of real price data. This DSP is computed by subtracting // a half-cycle exponential moving average (EMA) from the quarter cycle // exponential moving average. // See "MESA and Trading Market Cycles" by John Ehlers pages 64 - 70. // // You can change long to short in the Input Settings // Please, use it only for learning or paper trading. Do not for real trading. //////////////////////////////////////////////////////////// strategy(title="D_DSP (Detrended Synthetic Price)", shorttitle="D_DSP") Length = input(14, minval=1) SellBand = input(25) BuyBand = input(-25) reverse = input(false, title="Trade reverse") hline(0, color=blue, linestyle=line) hline(SellBand, color=red, linestyle=line) hline(BuyBand, color=green, linestyle=line) xHL2 = hl2 xEMA1 = ema(xHL2, Length) xEMA2 = ema(xHL2, 2 * Length) xEMA1_EMA2 = xEMA1 - xEMA2 pos = iff(xEMA1_EMA2 > SellBand, 1, iff(xEMA1_EMA2 < BuyBand, -1, nz(pos[1], 0))) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) barcolor(possig == -1 ? red: possig == 1 ? green : blue ) plot(xEMA1_EMA2, color=blue, title="D_DSP")