PineScript — Strategy.exit не отвечает

#pine-script #algorithmic-trading #trading #tradingview-api #pine-script-v4

Вопрос:

У меня есть некоторые проблемы со стратегией.выход. Это не работает. Как показано на рисунке ниже, оба аргумента выхода должны были сработать!

введите описание изображения здесь

Сценарий RSI:

 // RSI parameters
var RSI = "RSI"
overBought = input(title="OverBought RSI",group=RSI, defval=75)
overSold = input(title="OverSold RSI",group=RSI, defval=20)
rsi50 = input(50,title="RSI average",group=RSI)
rsi14exit = input(title="RSI 14 OverSold Exit Strategy", group=RSI, defval=70)

// RSI Short/Long
rsiLong = rsi(close,6) <= overSold
rsiShort = rsi(close,6) >= overBought
rsiBelowAverage = rsi(close,6) <= rsi50
rsi14_exit = rsi(close,14) >= rsi14exit

// Calculating
MACD Script:
fast_ma = sma_source == "SMA" ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source == "SMA" ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal

// MACD Long/Short
Macd_long = macd >= signal
Macd_short = macd < signal

// Strategy close
strategy.exit("LongA Closed","LongA", loss=longStop, when= Macd_short or rsi14_exit)
 

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

1. В следующий раз, пожалуйста, скопируйте свой полный код от начала до конца. В том числе //@version=4 и т.д. А также, пожалуйста, используйте кнопку code sample {} и оберните ею свой код.

2. Что такое longStop ? Я не вижу никакого определения для этой переменной в вашем коде.

Ответ №1:

Вы действительно хотите закрыть сделку, поэтому используйте strategy.close() вместо этого.

 strategy.close(id="LongA", when= Macd_short or rsi14_exit)
 

Вы можете добавить свой параметр stop loss к вашему strategy.entry вызову. У него есть stop параметр.

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

1. хорошо, но можете ли вы объяснить разницу между strategy.close и strategy.exit, кроме того факта, что вы можете добавить дополнительные параметры в strategy.exit. Потому что я получаю разные результаты, когда я использую strategy.exit и когда я использую его strategy.close.

2. Используйте strategy.close() , если вы хотите использовать рыночный ордер для выхода из определенного входа в позицию. Используйте strategy.exit() , если вы хотите использовать стоп — или лимитный ордер для выхода из позиции. Вы можете прочитать это .

3. Спасибо за информацию!