パラボリックSARモメント逆転戦略

作者: リン・ハーンチャオチャン開催日:2023年12月22日 14:45:12
タグ:

img

概要

この戦略は,スウィング取引のためのモメンタムトラッキングとストップロスを達成するために,パラボリックSAR滑り値とキャンドルスティックとの間のクロスオーバー操作を利用する.この戦略は,価格が上昇し低下するときにロングとショートポジションを確立する.価格が逆転するときにストップロスをするためにこれらのポジションを閉鎖する.

戦略の論理

この戦略の核心は,現在の価格が上昇傾向か下落傾向にあるかどうかを判断するためにパラボリックSAR指標に依存している.パラボリックSAR指標がキャンドルスティックを下回っているとき,価格は現在上昇していることを意味します.この場合,戦略は各キャンドルスティックの終了時に,パラボリックSAR値がキャンドルスティックの低値を越えているかどうかをチェックします.そうでなければ,上昇傾向が継続し,戦略はロングポジションを確立します.パラボリックSARが低値を越えた場合,上昇傾向が下向きに逆転することを意味し,戦略はストップ損失のためにロングポジションを閉鎖します.

対照的に,Parabolic SAR がキャンドルスティックの上にある場合,価格は現在下落していることを意味します.この場合,戦略は各キャンドルスティックの終了時に,Parabolic SAR がキャンドルスティックの高値を下回るか否かを確認します.そうでなければ,ショートポジションを確立します.Parabolic SAR が高値を越えると,下落傾向が逆転して上向きになり,ストップ損失のためにショートポジションを閉じます.

この論理を通じて,戦略は価格トレンドに沿ってポジションを確立し,トレンドが逆転する最初の時点でストップロスを実現し,利益をロックすることができます.一方,モメントインジケーターとしてのパラボリックSARは,トレンドが逆転しているかどうかをより正確に決定し,ストップロスをより正確にすることができます.

利点

  1. パラボリックSARは,傾向と逆転点を決定するための高度で正確な技術指標であり,判断の精度を向上させます.
  2. モメントトラッキングとリバースストップロスのメソッドを利用することで,トレンドの機会を最大限に活用できます.
  3. 厳格なストップ・ロスの規則は リスク管理能力が良いことを意味します
  4. 最適化されたパラメータにより,この戦略は GBP/JPYの強いトレンドに特に適しています.

リスク

  1. 単一指標戦略と同様に,この戦略は,トレンドと逆転に関するパラボリックSARの誤った判断に苦しむ可能性があります.無効な信号は不必要な損失につながる可能性があります.
  2. この戦略は,入口と出口のパラボリックSARに完全に依存している.不適切なパラメータ設定と緩やかなストップ・ロストポイントは,リスクを効果的に制御できない可能性があります.
  3. 市場構造や環境の変化により,どの戦略も徐々に悪化する可能性があります.定期的なバックテストと最適化が必要です.

安定性を高める方法は,ストップ・ロストポイントを十分に厳格にするために最適化すること,確認のために他の指標を組み合わせること,変化する環境に適応するためにパラメータを調整すること,異なる製品のための最適なパラメータセットを選択することなどです.

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

  1. より良いパフォーマンスのためにパラボリックSARパラメータの組み合わせをテストし最適化します.
  2. MACD,KDなどの他の指標を組み合わせて 多指標の確認システムを形成し,信号の信頼性を向上させる.
  3. トレールストップ損失,タイムストップ損失,価格ストップ損失など,異なるストップ損失方法のテスト効果
  4. 異なる製品特性に基づいてパラメータを最適化して,戦略が製品全体で良い収益を達成できるようにする.

結論

一般的には,このパラボリックSARスウィング戦略は,かなり効果的な短期的取引戦略である.スウィング取引方法とともに,トレンド方向とモメンタム変化を決定するためにパラボリックSARを利用し,上下トレンドの間に長短ポジションを繰り返し確立する.厳格なストップ損失メカニズムは,この戦略に適切なリスク管理能力を与えます.しかし,単一指標戦略として,パラボリックSARの無効性は大きな影響を与えるでしょう.したがって,これはいくつかの強みと潜在力を持つ戦略ですが,いくつかのリスクもあります.ライブ取引で安定した過剰リターンを生み出すためにバックテスト,最適化,強化が必要です.


/*backtest
start: 2023-12-14 00:00:00
end: 2023-12-21 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Parabolic SAR Strategy", overlay=true)
start = input(0.05)
increment = input(0.075)
maximum = input(1)

fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2000, title = "From Year", minval = 1970)
 //monday and session 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true

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 and time_cond
		if uptrend
			strategy.entry("ParSE", strategy.short, stop=nextBarSAR, comment="ParSE")
			strategy.cancel("ParLE")
		else
			strategy.entry("ParLE", strategy.long, stop=nextBarSAR, comment="ParLE")
			strategy.cancel("ParSE")
plot(SAR, style=plot.style_cross, linewidth=3, color=color.orange)
plot(nextBarSAR, style=plot.style_cross, linewidth=3, color=color.aqua)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)

もっと