双重バランスのとれた牛と熊の戦略

作者: リン・ハーンチャオチャン,日付: 2023年10月30日 10:31:17
タグ:

img

概要

ダブルバランスブルズ&ベアズ戦略は,123リバース戦略とブルズ&ベアズバランス指標を併用した組み合わせ戦略である.より信頼性の高い市場参入のために123リバース戦略からの信号をブルズ&ベアズバランス指標と検証することを目的としている.

原則

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

  1. 123 逆転戦略.最後の2つの閉盤価格が逆転を示したときに信号を生成する.つまり,前2つの閉盤価格が下がり,3番目の閉盤価格が上昇する間に,前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 )

もっと