ダブルバランスブルベア戦略


作成日: 2023-10-30 10:31:17 最終変更日: 2023-10-30 10:32:53
コピー: 1 クリック数: 642
1
フォロー
1617
フォロワー

ダブルバランスブルベア戦略

概要

双重均衡牛熊戦略は,123反転戦略と多空均衡指標を組み合わせた戦略である.この戦略は,123反転戦略と多空均衡指標の信号を生成した信号を利用して検証し,より信頼性の高い入場を実現することを目的としている.

原則

この戦略は以下の2つの子戦略で構成されています.

  1. 123反転策. この策は,後2回の閉盘価格が反転したときにシグナルを発出する.つまり,前2日の閉盘価格が下がって3日の閉盘価格が上がったときに多額の取引をするか,前2日の閉盘価格が上がって3日の閉盘価格が下がったときに空の取引をする.また,この策はSTOCH指標と組み合わせて,STOCH指標がオーバーセールまたはオーバーバイを示したときにのみシグナルを発出する.

  2. 多空均衡指標戦略.この戦略は多頭力と空頭力の均衡状況を計算することによって,市場トレンドを判断する.具体的には,当日の閉盘価格と開盤価格の差,および前日と当日の差を計算して,多頭力と空頭力を判断する.多頭力の差が大きいほど,傾向がより明確である.

組合せ戦略の取引信号は,上記の2つの子戦略の取引信号から派生する.両子戦略の信号が一致する時のみ,例えば,両方とも多行表示される時のみ,組合せ戦略は,その信号を取り入れる.両子戦略からの信号が一致しない場合,組合せ戦略は,その信号をスキップして,見張りの姿勢をとる.

利点

双重均衡牛熊戦略の最大の優点は,高い信頼性である.それは2つの子戦略が一致した信号を発信することを要求するので,入場するには,偽の信号を避けるために検証の役割を果たすことができる.さらに,2つの子戦略は,逆転とトレンドの両面から機会を掘り起こし,戦略の分散を実現し,単一の戦略のリスクを避けることができる.

123逆転策は,短期市場の逆転の機会を捉える.多空均衡策は,長期のトレンドの方向を判断する.両方を組み合わせて使用すると,逆転と同時に主要なトレンドを把握し,弱い逆転信号をフィルタリングして,利益の確率を高める.

リスク

この戦略の最大のリスクは,子戦略が誤信号を発する確率を倍増させることにある.組合せ戦略は両者の信号が一致することを要求するにもかかわらず,二つの子戦略が同時に誤信号を発したとき,組合せ戦略もそれに追随して入場し,その結果,二倍の損失を負う.

また,子戦略の間で分歧が生じることもあり,一つが多信号を発し,もう一つが空信号を発する.このとき,組合せ戦略はチャンスを逃してしまう.分歧が続くと,組合せ戦略は長期間にわたって入場できない可能性があり,資金効率が低下する.

最適化の方向

傾向-逆転戦略を第3の子戦略として導入することを考えることができます. この戦略は長期のトレンドを判断し,トレンドが逆転したときにシグナルを生成します. 市場のトレンドを判断する戦略を増やすことは,誤ったシグナルを排除し,安定性を高めるのに役立ちます.

もう一つの最適化方向は,子戦略のパラメータを調整することで,それらはよりマッチングな取引信号を生成することができる.例えば,多空均衡戦略の値パラメータを調整することで,より弱いトレンドを捉えることができ,反転戦略と互換性を形成する.

さらに,子戦略が継続的に異議を唱えるときの処理方法について研究することができる.例えば,異議の最大許容回数を設定し,単独の子戦略の信号入場を過ぎて後を取る.これは,機会の損失を一定程度軽減することができる.

要約する

二重均衡牛熊戦略は,123反転戦略と多空均衡戦略を組み合わせて取引信号の二重検証を実現し,偽信号を効果的にフィルターして安定性を高めることができる.反転戦略とトレンド戦略を組み合わせて,戦略の分散を実現し,リスクを低減する.この戦略は,パラメータ設定をさらに最適化し,第三戦略を導入し,マッチング度や資金効率を向上させる.全体的に,この戦略は新発想であり,強力な実用価値を持つ.

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 03/07/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
//    This new indicator analyzes the balance between bullish and
//    bearish sentiment.
//    One can cay that it is an improved analogue of Elder Ray indicator.
//    To get more information please see "Bull And Bear Balance Indicator" 
//    by Vadim Gimelfarb. 
//
// 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

BullAndBearBalance(SellLevel, BuyLevel) =>
    pos = 0
    value =  iff (close < open , 
              iff (close[1] > open ,  max(close - open, high - low), high - low), 
               iff (close > open, 
                 iff(close[1] > open, max(close[1] - low, high - close), max(open - low, high - close)), 
                  iff(high - close > close - low, 
                   iff (close[1] > open, max(close[1] - open, high - low), high - low), 
                     iff (high - close < close - low, 
                      iff(close > open, max(close - low, high - close),open - low), 
                       iff (close > open, max(close[1] - open, high - close),
                         iff(close[1] < open, max(open - low, high - close), high - low))))))

    value2 = iff (close < open , 
              iff (close[1] < open ,  max(high - close[1], close - low), max(high - open, close - low)), 
               iff (close > open, 
                 iff(close[1] > open,  high - low, max(open - close[1], high - low)), 
                  iff(high - close > close - low, 
                   iff (close[1] < open, max(high - close[1], close - low), high - open), 
                     iff (high - close < close - low, 
                      iff(close[1] > open,  high - low, max(open - close, high - low)), 
                       iff (close[1] > open, max(high - open, close - low),
                         iff(close[1] < open, max(open - close, high - low), high - low))))))
    nBBB = value2 - value
    pos := iff(nBBB < SellLevel, -1,
    	   iff(nBBB >= BuyLevel, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Bull And Bear Balance", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
SellLevel = input(-15, step=0.01)
BuyLevel = input(15, step=0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posBullAndBearBalance = BullAndBearBalance(SellLevel, BuyLevel)
pos = iff(posReversal123 == 1 and posBullAndBearBalance == 1 , 1,
	   iff(posReversal123 == -1 and posBullAndBearBalance == -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 )