ダブルリバーサルパーセント変化棒グラフ定量戦略


作成日: 2023-12-06 17:44:35 最終変更日: 2023-12-06 17:44:35
コピー: 0 クリック数: 581
1
フォロー
1619
フォロワー

ダブルリバーサルパーセント変化棒グラフ定量戦略

概要

この戦略は,二重反転パーセント変化柱形図量化策略と呼ばれています.この戦略は,2つの異なるタイプの戦略を組み合わせて取引し,それぞれの優位性を発揮し,より良い取引効果を達成します.

第”の戦略は,反転戦略原理を適用し,閉盘価格と前日または前日の比較に基づいて,ストック指標と連携して,反転信号が発生したかどうかを判断する.第2の戦略は,パーセントの変化柱状図の指標を使用して,毎日の下落の変化幅を判断し,ポジションの構築の基礎として使用する.

戦略原則

ダブル・リバース・パーセンテージ・チェンジ柱状グラフの定量化戦略は,次の2つの構成要素を使用する.

第”部は123の反転策で,その判断の論理は次のとおりです.

  1. 閉店価格が前日の閉店価格より低い場合と,ストック快線が慢線より高く,50レベルより高い場合,超買い状態であると考えられ,売り込みシグナルを生じます.

  2. 閉店価格が前日の閉店価格より高く,ストック快線が慢線より低く,50レベルを下回った場合,超売り区域にあると考えられ,買取シグナルが生じます.

  3. 購入と売却のシグナルによって,多頭または空頭ポジションを設定する.

2つ目の部分は,百分比変化柱状図指標で,その判断論理は次のとおりです.

  1. 現在の K 線が,以前の N 根の K 線 (input_barsback 参数で定義) に関する変化のパーセントを計算する.

  2. 変更パーセントが BuyZone で定義された正値領域より高い場合,買取シグナルを生成する. SellZone で定義された負値領域より低い場合,売り出しシグナルを生成する.

  3. 購入と売却のシグナルによって,多頭または空頭ポジションを設定する.

最後に,もし2つの戦略から生じる信号が一致するならば,実際にポジションが作られる.もし信号が一致しないならば,ポジションは変化しない.

優位分析

ダブル・リバース・パーセンテージ・チェンジ・ピログラフの定量化戦略には以下の利点がある.

  1. 2つの異なるタイプの戦略のそれぞれの優位性を吸収し,より安定した収益を上げることを期待する. 123の逆転戦略は,市場の逆転点を判断する際の優れたパフォーマンスを発揮する. 百分比変化柱形図指標は,突破型の動きを迅速に識別する. 両方と組み合わせると,逆転を識別することも,トレンドを捉えることもできる.

  2. この2つの戦略信号の組み合わせは,誤った信号を効果的にフィルターし,不要なストップ損失を軽減し,取引リスクを軽減します.

  3. 123反転策のパラメータを最適化できるスペースは広く,パラメータの組み合わせを調整して,異なる品種と周期に対して最適化適応を行うことができる.

  4. パーセンテージ・チェンジ・ポール・グラフ 戦略は直感的で,パラメータを調整することで取引リスクを把握し,制御することが容易である.

リスク分析

双反転パーセント変化の柱状グラフ化策にはいくつかのリスクがあります.

  1. 2つの戦略信号が一致しない場合,ポジションを確立できず,取引の機会の一部を逃す. %変化の柱形図のパラメータの範囲を適切に緩め,マッチングの確率を増加させることができます.

  2. 123逆転策略はパラメータに敏感であり,不適切なパラメータの組み合わせが過剰な誤信号を生成する可能性がある.異なる品種別テストパラメータに対応して,パラメータが安定するようにする.

  3. 百分比変化柱形図から生じる買取り信号の方向が間違って,123の反転信号とマッチすると,大きな損失が生じます. 百分比変化パラメータの範囲幅を適切に縮小して,リスクを制御する必要があります.

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

最適化の方向

ダブル・リバース・パーセンテージ・チェンジ柱形図の定量化策は,以下の方向から最適化できる.

  1. 123反転戦略のLength,KSmoothing,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 )