マルチファクター反転取引組み合わせ戦略


作成日: 2023-09-20 15:13:58 最終変更日: 2023-09-20 15:13:58
コピー: 1 クリック数: 718
1
フォロー
1617
フォロワー

概要

この戦略は,複数の反転指標を組み合わせて,価格が反転シグナルを発したときに反転ポジションを取ることで,反転型のアルゴリズム取引戦略に属している.

戦略原則

  1. まず,123反転システムを使って価格反転の信号を判断する.このシステムは,価格が連続して2Barの関係とStochastic指標で反転を判断する.

  2. 次に,市場情勢の逆転を判断する快慢ピーク度指数FSKを使用する.この指数は,市場の買い物勢力の変化を判断する動力の加速度を使用する.

  3. 123反転システムとFSK反転指標を組み合わせて,両者が同時に反転信号を発したときに反転ポジションを取ります.

  4. 選択的に反転取引,元信号が多頭であったとき空頭をとる,元信号が空頭であったとき多頭をとる.

優位分析

  1. 複数の要因を組み合わせることで,信号の正確性を高め,単一の指標の偽信号を回避することができる.

  2. 123反転システムとFSK指標は互補性があり,異なる時間次元における反転の機会を捉えることができる.

  3. 逆転取引は,急激なトレンドの逆転から利益を得ることができます.

  4. 戦略の安定性を高めるため,複数の反転因子を採用する.

  5. 簡単に理解し,実行し,量子取引の初心者に適しています.

リスク分析

  1. 逆転信号は誤判で損失を招く可能性があります.

  2. 逆転のタイミングが間違って,逆転を繰り返す可能性があります.

  3. 逆転取引は,トレンドが続く限り損をする.

  4. パラメータの最適化が不適切である場合,過適合が発生する可能性があります.

  5. 取引の頻度が高すぎると,取引コストが増加する可能性があります.

最適化の方向

  1. テストはRSI,KDなどの他の反転因子を加え,富裕な組合せである.

  2. パラメータの最適化,指標の感度向上.

  3. トレンドフィルターを加え,逆行を避ける.

  4. ダイナミックなポジション管理戦略を使用して,資金利用の効率を最適化します.

  5. ストップ・ロスの戦略を最適化し,単発損失を減らす.

  6. 取引コストの影響を評価し,高頻度の取引を減らす.

要約する

この戦略は123反転システムとFSK指標を組み合わせて,価格反転時に反転取引を行う.偽信号をフィルターして,正確性を向上させる.しかし,反転戦略は反転不確実性のリスクに直面する.パラメータを継続的に最適化し,ポジションサイズと取引頻度を適切に制御して,リスクを軽減し,安定性を向上させる必要がある.

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 14/10/2020
// 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
// This indicator plots the Fast & Slow Kurtosis. The Kurtosis is a market
// sentiment indicator. The Kurtosis is constructed from three different parts.
// The Kurtosis, the Fast Kurtosis(FK), and the Fast/Slow Kurtosis(FSK).
//
// 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

FSK(Triger) =>
    pos = 0.0
    xMOM_R = mom(mom(close, 3), 1)
    xMOM_RAvr = ema(xMOM_R, 65)
    xMOM_RWAvr = wma(xMOM_RAvr, 3)
    pos := iff(xMOM_RAvr > Triger and xMOM_RWAvr > Triger, 1,-1) 
    pos

strategy(title="Combo Backtest 123 Reversal & FSK (Fast and Slow Kurtosis)", shorttitle="Combo", overlay = true)
Length = input(15, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Triger = input(0, minval=0.001)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posFSK = FSK(Triger)
pos = iff(posReversal123 == 1 and posFSK == 1 , 1,
	   iff(posReversal123 == -1 and posFSK == -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 )