クロスオーバーキャプチャ戦略による価格逆転

作者: リン・ハーンチャオチャン,日付: 2024-01-17 16:29:13
タグ:

img

概要

クロスオーバーキャプチャ戦略による価格逆転は,価格逆転取引技術と指標クロスオーバーを組み合わせた複合戦略である.まず,価格逆転パターンを用いて取引信号を生成し,ストカストティックオシレーターの過剰購入/過剰販売クロスオーバーでシグナルをフィルタリングし,市場の短期逆転を捕捉する.

戦略の論理

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

  1. 123 逆転戦略
  • 閉じる価格が2日間で高値から低値に変化し,9日ストキャスティック指標が低帯域 (下限) にあるとき,購入信号が生成されます.
  • 閉じる価格が2日間で低値から高値に変化し,9日ストキャスティック指標が上帯 (上限) にあるとき,セールシグナルが生成されます
  1. ストカスティック・クロスオーバー戦略
  • %K線が%D線を下に横断すると,両線が過買いレベルにあるとき,売り信号が生成されます.
  • %K線が %D線を超えると,両線が過剰販売レベルにあるとき,購入信号が生成されます.

複合戦略は,両方のサブ戦略からの信号をチェックし,信号が同じ方向に並んだときにのみ実際の取引を誘発します.

利点

この戦略は,価格変動パターンと指標クロスオーバーを組み合わせて,価格変動と指標情報を評価し,誤った信号をフィルタリングし,収益性を向上させる逆転の機会を明らかにするのに役立ちます.

具体的利点には以下のものがある.

  1. 市場逆転を迅速に把握し,長期間の整合の待機なしに
  2. 双重検証による信号正確性の向上
  3. 価格動向と指標の両方の分析を組み合わせたよりよい得率

リスク

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

  1. 高波動の際に急激に価格が逆転し,誤った信号を引き起こす可能性があります.
  2. 良くない指標パラメータ調節が信号品質に影響を与える
  3. 逆転のタイミングは不明で,ある程度の時間リスクがあります

これらのリスクは,パラメータを調整し,ストップ損失等を使用して管理できます.

増進 の 機会

戦略を強化するいくつかの方法:

  1. 指標パラメータを最適化
  2. ボリュームなどの他のフィルターを追加
  3. シンボルと市場状況に基づいてパラメータをカスタマイズする
  4. リスク管理のためにストップ損失を組み込む
  5. 信号識別のために機械学習を使用する

結論

価格逆転とクロスオーバーキャプチャ戦略は,リスクを制御しながら利益を得るための複数の補完戦略を組み合わせます.継続的な改善により,変化する市場で繁栄する効率的な戦略に調整することができます.


/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 15/09/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
// This back testing strategy generates a long trade at the Open of the following 
// bar when the %K line crosses below the %D line and both are above the Overbought level.
// It generates a short trade at the Open of the following bar when the %K line 
// crosses above the %D line and both values are below the Oversold level.
//
// 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


StochCross(Length, DLength,Oversold,Overbought) =>
    pos = 0.0
    vFast = stoch(close, high, low, Length)
    vSlow = sma(vFast, DLength)
    pos := iff(vFast < vSlow and vFast > Overbought and vSlow > Overbought, 1,
    	      iff(vFast >= vSlow and vFast < Oversold and vSlow < Oversold, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Stochastic Crossover", 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, "---- Stochastic Crossover ----")
LengthSC = input(7, minval=1)
DLengthSC = input(3, minval=1)
Oversold = input(20, minval=1)
Overbought = input(70, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posmStochCross = StochCross(LengthSC, DLengthSC,Oversold,Overbought)
pos = iff(posReversal123 == 1 and posmStochCross == 1 , 1,
	   iff(posReversal123 == -1 and posmStochCross == -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 )

もっと