
Эта стратегия основана на двух средних линий и показателях относительной силы, в сочетании с исторической волатильностью акций, для автоматического покупки и продажи акций. Преимущество стратегии заключается в том, что она обеспечивает сочетание длинной и короткой линий, что позволяет эффективно контролировать риск. Однако существует определенный простор для улучшения, например, можно рассмотреть возможность включения механизма остановки убытков.
Стратегия использует двойную равнолинейную систему, состоящую из 150-недельной линейной средней и 50-дневной быстрой средней, а также 20-дневную самую быструю среднюю линию. Когда цена пересекает 150-недельную линию, считается, что она начинает расти, а когда цена пересекает 50-дневную линию, считается, что она начинает падать. Это позволяет преследовать падение во время восхождения, а во время падения остановить убытки.
Кроме того, стратегия также использует максимальную годовую колебательность и показатель относительной силы, чтобы определить конкретный момент покупки. Сигнал на покупку посылается только тогда, когда цена закрытия превышает максимальную цену, рассчитанную на годовую колебательность, и показатель относительной силы является положительным.
Для решения риска можно установить уровень стоп-лосса или использовать множители ATR в качестве стоп-лосса. Кроме того, параметры могут быть оптимизированы с помощью более строгих обратных измерений.
В целом, эта стратегия является относительно консервативной стратегией инвестирования в акции. Используется двойная равновесная линия для определения основных тенденций и в сочетании с волатильностью и интенсивностью входа в рынок, чтобы эффективно фильтровать ложные прорывы.
/*backtest
start: 2023-12-12 00:00:00
end: 2023-12-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//Relative Strength
strategy("Stan my man", overlay=true)
comparativeTickerId = input("BTC_USDT:swap", title="Comparative Symbol")
l = input(50, type=input.integer, minval=1, title="Period")
baseSymbol = security(syminfo.tickerid, timeframe.period, close)
comparativeSymbol = security(comparativeTickerId, timeframe.period, close)
hline(0, color=color.black, linestyle=hline.style_dotted)
res = baseSymbol / baseSymbol[l] /(comparativeSymbol / comparativeSymbol[l]) - 1
plot(res, title="RS", color=#1155CC)
//volume ma
vol1 = sma(volume,20)
// 30 week ma
ema1 = ema(close, 150)
//consolidation
h1 = highest(high[1],365)
fastPeriod = input(title="Fast MA", type=input.integer, defval=50)
slowPeriod = input(title="Slow MA", type=input.integer, defval=150)
fastestperiod = input(title="Fastest MA", type=input.integer, defval=20)
fastEMA = ema(close, fastPeriod)
slowEMA = ema(close, slowPeriod)
fastestEMA = ema(close, fastestperiod)
monitorStrategy = close < close[20]
// trade conditions
buytradecondition1 = close >ema1 and res>0 and volume> 1.5*vol1 and close > h1
buytradecondition2 = close > fastEMA and volume> 1.5* vol1
selltradecondition1 = close< 0.95 * fastEMA
selltradecondition2 = close< 0.90 * open
if (buytradecondition1)
strategy.entry("long",strategy.long,alert_message ="Seems ready to Buy")
alert("Buy Alert Price (" + tostring(close) + ") crossed over Slow moving average",alert.freq_all)
if (buytradecondition2)
strategy.entry("long",strategy.long,alert_message ="Seems ready to Buy")
alert("Buy Alert Price (" + tostring(close) + ") crossed over fast moving average",alert.freq_all)
if (selltradecondition1)
strategy.close("long",alert_message ="Seems ready to Sell")
alert("Sell Alert Price (" + tostring(close) + ") crossed down fast moving average",alert.freq_all)
if (selltradecondition2)
strategy.close("long",alert_message ="Seems ready to Sell")
alert("Sell Alert Price (" + tostring(close) + ") crossed down 10% below open price ",alert.freq_all)
//alertcondition(buytradecondition1,title ="BuySignal", message ="Price Crossed Slow Moving EMA ")
plot(fastEMA, color=color.navy)
plot(slowEMA, color=color.fuchsia)
plot(fastestEMA, color=color.green)