veresk1

Запрет на выход из Лонга в явном восходящем тренде

COINBASE:ETHUSD   Эфириум / Доллар США
// Проверено на часовом графике эфира, увеличение прибыли

// Фиксация тренда для запрета выхода из Лонга при явном восхдящем тренде
// и для запрета на Лонг при явном нисходящем тренде (также запрет на выход из Шорта)

// Если обе линии up_trend и down_trend на графике ВЫШЕ текущей цены, то запрет на выход из Лонга
// Если обе линии up_trend и down_trend на графике НИЖЕ текущей цены, то запрет на Лонг


//Использвать так, добавлять условие к открытие и закрытию позиций:
//if not up_trend_marker
//только тогда разрешено закрытие Лонг
//if not down_trend_marker
//только тогда разрешено открытие Лонг и закрытие Шорт

int steps = input(defval = 85, title = 'steps', type = input.integer)
float percents = 0
float avr_bar1 = 0
float avr_bar2 = 0
float avr_bar3 = 0
float avr_bar4 = 0
var float up_trend = 0
var float down_trend = 0
var bool up_trend_marker = false
var bool down_trend_marker = false

avr_bar1:=sma(close, steps-1)
avr_bar2:=sma(close, steps * 2 - 1 - steps)
avr_bar3:=sma(close, steps * 3 - 1 - steps * 2)
avr_bar4:=sma(close, steps * 4 - 1 - steps * 3)

percents := 1 + (steps / 40 ) / 100
if close > avr_bar1 * percents and avr_bar1 > avr_bar2 * percents and avr_bar2 > avr_bar3 * percents and avr_bar3 > avr_bar4 * percents
up_trend := close * 1.1
up_trend_marker := true
else
up_trend := close * 0.9
up_trend_marker := false

percents := 1 - (steps / 40 ) / 100
if close < avr_bar1 * percents and avr_bar1 < avr_bar2 * percents and avr_bar2 < avr_bar3 * percents and avr_bar3 < avr_bar4 * percents
down_trend := close * 0.85
down_trend_marker := true
else
down_trend := close * 1.15
down_trend_marker := false

plot(series = down_trend, title = 'down_trend', color = color.red, linewidth = 1)
plot(series = up_trend, title = 'up_trend', color = color.yellow, linewidth = 1)