2回逆転 % 変化バー 定量戦略

作者: リン・ハーンチャオチャン, 日付: 2023-12-06 17:44:35
タグ:

img

概要

この戦略の名称は"ダブル・リバース・パーセンテージ・チェンジ・バー・量子戦略"です.この戦略は,ポートフォリオ・トレーディングのための2種類の異なる戦略を組み合わせ,それぞれの利点を最大限に発揮し,より良い取引パフォーマンスを達成します.

第1戦略は,閉店価格を前日または数日と比較して逆転シグナルがあるかどうかを判断するために逆転戦略の原則を使用する.第2戦略は,日々の変動範囲を決定し,それに応じてポジションを確立するために"%変化バーチャート"指標を使用する.

戦略の原則

二重逆転率変化バーの定量戦略は2つの主要要素を使用します.

第"の部分は123の逆転戦略です その判断論理は

  1. 閉じる価格が前の閉じる価格より低く,ストック・ファストラインがスローラインより高く,50値を超えると,過剰購入とされ,売り信号が生成されます.

  2. 閉じる価格が前の閉じる価格より高く,ストック・ファストラインがスローラインより低く,50を下回る場合は,過売りとみなされ,買い信号が生成されます.

  3. 生成された買い/売るシグナルに応じて,ロングまたはショートポジションを設定する.

2つ目の部分は,百分比変化バーチャート指標です. その判断論理は:

  1. N 期間の前のバー (input_barsback パラメータで定義される) に関する現在のバーのパーセント変化を計算する.

  2. %変化が BuyZone パラメータで定義された正値領域を超えると,買い信号が生成され, SellZone で定義された負値領域を下回ると,売り信号が生成されます.

  3. 生成された買い/売るシグナルに応じて,ロングまたはショートポジションを設定する.

最後に,ポジションは,2つの戦略によって生じる信号が一致する場合にのみ確立されます.そうでなければ,ポジションは変化しません.

利点分析

二重逆転率変化バーの定量戦略には以下の利点があります.

  1. 123の逆転戦略は,市場の逆転点を識別するのに良い性能を示し,百分比変化バーチャート指標は,ブレイクアウト傾向を迅速に認識する.この組み合わせは,逆転とトレンドの両方を識別することができます.

  2. この2つの戦略からのシグナルを組み合わせることで,誤ったシグナルを効果的にフィルタリングし,不必要なストップ損失を削減し,取引リスクを低減することができます.

  3. 123の逆転戦略は,大きな最適化余地があります.パラメータの組み合わせを調整することで,異なる製品とサイクルに最適化され適応できます.

  4. パーセンテージ変化バー戦略は直感的に操作できます. 取引リスクはパラメータを調整することで簡単に把握し制御できます.

リスク分析

二重逆転率変化バーの定量戦略には,いくつかのリスクもあります.

  1. 2つの戦略からのシグナルが一致しない場合,ポジションは確立できず,いくつかの取引機会を逃します. 適合の可能性を高めるために,パーセント変化バーチャートのパラメータ範囲を適切に拡大することができます.

  2. 123 逆転戦略はパラメータに敏感である.パラメータの不適切な組み合わせは,誤った信号が多すぎる可能性があります.安定性を確保するために,パラメータは異なる製品に対して別々にテストする必要があります.

  3. %変化バーチャートによって生成される買い・売るシグナルの方向が間違って123の逆転シグナルと一致する場合は,かなりの損失をもたらすでしょう.リスクを制御するために,パーセント変化パラメータの振幅を適切に削減する必要があります.

  4. 戦略がしばらく実行された後,パラメータの適応性は低下します.パラメータを調整するタイミングを決定するために,戦略のリターン曲線と取引信号を監視する必要があります.

オプティマイゼーションの方向性

二重逆転率変化バーの定量戦略は,次の側面でも最適化できます.

  1. 123の逆転戦略のために長さ,KSスムーシング,DLengthのようなパラメータを最適化して,異なる製品とサイクルに適したパラメータポートフォリオを見つけます.

  2. % 変化バーチャートの input_barsback パラメータを調整して,長期または短時間のバックバック期間の戦略への影響を評価します.

  3. ストップ・ロスの戦略を導入することで,パーセント変化バーからの誤った信号による大きな損失を効果的に回避できます.

  4. より正確なパーセント変化モデルを訓練し,より高い勝利率を得るために機械学習方法を使用して入口と出口のタイミングを決定します.

  5. 戦略からの取引信号を豊かにし,取引頻度を増やすために判断のための他の補助技術指標を増やす.

結論

ダブルリバーサルパーセント変化バー定量戦略は,2つの異なるタイプの戦略の強みを完全に利用し,リスクを制御しながら利益空間を拡大するためにそれらを組み合わせます.この理解しやすい調整可能な戦略は研究と実践に適しています.さらなるパラメータ調整と戦略最適化により,より安定した過剰収益を得ることが期待されています.


/*backtest
start: 2023-11-05 00:00:00
end: 2023-12-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 31/03/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 histogram displays price or % change from previous bar. 
//
// 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


PCB(input_percentorprice,input_barsback,SellZone,BuyZone) =>
    pos = 0.0
    xPrice = close
    xPrice1 = iff(input_percentorprice, xPrice - xPrice[input_barsback], ((xPrice - xPrice[input_barsback]) * 100)/ xPrice[input_barsback])
    pos := iff(xPrice1 > BuyZone, 1,
             iff(xPrice1 < SellZone, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Percent change bar", 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, "---- Percent change bar ----")
input_percentorprice = input(false, title="Price Change")
input_barsback = input(1, title="Look Back")
SellZone = input(-0.33, minval=0.01, step = 0.01)
BuyZone = input(0.33, minval=0.01, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posPCB = PCB(input_percentorprice,input_barsback,SellZone,BuyZone)
pos = iff(posReversal123 == 1 and posPCB == 1 , 1,
	   iff(posReversal123 == -1 and posPCB == -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 )

もっと