К основному содержимому
Все коллекцииТорговые ботыSignal бот
Код скрипта TradingView — Тейк-профит и Стоп-лосс

Код скрипта TradingView — Тейк-профит и Стоп-лосс

Пример кода TradingView для задания уровней Тейк-профита и Стоп-лосса.

Gery avatar
Автор: Gery
Обновлено более 3 лет/г. назад

Тейк-профит / Стоп-лосс (Strategy скрипт)

Take Profit (Стратегия)

Чтобы создать Тейк-профит для вашей стратегии на TradingView, вам нужно будет создать входное значение для вашего параметра в процентах. В примере кода Тейк-профит составляет 10%. Такой подход поможет вам легко настроить параметры вашей стратегии.

long_tp_inp = input(10, title='Long Take Profit %', step=0.1)/100

После этого вам нужно будет указать цену входа в вашу позицию, чтобы начать отслеживать увеличение или уменьшение цены от точки входа. Если вы хотите нанести «Тейк-профит» на график, используйте команду plot.

long_take_level = strategy.position_avg_price * (1 + long_tp_inp)
plot(long_take_level, color=color.green)

Вставьте это условие в свою функцию strategy.exit.

strategy.exit("Take Profit","Long", limit=long_take_level)

Стоп-лосс (Стратегия)

Чтобы создать Cтоп-лосс, вам нужно будет проделать ту же процедуру, что и в предыдущем разделе, но с небольшими изменениями. Прежде всего, вам нужно будет изменить знак (с + на -).

long_sl_inp = input(5, title='Long Stop Loss %', step=0.1)/100
long_stop_level = strategy.position_avg_price * (1 - long_sl_inp)
plot(long_stop_level, color=color.red)

Во-вторых, функцию strategy.exit также нужно изменить.

strategy.exit("Take Profit/ Stop Loss","Long", stop=long_stop_level)


В целом скрипт вашей стратегии с Тейк-профитом и Стоп-лоссом будет выглядеть так:

/// Long Take Profit
long_tp_inp = input(10, title='Long Take Profit %', step=0.1)/100
long_take_level = strategy.position_avg_price * (1 + long_tp_inp)
plot(long_take_level, color=color.green)

/// Long Stop Loss
long_sl_inp = input(5, title='Long Stop Loss %', step=0.1)/100
long_stop_level = strategy.position_avg_price * (1 - long_sl_inp)
plot(long_stop_level, color=color.red)

/// Strategy Eecution
entry_long = *** INSERT YOUR LONG CONDITIONS ***
exit_long = *** INSERT YOUR EXIT CONDITIONS ***

strategy.entry(id="Long", long=true, when=entry_long)
strategy.exit("Take Profit/ Stop Loss","Long", stop=long_stop_level, limit=long_take_level)
strategy.close(id="Long", when=exit_long, comment = "Exit")

Study скрипт и Сигналы

Поскольку вы протестировали свою стратегию с помощью strategy скрипта, вам теперь нужно преобразовать его в study скрипт, чтобы автоматизировать вашу торговлю в Wunderbit Trading. Проблема с языком PineScript заключается в том, что в study скрипте некоторые функции не разрешены (например, strategy.entry, strategy.exit и т.д.). Соответственно, вам нужно найти способ обойти это.

Прежде всего, вам нужно изменить способ хранения цены входа в позицию. В study скрипте вам нужно будет использовать функцию «valuewhen». Она должна быть помещена после условия входа в позицию.


long_tp_inp = input(10, title='Long Take Profit %', step=0.1)/100
long_sl_inp = input(5, title='Long Stop Loss %', step=0.1)/100

entry_long = *** INSERT YOUR ENTRY CONDITIONS ***
entry_price_long=valuewhen(entry_long,close,0)

После этого вам нужно создать переменные, которые будут определять ваш Тейк-профит (TP_long / SL_long), и вставить их в ваши условия exit_long.

TP_long = entry_price_long * (1 + long_tp_inp)
plot(TP_long, color=color.green)
SL_long = entry_price_long * (1 - long_sl_inp)
plot(SL_long, color=color.red)

exit_long = *** INSERT YOUR ENTRY CONDITIONS ***, (high > TP_long or low < SL_long)

После этого вы можете создать условия сигналов и нанести их на график. Полный пример кода представлен ниже.

long_tp_inp = input(10, title='Long Take Profit %', step=0.1)/100
long_sl_inp = input(5, title='Long Stop Loss %', step=0.1)/100

entry_long = *** INSERT YOUR ENTRY CONDITIONS ***
entry_price_long=valuewhen(entry_long,close,0)

TP_long = entry_price_long * (1 + long_tp_inp)
plot(TP_long, color=color.green)
SL_long = entry_price_long * (1 - long_sl_inp)
plot(SL_long, color=color.red)

exit_long = *** INSERT YOUR ENTRY CONDITIONS ***, (high > TP_long or low < SL_long)
/// Alert Conditions
alertcondition(entry_long, title="Enter Long")
alertcondition(exit_long, title="Exit Long")

// Plot Alerts onf the graph
plotshape(series=entry_long, text="BUY", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(series=exit_long, text="EXIT BUY",style=shape.triangledown, location=location.abovebar, color=color.purple, size=size.small)
Нашли ответ на свой вопрос?