トリプル指数移動平均長期戦略


作成日: 2023-11-15 10:54:39 最終変更日: 2023-11-15 10:54:39
コピー: 0 クリック数: 619
1
フォロー
1617
フォロワー

トリプル指数移動平均長期戦略

概要

三重指数移動平均長線戦略 (Triple Exponential Moving Average Long Only Strategy) は,三重指数移動平均を交易信号として使用する長線戦略である.この戦略は,三つの異なる周期のEMAを計算し,並べ替えをTEMA指数に変換することで,短期市場の騒音を除し,中長線トレンドの方向性を識別する.価格が上を突破する時に多めにして,下を突破する時に平仓する.この戦略は,中長線トレンドを取引することに興味のある投資家に適している.

戦略原則

この戦略は,TEMA技術指標によって中長線トレンドを識別する.TEMA指標は,EMA指数移動平均のトリプル平滑後に得られるトレンド指標である.EMA指標自体は価格に一定の波動作用をする.TEMAは,三つの異なる周期のEMA指数移動平均を計算し,重複変換を行うことで,短期的なノイズをさらに除し,より大きな周期のトレンドを強調する.

具体的には,この戦略はまずfastEmaPeriod周期のEMA指数ema1を計算し,その後ema1に基づいて同周期ema2を計算し,最後にema2に基づいてema3を計算する.最終的なTEMA指数は,TEMA = 3 * (ema1 - ema2) + ema3の公式に従って計算される.価格がTEMAを突破するときは,多めに;価格がTEMAを突破する時は,平仓する.

多重指数平滑により,TEMA指標は,折り曲げられた中長線トレンドの方向を効果的に識別し,短期的な騒音による取引の干渉を排除し,空頭である長線取引戦略に適しています.

戦略的優位分析

  • TEMA指標を使用すると,中長線トレンドを効果的に識別し,短期的な騒音干渉を排除し,被套を回避できます.

  • 余計な空白をしないだけで,空白がもたらす無限の損失のリスクを回避できます.

  • パーセンテージ・ポジション・マネジメントを使用し,口座資金に応じてポジションの規模を柔軟に調整し,リスクを制御します.

  • タイムウィンドウの設定は,指定された歴史の時間を回測し,戦略パラメータを最適化します.

戦略的リスク分析

  • 長期にわたって,長期にわたって,長期にわたって,長期にわたって,長期にわたって,長期にわたって,長期にわたって,長期にわたって,長期にわたって,長期にわたって,長期にわたって,長期にわたって,長期にわたって,長期にわたって,長期にわたって,長期にわたって,長期にわたって,長期にわたって,長期にわたって,長期にわたって.

  • TEMA指数は,トレンド転換点が失敗したときに,タイミングで止損のチャンスを逃す可能性があります.

  • パーセンテージポジションは,単一の損失の大きさを制限することはできません. リスク管理のために,損失を抑える必要があります.

  • 回測には過適合のリスクがあり,パラメータ最適化は必ずしも将来の市場には適用されない.

戦略最適化の方向性

  • 波動率指標の最適化パラメータと組み合わせて,パラメータの安定性を向上させる.

  • 単一損失を抑えるために,ストップ・ロスの策を追加する.

  • ポジション管理の最適化,撤回時にポジションの低減.

  • タイムサイクルを横断したTendency指標を追加し,トレンド判断の正確性を向上させる.

  • 異なるポジション周期パラメータをテストし,最適なポジション周期を探します.

要約する

総括すると,この三重指数移動平均線長線戦略は,TEMA指標を計算することによってトレンドの方向性を認識し,短期的なノイズから邪魔されないように長線を保持し,無限な損失のリスクを回避するために空白を多めにせず,中間の長線トレンドを長期間にわたって保持するために有効に捕捉することができます.しかし,この戦略には一定のリスクがあり,安定性を高めるために適切に最適化する必要があります.全体的に,この戦略は,一定のリスク承受能力があり,トレンド取引を好む投資家に適しています.

ストラテジーソースコード
/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("TEMA_System_long_only", overlay=true)

//Collect inputs parameters

fastEmaPeriod = input(7, minval=1, title="Fast TEMA Period")

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 4, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2010, title = "From Year", minval = 2000)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2000)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

fastEma = ema(close, fastEmaPeriod)

//convert EMA into TEMA

ema1 = ema(close, fastEmaPeriod)
ema2 = ema(ema1, fastEmaPeriod)
ema3 = ema(ema2, fastEmaPeriod)

fastTEMA = 3 * (ema1 - ema2) + ema3


buy  = close > fastTEMA
sell = close < fastTEMA

plot(fastTEMA, title = 'TEMA', linewidth=3, color=white)

if window()
    strategy.entry("long",strategy.long, when = buy)
    strategy.close("long", when = sell )