ATR,EOM,VORTEXをベースにした長期トレンド戦略

作者: リン・ハーンチャオチャン開催日:2024年2月18日 16:01:07
タグ:

img

概要

この戦略は,株式および仮想通貨市場の長期トレンド戦略である.トレンド方向性を特定するために,ATR (平均真要範囲),EOM (動きの容易性) およびVORTEXという3つの指標を組み合わせます.

戦略の論理

  • ATRは市場の変動を測定します.ここで10期間のATRを計算し,5期間のEMAで平滑します.現在のATRがATRのEMAを超える場合は,高い変動と牛市場を示します.そうでなければ,それは熊市場です.

  • EOMはボリューム価格指標に属します.ここで10期 EOMを計算します.EOMが正であれば,取引量の増加と牛市場を示唆します.そうでなければ,それは熊市場です.

  • VORTEXは,長期トレンド方向性を判断するための渦輪指標を表します. VMPとVMMを得るために過去10期間の絶対価格変動の合計を計算します. その後,ATRの合計を名乗として標準化してVIPとVIMを取得します.平均して,1より大きい場合は牛市場を示唆し,1未満は熊市場を示唆します.

概要すると,この戦略は,短期波動性に対するATR/EMAATR,量価格特征に対するEOM,長期トレンドに対するVORTEXを組み合わせて,最終的な長期のみの方向性を決定します.

利点分析

  • この戦略は,波動性,物量価格,トレンドを含む3つの主要な指標を合成し,包括的な判断と強力な信号でトレンド方向を特定します.

  • ATRとVORTEXの両方が,範囲市場からのノイズをフィルタリングし,偽の長い信号を避けるためのスムージング機能を持っています.

  • 短期的な引き下げからのリスク回避を最大限にすることができます.

  • トレンドフォロー戦略として,中長期の方向性の機会と主要トレンドからの利益を把握することに重点を置く.

リスク分析

  • 実際の取引の業績を検証し,パラメータをさらに最適化しテストするバックテストデータが不十分である.

  • 逆転や範囲限定市場から利益を得る機会を探せないため,利益の可能性を制限する.

  • 純粋なトレンド戦略は,特定の資本固定リスクのポジションリスクを効果的に制御することはできません.

  • 負債の負債の負債の負債の負債の負債の負債の負債の負債の負債

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

  • ATRとVORTEXの異なる試験期間における安定性

  • ストップ・ロスの方法を導入しようとします.例えば,移動ストップ・ロスの方法や,単一のロスを制御するためのタイムストップ・ロスの方法.

  • ATR値に基づいてポジションのサイズを設定し,高変動環境でのリスクを軽減する.

  • 平均逆転因数を含めて,入力のタイミングを確認し,不要な資本ロックを回避する.

結論

この長期的トレンドフォロー戦略は,ATR,EOM,VORTEXから3つのカテゴリーで確認された結果に基づいて入力され,メイントレンドから利益を得るには短くなく,長時間しか行われない.包括的な判断と明確なシグナルが優れているが,データの検証が不十分であり,リスク制御能力が弱いというデメリットがある.ストップ損失導入,パラメータ設定の最適化,ポジションサイズ化などの分野では将来の改善が可能である.


/*backtest
start: 2023-02-11 00:00:00
end: 2024-02-17 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/
// © SoftKill21

//@version=4
strategy("atr+eom+vortex strat", overlay=true )

//atr and ema
atr_lenght=input(10)
atrvalue = atr(atr_lenght)


//plot(atrvalue)
ema_atr_length=input(5)
ema_atr = ema(atrvalue,ema_atr_length)

//plot(ema_atr,color=color.white)

//EOM and ema
lengthEOM = input(10, minval=1)
div = 10//input(10000, title="Divisor", minval=1)
eom = sma(div * change(hl2) * (high - low) / volume, lengthEOM)
// + - 0 long/short

//VORTEX
period_ = input(10, title="Length", minval=2)
VMP = sum( abs( high - low[1]), period_ )
VMM = sum( abs( low - high[1]), period_ )
STR = sum( atr(1), period_ )
VIP = VMP / STR
VIM = VMM / STR
avg_vortex=(VIP+VIM)/2
//plot(avg_vortex)

long= atrvalue > ema_atr and eom > 0 and avg_vortex>1 
short=atrvalue < ema_atr and eom < 0 and avg_vortex<1 

strategy.entry("long",1,when=long)
//strategy.entry("short",0,when=short)

strategy.close("long",when=short)

もっと