
Стратегия основана на QQE и RSI, и использует их для вычисления скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения ско
Эта стратегия основана на RSI и QQE, которая строит многообеменный сигнал, характеризуется тем, что она улавливает тенденции и улавливает колебания. Логика стратегии ясна, параметры меньше, и она подходит для дальнейшей оптимизации и улучшения. Однако стратегия также имеет определенные риски, такие как контроль отмены, параметры настроек и т. Д.
/*backtest
start: 2023-05-21 00:00:00
end: 2024-05-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
//@version=4
// modified by swigle
// thanks colinmck
strategy("QQE signals bot", overlay=true)
RSI_Period = input(14, title='RSI Length')
SF = input(5, title='RSI Smoothing')
QQE = input(4.236, title='Fast QQE Factor')
ThreshHold = input(10, title="Thresh-hold")
src = close
Wilders_Period = RSI_Period * 2 - 1
Rsi = rsi(src, RSI_Period)
RsiMa = ema(Rsi, SF)
AtrRsi = abs(RsiMa[1] - RsiMa)
MaAtrRsi = ema(AtrRsi, Wilders_Period)
dar = ema(MaAtrRsi, Wilders_Period) * QQE
longband = 0.0
shortband = 0.0
trend = 0
DeltaFastAtrRsi = dar
RSIndex = RsiMa
newshortband = RSIndex + DeltaFastAtrRsi
newlongband = RSIndex - DeltaFastAtrRsi
longband := RSIndex[1] > longband[1] and RSIndex > longband[1] ? max(longband[1], newlongband) : newlongband
shortband := RSIndex[1] < shortband[1] and RSIndex < shortband[1] ? min(shortband[1], newshortband) : newshortband
cross_1 = cross(longband[1], RSIndex)
trend := cross(RSIndex, shortband[1]) ? 1 : cross_1 ? -1 : nz(trend[1], 1)
FastAtrRsiTL = trend == 1 ? longband : shortband
// Find all the QQE Crosses
QQExlong = 0
QQExlong := nz(QQExlong[1])
QQExshort = 0
QQExshort := nz(QQExshort[1])
QQExlong := FastAtrRsiTL < RSIndex ? QQExlong + 1 : 0
QQExshort := FastAtrRsiTL > RSIndex ? QQExshort + 1 : 0
//Conditions
qqeLong = QQExlong == 1 ? FastAtrRsiTL[1] - 50 : na
qqeShort = QQExshort == 1 ? FastAtrRsiTL[1] - 50 : na
// Plotting
plotshape(qqeLong, title="QQE long", text="Long", textcolor=color.white, style=shape.labelup, location=location.belowbar, color=color.green, size=size.tiny)
plotshape(qqeShort, title="QQE short", text="Short", textcolor=color.white, style=shape.labeldown, location=location.abovebar, color=color.red, size=size.tiny)
// trade
//if qqeLong > 0
strategy.entry("buy long", strategy.long, 100, when=qqeLong)
if qqeShort > 0
strategy.close("buy long")
// strategy.exit("close_position", "buy long", loss=1000)
// strategy.entry("sell", strategy.short, 1, when=strategy.position_size > 0)