多要素逆転追跡戦略

作者: リン・ハーンチャオチャン開催日:2023年9月15日 (月) 14:31:15
タグ:

戦略の概要

多要素逆転追跡戦略は,価格逆転パターンと過買い過売指標を組み込み,取引信号を生成する.多要素を合成して市場の高値と低値を特定し,中短期間の価格逆転を捕捉するために逆転点で取引信号を生成する.

戦略の論理

戦略は2つのモジュールで構成されています.

  1. 123 リバース パターン モジュール
  • 2日間の新高値が表示されたらショートで,3日目に引き下がり 短期的な高値を示唆します

  • 2日間の新低値を見るとロングで,3日目に反転して短期的な低値を示します

  1. リバース エンジニアリング RSI モジュール
  • RSIを動的に調整することで,買い過ぎと売り過ぎの線で逆転点を特定する.

  • RSIが調整された過剰購入線を超えるとショート,RSIが調整された過剰販売線を下回るとロング.

取引シグナルは 2つのモジュールが一致するときにのみ生成されます

最大の利点は,構造的な高低を決定するための複数の要因を組み込み,個々の要因からいくつかの誤った信号をフィルタリングし,実際の取引の勝利率を改善することです.

戦略 の 利点

  • 高/低値の総合的な識別のための多因子合成

  • 逆転パターンと過買い/過売指標を組み合わせる

  • 誤った逆転をフィルタリングし,正確性を向上させる

  • バックテストのパラメータを最適化し,異なる市場に適応できる

  • 迅速な複製のために簡単に実装する

危険 警告

  • 逆転信号が遅れている場合,パラメータ更新が必要

  • オーバートレードを防ぐために,より多くの手数料を避けるために

  • 単一の株の基本面はまだ考慮する必要がある

  • インデックスやホットストックに適したリバース戦略

結論

多要素逆転追跡戦略は,取引シグナルのための複数の視点を考慮することによって,量子ツールと手動分析の経験を完璧に組み合わせています.単一指標戦略と比較して,実際の取引安定性と勝利率を大幅に向上させます.この戦略は,まずバックテストで検証し最適化し,その後,ライブ取引で徐々に実装し,非常に顕著な実用的な価値があります.


/*backtest
start: 2023-08-15 00:00:00
end: 2023-09-14 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 15/06/2021
// 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 related article is copyrighted material from
// Stocks & Commodities.
//
// 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


RE_RSI(Value,WildPer) =>
    pos = 0.0
    AUC = 0.0
    ADC = 0.0
    ExpPer = 2 * WildPer - 1
    K = 2 / (ExpPer + 1)
    AUC := iff(close > close[1], K * (close - close[1]) + (1 - K) * nz(AUC[1], 1), (1-K) * nz(AUC[1], 1))
    ADC := iff(close > close[1], (1-K) * nz(ADC[1], 1), K * (close[1] - close) + (1 - K) * nz(ADC[1], 1))
    nVal = (WildPer - 1) * (ADC * Value / (100 - Value) - AUC)
    nRes = iff(nVal >= 0, close + nVal, close + nVal * (100 - Value) / Value)
    pos:= iff(nRes > close, -1,
    	   iff(nRes < close, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Reverse Engineering RSI, by Giorgos Siligardos", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Reverse Engineering RSI ----")
Value = input(50, minval=1)
WildPer = input(14,minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRE_RSI = RE_RSI(Value,WildPer)
pos = iff(posReversal123 == 1 and posRE_RSI == 1 , 1,
	   iff(posReversal123 == -1 and posRE_RSI == -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 )

もっと