Это стратегия, основанная на индикаторе SSL Channel. Она включает в себя стоп-лосс и управление прибылью, чтобы закрепить прибыль для стабильного роста капитала.
Основная логика кода состоит в том, чтобы использовать золотой крест верхней и нижней полос SSL для определения направления тренда.
После входа в позицию стратегия будет использовать ATR умноженное на коэффициент для установки стоп-лосса и цен на получение прибыли. Например, цена стоп-лосса - цена минус ATR * 1.5 и цена получения прибыли - цена плюс ATR * 1. Это может эффективно контролировать одиночный убыток и блокировать прибыль.
Когда канал SSL пересекается, закрывайте позицию. Это может отслеживать точки перегиба в тренде для своевременного остановки потерь.
Соответствующие решения:
Общая логика этой стратегии ясна, используя канал SSL для определения тренда и установки разумных стоп-лосса и получения прибыли. Но все еще требуется дальнейшее тестирование и оптимизация, включение других индикаторов для фильтрации ложных сигналов и поиска лучшей комбинации параметров. В то же время параметры должны быть скорректированы в соответствии с различными рынками, чтобы сделать стратегию более гибкой. В целом эта стратегия обеспечивает надежную основу для достижения стабильного дохода.
/*backtest start: 2022-11-26 00:00:00 end: 2023-05-14 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Designed per No Nonsense Forex VP rules //For testing your individual indicators before the full system //Originated from causecelebre //Tried to put in as much VP rules as possible /////////////////////////////////////////////////// //Rules Implemented: /////////////////////////////////////////////////// // - SL 1.5 x ATR // - TP 1 x ATR // // - Entry conditions //// - Entry from 1 x confirmation // - Exit conditions //// - Exit on confirmation flip /////////////////////////////////////////////////// //Trades entries /////////////////////////////////////////////////// // - First entry L1 or S1 with standard SL and TP /////////////////////////////////////////////////// //Included Indicators and settings /////////////////////////////////////////////////// // - Confirmtion = SSL 10 /////////////////////////////////////////////////// //Credits // Strategy causecelebre https://www.tradingview.com/u/causecelebre/ // SSL Channel ErwinBeckers https://www.tradingview.com/u/ErwinBeckers/ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Change log //First release. Testing of indicators ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// strategy(title="NNFX Strategy Indicator | jh", overlay = true ) ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // **** Set the main stuff **** /////////////////////////////////////////////////// //Price price = close ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // ATR stuff /////////////////////////////////////////////////// slMultiplier = input(1.5, "SL") tpMultiplier = input(1, "TP") atrlength = input(title="ATR Length", defval=14, minval=1) atrsmoothing = input(title="Smoothing", defval="SMA", options=["RMA", "SMA", "EMA", "WMA"]) ma_function(source, atrlength) => if atrsmoothing == "RMA" rma(source, atrlength) else if atrsmoothing == "SMA" sma(source, atrlength) else if atrsmoothing == "EMA" ema(source, atrlength) else wma(source, atrlength) //plot(ma_function(tr(true), atrlength), title = "ATR", color=#991515, transp=0) atr = ma_function(tr(true), atrlength) ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // **** Confirmation **** /////////////////////////////////////////////////// ssllen=input(title="SSL Length Period", defval=10) smaHigh=sma(high, ssllen) smaLow=sma(low, ssllen) Hlv = na Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1] sslDown = Hlv < 0 ? smaHigh: smaLow sslUp = Hlv < 0 ? smaLow : smaHigh plot(sslDown, "SSL Down", linewidth=1, color=red) plot(sslUp, "SSL Up", linewidth=1, color=lime) /////////////////////////////////////////////////// //Confirm Signals /////////////////////////////////////////////////// c_Up = sslUp c_Down = sslDown //Signals based on crossover c_Long = crossover(c_Up, c_Down) c_Short = crossover(c_Down, c_Up) //Signals based on signal position trendLong = c_Up > c_Down ? 1 : 0 trendShort = c_Down > c_Up ? 1 : 0 confirmLong = c_Long confirmShort = c_Short plotshape(trendLong, color = green, style=shape.triangleup, location=location.bottom) plotshape(trendShort, color = red, style=shape.triangledown, location=location.bottom) ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Entries and Exits ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (year>2009) //Long entries with standard 1.5 ATR for SL, 1 ATR for TP long_sl = price - (atr * slMultiplier) long_tp = price + (atr * tpMultiplier) strategy.order("L1", strategy.long, when = confirmLong) strategy.close("L1", when = confirmShort) strategy.exit("L Limit Exit", "L1", stop = long_sl, limit = long_tp) //Short entries with standard 1.5 ATR for SL, 1 ATR for TP short_sl = price + (atr * slMultiplier) short_tp = price - (atr * tpMultiplier) strategy.order("S1", strategy.short, when = confirmShort) strategy.close("S1", when = confirmLong) strategy.exit("S Limit Exit", "S1", stop = short_sl, limit = short_tp) ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //End //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////