長期と短期のパワーバランス戦略


作成日: 2023-11-02 17:12:40 最終変更日: 2023-11-02 17:12:40
コピー: 0 クリック数: 727
1
フォロー
1617
フォロワー

長期と短期のパワーバランス戦略

概要

多空力の均衡策略は,改良されたトレンド追跡策略である.現在のK線と前のK線の関係を分析し,多空力の均衡を計算することで,現在のトレンドの方向を判断する.多空力の均衡が崩れたときに,この策略は取引信号を発する.その考え方は,従来型の旧日線指標から派生したが,改良され,より正確にトレンドを判断することができる.

戦略原則

この戦略の核心指標はnBBBで,現在のK線と前回のK線の多空力バランスを反映している.nBBBの計算式は以下の通りである.

nBBB = value2 - value

その中,valueとvalue2は,それぞれ,現在のK線と前のK線の多空力を計算する.それらの計算過程は,比較的に複雑で,閉盘価格,開盤価格,最高価格,最低価格の関係に関する判断を伴う.しかし,全体として,valueは現在のK線の多空力を反映し,value2は前のK線の多空力を反映する.両者の差は,多空力の変化を反映する.

nBBBが設定されたThresholdSellLevelを下回ると,空き信号が発せられます.nBBBが設定されたThresholdBuyLevelを下回ると,多信号が発せられます.Thresholdはパラメータで調整できます.

戦略的優位性

この戦略には以下の利点があります.

  1. K線反転の判断により,より強いトレンドの転換点を識別できます.

  2. 多空力のバランスを計算することで,信号を判断するより正確な信頼性がある.

  3. 現在のK線と前のK線を比較する考え方を採用し,部分的なノイズをフィルターして信号をより明確にする.

  4. 異なる時間周期に適用可能で,柔軟性がある.

  5. nBBBの計算指標は直観的に見られ,形成された取引信号は単純明快である.

戦略リスク

この戦略にはいくつかのリスクがあります.

  1. 多空力指数nBBBは誤信号を生成する可能性があるため,価格実体方向,取引量などと組み合わせて検証する必要がある.

  2. nBBB指標の決定だけでは盲点があるので,他の技術指標の決定を補助する方がよい.

  3. SellLevelとBuyLevelのパラメータの設定は,戦略のパフォーマンスに直接影響し,慎重にテスト・最適化する必要があります.

  4. 状況が激しく波動する時には,指標からの信号が遅れている可能性があり,リスク判断に注意が必要である.

  5. この戦略は中長線操作に適しており,短線操作は套用される可能性がある.

戦略の最適化

この戦略は以下の点で最適化できます.

  1. SellLevelとBuyLevelのパラメータを最適化して,シグナルを現実の状況とよりよくマッチさせる.

  2. 移動停止,震動停止などの止損戦略を追加することで,リスクを効果的に制御できます.

  3. 取引量,ストキャスティックなどの他の指標と組み合わせることで,意思決定の正確性を向上させることができます.

  4. 機械学習の要素を追加し,AI技術を活用してパラメータを自動的に最適化し,より正確な取引信号を発信する.

  5. 異なる取引品種と時間周期のパラメータは,それぞれ最適化され,戦略のターゲティング性を高めることができます.

要約する

多空力の均衡策略は多空力の変化を計算し,トレンドの転換点を判断する,比較的シンプルで実用的トレンド追跡策略である。そのには一定の利点があるが,リスクも存在する。パラメータ最適化,止損策略,補助指標などの手段によって適切な改善が施され,その効果がより良くなる。全体的には,深入に研究され,運用される価値のある量化策略である。

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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 03/02/2017
//    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. 
////////////////////////////////////////////////////////////
strategy(title = "Bull And Bear Balance Strategy")
SellLevel = input(-15, step=0.01)
BuyLevel = input(15, step=0.01)
reverse = input(false, title="Trade reverse")
hline(SellLevel, color=red, linestyle=line)
hline(BuyLevel, color=green, linestyle=line)
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
nBBBc = nBBB < 0 ? red : green
pos = iff(nBBB < SellLevel, -1,
	   iff(nBBB >= BuyLevel, 1, nz(pos[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)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nBBB, style=line, linewidth=1, color=nBBBc)
plot(nBBB, style=histogram, linewidth=1, color=gray)