ダイナミックPSAR株価ボラティリティ追跡戦略


作成日: 2024-02-05 10:40:12 最終変更日: 2024-02-05 10:40:12
コピー: 0 クリック数: 654
1
フォロー
1617
フォロワー

ダイナミックPSAR株価ボラティリティ追跡戦略

概要

この戦略は,Parabolic SAR指標に基づいて,株価の変動を追跡し,自動ストップ・ロスを実行するシンプルで効率的な戦略を実現します.これは,株価の上昇傾向を動的に追跡し,上昇と逆転の転換点で自動的にストップ・ロスを設定し,人工の介入を必要とせず,自動取引を実現します.

戦略原則

この戦略は,株価の変動のトレンド方向を判断するために,パラボリックSAR指数を使用します.PSAR指数がK線の下にあるときは,上昇傾向を示し,PSAR指数がK線上にある場合は,下降傾向を示します.戦略は,PSAR値の変化をリアルタイムで追跡して,トレンドの変化を判断します.

確認上の上昇傾向の場合,戦略は次のBARのPSAR点位にストップポイントを設定します. 確認下の傾向の場合,戦略は次のBARのPSAR点位にストップポイントを設定します. これにより,株価が逆転するときに,自動的にストップポイントを停止する機能を実現します.

また,策略は,スタート値,ステップ値,最大値などのパラメータを内蔵し,PSAR指標の感度を調整して,停止停止の効果を最適化します.

戦略的優位分析

この戦略の最大の利点は,株式の変動を追跡し,自動ストップ・ロスを完全に自動化することです.市場動向を人工的に判断する必要なく,利益を得ることができ,手作業の時間と労力のコストを大幅に削減します.

伝統的なストップ・ストップ・ストップ戦略と比べて,この戦略のストップ・ストップ・ストップは浮動的な変化であり,価格変化による機会をより迅速に捉えることができ,同時に誤判の可能性を低減し,利益の余地を増やすことができます.

パラメータを最適化すると,この戦略は大きなトレンドで継続的に利益を得ることができ,逆転が来るときに自動的にProtect本金を失うことができます.

リスク分析

この戦略の最大のリスクは,PSAR指標が誤ったトレンド方向を判断する確率である. 株価が短期的な調整振動を起こすとき,PSAR指標に誤ったシグナルが発生する可能性がある. このとき,PSARのパラメータを合理的に最適化して判断の正確性を向上させる必要がある.

もう一つのリスクポイントは,ストップ・ストップ・ロスのポイントが現在の価格にあまりにも近いことです.これは,ストップ・ロスのポイントが突破される確率が増加し,本金に大きな衝撃をもたらす可能性があります.この時点で,十分な緩衝スペースを確保するために,適切なストップ・ストップ・ロスの範囲を緩解する必要があります.

戦略最適化の方向性

この戦略の最適化余地は,主にPSAR指数自体のパラメータ調整に焦点を当てている.異なる株をテストし,スタート値,ステップ値,最大値の設定を最適化することにより,PSAR指数を価格変動により敏感にすることができるが,判断の正確性を保証することもできる.これは,大量に反測と分析の作業を必要とする.

もう一つの最適化方向は,ストップ・ストップ・ロスの範囲を設定することです.これは,異なる株式の1日間の波動範囲を研究し,その基礎で合理的な損益比率要求を設定する必要があります.これは,本金損失の確率をさらに減らすことができます.

要約する

この戦略は,パラボリックSAR指標を利用して,株式の追跡と自動ストップ・ロスを実現する完全に自動化された取引戦略である.その最大の利点は,人間の介入を必要とせず,時間と労力のコストを減らすことです.リスクは,主に指標判断ミスから発生し,パラメータの最適化によって軽減することができます.全体的に,この戦略は,株式の量的な取引のための効率的で信頼性の高いソリューションを提供します.

ストラテジーソースコード
/*backtest
start: 2024-01-28 00:00:00
end: 2024-02-04 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Swing Parabolic SAR Strategy", overlay=true)
start = input(0.02)
increment = input(0.02)
maximum = input(0.2)
var bool uptrend = na
var float EP = na
var float SAR = na
var float AF = start
var float nextBarSAR = na
if bar_index > 0
	firstTrendBar = false
	SAR := nextBarSAR
	if bar_index == 1
		float prevSAR = na
		float prevEP = na
		lowPrev = low[1]
		highPrev = high[1]
		closeCur = close
		closePrev = close[1]
		if closeCur > closePrev
			uptrend := true
			EP := high
			prevSAR := lowPrev
			prevEP := high
		else
			uptrend := false
			EP := low
			prevSAR := highPrev
			prevEP := low
		firstTrendBar := true
		SAR := prevSAR + start * (prevEP - prevSAR)
	if uptrend
		if SAR > low
			firstTrendBar := true
			uptrend := false
			SAR := max(EP, high)
			EP := low
			AF := start
	else
		if SAR < high
			firstTrendBar := true
			uptrend := true
			SAR := min(EP, low)
			EP := high
			AF := start
	if not firstTrendBar
		if uptrend
			if high > EP
				EP := high
				AF := min(AF + increment, maximum)
		else
			if low < EP
				EP := low
				AF := min(AF + increment, maximum)
	if uptrend
		SAR := min(SAR, low[1])
		if bar_index > 1
			SAR := min(SAR, low[2])
	else
		SAR := max(SAR, high[1])
		if bar_index > 1
			SAR := max(SAR, high[2])
	nextBarSAR := SAR + AF * (EP - SAR)
	if barstate.isconfirmed
		if uptrend
			strategy.entry("short", strategy.short, stop=nextBarSAR, comment="short")
			strategy.cancel("long")
		else
			strategy.entry("long", strategy.long, stop=nextBarSAR, comment="long")
			strategy.cancel("short")
			
plot(SAR, style=plot.style_cross, linewidth=3, color=color.orange)
plot(nextBarSAR, style=plot.style_cross, linewidth=3, color=color.aqua)