ダブルモメンタムインデックスと逆転ハイブリッド戦略

作者: リン・ハーンチャオチャン,日付: 2024-02-06 12:22:32
タグ:

img

概要

ダブルモメンタムインデックスとリバーサルハイブリッド戦略は,リバーサルとモメンタム戦略を組み合わせた複合戦略である.123リバーサル戦略とコモディティセレクションインデックス (CSI) をサブ戦略として統合し,二重確認に基づくエントリー信号を決定する.この戦略は,取引信号の精度を向上することを目的としている.

戦略の論理

この戦略は2つのサブ戦略で構成されています.

  1. 123 リバース 戦略: 閉店価格が2日連続で上昇し,ストックが50を下回るときはロング; 閉店価格が2日連続で低下し,ストックが50を超えるとショート.

  2. コモディティ選択指数 (CSI) 戦略. 平均真の範囲 (ATR) と平均方向運動指数 (ADX) を組み合わせる. ATRは市場の変動を反映し,ADXはトレンド強さを反映する. CSI値が高くなるほど,市場の傾向と変動が強くなる. これはモメンタムトラッキング戦略である.

この戦略全体では,123リバース戦略をメインボディとCSIをアシスタント確認として採用している.両戦略の信号が一貫している場合にのみ,取引信号が生成される.閉盤価格が2日連続で上昇し,ストックが50を下回る時に,CSIが移動平均値を超えると同時にロングになる.閉盤価格が2日連続で低下し,ストックが50を超えると同時にCSIが移動平均値を下回るとショートになる.

これは,取引信号の逆転属性を保証し,フィルターにCSIを追加すると,偽信号を減らすことができます.

利点

この戦略には以下の利点があります.

  1. 逆転とモメントを組み合わせることで信号の精度が向上します. 123逆転がメイン信号として突然で暴力的な逆転を捉えることができます. CSIは確認としていくつかのノイズをフィルタリングすることができます.

  2. 複合フィルタリングを採用することで,純ポジションが大幅に減少する.サブ戦略自体にはいくつかの誤った信号がある場合でも,最終信号は2回確認されなければなりません.これはほとんどの誤った信号をフィルタリングし,不必要なポジションの開閉を最小限に抑えることができます.

  3. サブ戦略のパラメータは,互いに干渉することなく個別に最適化することができる.これは最適なパラメータ組み合わせを見つけるのを容易にする.

  4. サブ戦略は別々に有効にすることができます. 戦略は123 リバースまたは CSI を取引のみに使用することをサポートします. これにより柔軟性があります.

リスク分析

戦略は複合フィルタリングによって誤信号を大幅に減少させるが,依然として以下の主要なリスクがある.

  1. 戦略信号生成の頻度は比較的低い.ダブル確認を採用することで,取引機会の一定割合は必然的にフィルタリングされる.これは高い勝利率を達成するための必然的なコストである.

  2. 2つのサブ戦略のパラメータが不適切である場合,少数の信号または全くない結果になる可能性があります.最適なパラメータ組み合わせを見つけるために,パラメータの厳格なテストと最適化が必要です.

  3. 123 逆転は反トレンド操作に属します. 連続して暴力的な一方的な価格突破の場合,戦略はより大きなリスクに直面します. リスクを制御するためにストップロスを追加することがお勧めです.

最適化方向

この戦略の主要最適化可能性は以下の分野にある.

  1. 各サブ戦略の内在パラメータを最適化して,ストック,CSIなどのパラメータを含む最適なパラメータの組み合わせを見つけます.

  2. 異なる市場条件フィルターでテストを追加する.例えば,CSIをトレンドが優れている場合にのみ使用し,123リバースをレンジバインド市場でのみ使用するなど.これは部分戦略の欠点をある程度克服することができます.

  3. パラメータの自己適応と動的最適化モジュールを開発し,戦略がパラメータを自動的に調整し,市場状況と統計に基づいて最適なパラメータの組み合わせをリアルタイムに追跡できるようにします.

  4. 適切なストップ・ロスは,リスクを効果的に制御し,不必要なポジションの開閉を減らすことができます.

概要

ダブルモメントインデックスとリバーサルハイブリッド戦略は,複数の信号の確認と組み合わせのアイデアを利用し,相互フィルタリングによって欠点を克服しながら,リバーサルおよびモメント戦略のそれぞれの強みをうまく利用し,高い効率性と安定性を達成する.採用を検討される典型的な定量戦略として機能する.


/*backtest
start: 2024-01-06 00:00:00
end: 2024-02-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 25/10/2019
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// The Commodity Selection Index ("CSI") is a momentum indicator. It was 
// developed by Welles Wilder and is presented in his book New Concepts in 
// Technical Trading Systems. The name of the index reflects its primary purpose. 
// That is, to help select commodities suitable for short-term trading.
// A high CSI rating indicates that the commodity has strong trending and volatility 
// characteristics. The trending characteristics are brought out by the Directional 
// Movement factor in the calculation--the volatility characteristic by the Average 
// True Range factor.
// Wilder's approach is to trade commodities with high CSI values (relative to other 
// commodities). Because these commodities are highly volatile, they have the potential 
// to make the "most money in the shortest period of time." High CSI values imply 
// trending characteristics which make it easier to trade the security.
// The Commodity Selection Index is designed for short-term traders who can handle 
// the risks associated with highly volatile markets.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos

fADX(Len) =>
    up = change(high)
    down = -change(low)
    trur = rma(tr, Len)
    plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, Len) / trur)
    minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, Len) / trur)
    sum = plus + minus 
    100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), Len)

CSI(Length, Commission, Margin, PointValue) =>
    pos = 0.0
    K = 100 * ((PointValue / sqrt(Margin) / (150 + Commission)))
    xATR = atr(Length)
    xADX = fADX(Length)
    nADXR = (xADX + xADX[Length]) * 0.5
    xCSI = K * xATR * nADXR
    xMACSI = sma(xCSI, Length)
    pos := iff(xCSI < xMACSI, 1,
    	     iff(xCSI > xMACSI, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Strategy 123 Reversal & Commodity Selection Index", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
PointValue = input(50)
Margin = input(3000)
Commission = input(10)
LengthCSI = input(14)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posCSI = CSI(LengthCSI, Commission, Margin, PointValue)
pos = iff(posReversal123 == 1 and posCSI == 1 , 1,
	   iff(posReversal123 == -1 and posCSI == -1, -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)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

もっと