確率的反転要因とキー反転シグナルに基づく組み合わせ反転戦略


作成日: 2023-12-13 17:54:34 最終変更日: 2023-12-13 17:54:34
コピー: 0 クリック数: 633
1
フォロー
1621
フォロワー

確率的反転要因とキー反転シグナルに基づく組み合わせ反転戦略

概要

この戦略は,ランダムな転向因子と重要な転向シグナルの両方の反転戦略を組み合わせて,総合的な取引信号を取得する.まずは,ランダムな転向因子を使用して,価格が反転の兆候を示しているかどうかを判断する.それから,重要な転向シグナルと組み合わせて偽の反転をフィルターし,実際の反転の機会を捕捉することを保証し,取引リスクを軽減する.

戦略原則

ランダムな要素への移行

この部分は,ウルフ・ジェンセンが”私はどのように期貨市場で資金を三倍に増やすか”という著書で紹介した逆転戦略に由来する.これは,価格の動きが逆転しているかどうかを判断するために,閉盘価格とランダムな指標の逆転形状を組み合わせている.

閉店価格が前日の閉店価格より2日連続で高く,そして9日目にはランダムな指標の慢線が50以下であるとき,多めにする.これは,短期間に価格が上昇し続けることを意味するが,ランダムな指標は,株が過度に買い込まれていることを示し,反転下落の可能性を示唆する.

閉盤価格が前日の閉盤価格より2日連続で低く,そして9日のランダムな指標の快線が50以上であるとき,空白する.これは,価格が短期間に継続的に下落していることを示すが,ランダムな指標は,株式が過度に売れていることを示し,反転上昇の可能性を示唆する.

重要な反転信号

重要な反転シグナルとは,1日間に価格が新しい高点または低点に現れ,その後に明らかな反転が起こるK線形を表す.それはしばしば市場動向の転換を予告する.

牛市では,価格創新高の後の閉盘価格が昨日の最低値に近づいたことが,重要な反転の多元信号となっている. 熊市では,創新低値の後,昨日の最高値に近づいた閉盘価格が,重要な逆転空調のシグナルとなっている.

戦略的優位性

  1. 複数の指標とK線形状を組み合わせることで,取引信号の精度が向上する.

  2. 逆転理論に基づいた構造で,潜在的逆転の機会を捉えることができる.

  3. トレンドとランダムな指標を判断しながら,誤った信号を効果的にフィルターすることができます.

  4. 重要な反転信号は,偽反転を回避し,取引リスクを軽減します.

リスクと最適化

  1. 逆転形が現れたとき,市場は実際には逆転していない可能性があり,逆調リスクが存在する. リスクを管理するためにストップ・ローズを設定することができる.

  2. ランダムな指標と価格が異動し,信号の誤りが生じることがあります.ランダムな指標のパラメータを最適化したり,他の指標を組み合わせて確認することができます.

  3. この戦略は,主に日内および短期K線取引に基づいている.より長い線のトレンド状況に対応することができない.傾向とイデオロギーを組み合わせる方法などをさらに完善することができる.

要約する

この戦略は,価格の動き,ランダムな指標,および重要な反転シグナルを組み合わせて,潜在的な反転機会を捉えます.反転のタイミングを単一の反転取引方法と比較して,より正確に判断し,偽の信号をフィルターすることができます.しかし,反転後に発生するリコールリスク,およびランダムな指標と価格の間の離散現象を注意する必要があります.パラメータの最適化,ストップ・ロスの設定,および他の戦略とのさらなる統合により,より信頼性の高い取引戦略を得ることができます.

ストラテジーソースコード
/*backtest
start: 2023-12-05 00:00:00
end: 2023-12-12 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 22/12/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
// A key reversal is a one-day trading pattern that may signal the reversal of a trend. 
// Other frequently-used names for key reversal include "one-day reversal" and "reversal day."
// How Does a Key Reversal Work?
// Depending on which way the stock is trending, a key reversal day occurs when:
// In an uptrend -- prices hit a new high and then close near the previous day's lows.
// In a downtrend -- prices hit a new low, but close near the previous day's highs
//
// 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

KRU(nLength) =>
    pos = 0.0
    xLL = lowest(low[1], nLength)
    C1 = iff(low < xLL and close > close[1], true, false)
    pos := iff(C1, 1, 0)
    pos

strategy(title="Combo Backtest 123 Reversal & Key Reversal Up", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
nLength = input(1, minval=1, title="Enter the number of bars over which to look for a new low in prices.")
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posKRU = KRU(nLength)
pos = iff(posReversal123 == 1 and posKRU == 1 , 1,
	   iff(posReversal123 == -1 and posKRU == -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 )