2つの移動平均値の取引戦略 合成価格を抑える

作者: リン・ハーンチャオチャン, 日付: 2023-09-19 17:13:28
タグ:

概要

これは,デトロンド合成価格 (DSP) をベースとした二重移動平均取引戦略である.DSPは,四半期サイクルEMAから半サイクルEMAを引くことで得られる,実際の価格データの支配的なサイクルと相性のある関数である.DSPが上帯以上または下帯を下を越えると,一方的な取引が行われます.

戦略の論理

  1. 価格の1/2サイクルHL平均 xHL2を計算する.

  2. xHL2の 1/4 サイクル EMA (xEMA1) と 1/2 サイクル EMA (xEMA2) を長さに基づいて計算する.

  3. xEMA2からxEMA1を引いてDSPを得る.

  4. 上部と下部帯のパラメータを設定し,DSPが上部帯を横切ると長行し,下部帯を横切ると短行する.

  5. リバースパラメータは長方向と短方向を切り替える

利点分析

この戦略の利点:

  1. DSPは支配的な価格サイクルを把握し,小規模なサイクルから誤導を避けます.

  2. 双 EMA デザインは,支配的なサイクル変化を効果的に追跡します.

  3. 簡単な上下帯は過剰取引を避ける.

  4. リバースパラメータを使用して,簡単にロング/ショートに切り替える. 異なる市場環境に適応できる.

  5. 複雑なパラメータの最適化も不要で シンプルで実用的です

リスク分析

主なリスク:

  1. 誤ったDSPサイクル設定により,支配的なサイクルが見逃される可能性があります.

  2. 帯域幅の最適化が必要で,そうでなければ過剰な取引が起こる可能性があります.

  3. 固定サイクルの設計は 激しい市場変化に適応性が低い.

  4. DSPでの取引だけでは 戦略は 攻撃を受けやすいのです

  5. ストップロスの欠如は,重大な損失につながる可能性があります.

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

改善:

  1. 最良のサイクル組み合わせを見つけるためにパラメータを最適化します

  2. 動的帯を追加します.

  3. 誤った信号を減らすためにトレンドと波動性フィルターを組み込む.

  4. リスク制御のためにストップ・ロストやトラッキング・ストップメカニズムを追加します

  5. 汎用性のために複数の機器でテストします

  6. 適応型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")

もっと