動的PSARストック変動追跡戦略

作者: リン・ハーンチャオチャン, 開催日:2024-02-05 10:40:12
タグ:

img

概要

この戦略は,パラボリックSAR指標に基づくシンプルで効率的な株価変動追跡および自動取利益/ストップ損失戦略を実装する. 株価の上昇傾向と下落傾向を動的に追跡し,自動取引を実現し,手動介入なしに反転点で自動取利益/ストップ損失点を設定することができます.

戦略原則

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

上向きトレンドが確認された場合,戦略は次のBARのPSARポイントでストップ・ロスを設定し,下向きトレンドが確認された場合,戦略は次のBARのPSARポイントで利益を取点を設定します.これは,株価が逆転するときに自動的に利益を取/損失停止機能を達成します.

同時に,この戦略には,PSAR指標の敏感性を調整するためのスタート値,ステップ値,最大値などのパラメータが組み込まれており,その結果,取利益/ストップ損失の効果を最適化します.

利点分析

この戦略の最大の利点は,株式変動追跡の完全な自動化と自動的取利益/ストップ損失を実現することです.手動取引の時間とエネルギーコストを大幅に削減する市場動向の手動判断なしで利益を実現できます.

伝統的なストップ・ロスト/テイク・プロフィート戦略と比較して,この戦略のテイク・プロフィート/テイク・ロスト・ポイントは変動しており,価格変動と機会をより迅速に把握できる.また,誤判の可能性を軽減し,利益の可能性を高めます.

パラメータの最適化後 この戦略は 主要なトレンドで継続的に利益を得ることができ 逆転が起こると 資本を保護するために自動的に損失を止めます

リスク分析

この戦略の最大のリスクは,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)


もっと