Совместное добавление стоп-лосса и тейк-профита в сценарий pine

#pine-script

#pine-скрипт

Вопрос:

Я пытаюсь использовать трейлинг-тейк-профит и трейлинг-стоп-лосс в своей стратегии. Я использую trail_offset и trail_points внутри функции strategy.exit. Использование этой функции дважды, один раз для длинных, а затем для коротких. Однако это добавляет функциональность трейлинг-тейк-профита в мою стратегию, как мне теперь добавить трейлинг-стоп-лоссы? Прилагается пример кода, к которому я готов добавить трейлинг-стоп-лосс с 5%.

 //@version=4
strategy("My Strategy", overlay=true)

longCondition = crossover(sma(close, 14), sma(close, 28))
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = crossunder(sma(close, 14), sma(close, 28))
if (shortCondition)
    strategy.entry("Short", strategy.short)
//Take profit and Stop Loss
strategy.exit("long exit","Long",trail_points=0.1*close/syminfo.mintick,trail_offset=0.05*close/syminfo.mintick)
strategy.exit("short exit","Short",trail_points=0.1*close/syminfo.mintick,trail_offset=0.05*close/syminfo.mintick)
    
 

Ответ №1:

loss Для этого есть параметры:

 strategy.exit("short exit","Short",trail_points=0.1*close/syminfo.mintick,trail_offset=0.05*close/syminfo.mintick, loss = ...)
 

ваш полный скрипт будет:

 //@version=4
strategy("My Strategy", overlay=true)

longCondition = crossover(sma(close, 14), sma(close, 28))
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = crossunder(sma(close, 14), sma(close, 28))
if (shortCondition)
    strategy.entry("Short", strategy.short)
//Take profit and Stop Loss
strategy.exit("long exit","Long",trail_points=0.1*close/syminfo.mintick,trail_offset=0.05*close/syminfo.mintick,loss=0.05*close/syminfo.mintick)
strategy.exit("short exit","Short",trail_points=0.1*close/syminfo.mintick,trail_offset=0.05*close/syminfo.mintick,loss=0.05*close/syminfo.mintick)
 

Комментарии:

1. Я тоже об этом думал, но это будет просто еще один обычный стоп-лосс, верно? Я пытаюсь использовать разные смещения для тейк-профита и стоп-лосса. Пример: для тейк-профита: точки следа = 10, смещение = 3. Для стоп-лосса: точки следа = 0, смещение = 5. Не могу придумать способ сделать это в одном скрипте

2. strategy.exit может работать с обоими — стоп и трейлинг-стоп. До тех пор, пока не будет достигнута конечная сумма, позиция будет защищена stop. После этого будет работать только трейлинг-стоп.

3. Что, если я хочу использовать разные значения конечных точек для тейк-профита и стоп-лосса?

4. Это выполнимо.

5. Выполнимо, но как?