
Эта стратегия является Swing торговой стратегией, которая использует параболическую линию скользящих точек (Parbolic SAR) для перекрестных операций с K-линией, чтобы достичь динамического отслеживания и остановки убытков. Стратегия создает позиции оптовых и дисконтных позиций в bullish и bearish ситуациях и устраняет эти позиционные остановки при обратном движении цены.
Стратегия основана на параболическом SAR, чтобы определить, является ли цена в настоящее время в восходящем или нисходящем тренде. Когда параболический SAR находится ниже линии K, означает, что цена в настоящее время находится в восходящем состоянии, тогда стратегия будет проверять, закрывается ли значение параболического SAR на каждой линии K, чтобы увидеть, пересекает ли она наименьшую цену линии K. Если нет, то это означает, что восходящая тенденция продолжается, и стратегия создает многопозицию.
Благодаря такому принципу действия стратегия может последовательно создавать позиции при подтвержденных ценовых тенденциях и в первое время останавливать убытки, тем самым блокируя прибыль. В то же время, парализовая линия, являясь индикатором динамики, может более точно определить, будет ли тенденция перевернута, что также делает убытки более точными.
Способы повышения устойчивости стратегии включают: оптимизацию параметров стоп-стоп, чтобы они были достаточно строгими; использование других показателей в качестве подтверждения; адаптация параметров показателей к изменяющейся рыночной обстановке; выбор оптимальной комбинации параметров в зависимости от разных сортов и т. д.
Параллельная линия Swing стратегия в целом является эффективной короткой линии операционной стратегии. Она использует параллельные линии показателей, чтобы определить направление тенденции и динамические изменения цен, в сочетании со Свинговым методом торговли, в период роста и падения разновидностей многократно создать плюс и минус позиции. Строгий механизм остановки убытков также делает эту стратегию более сильной способность контроля риска.
/*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)