#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. Спасибо за информацию!