Diese Strategie kombiniert RSI, MFI, Stoch RSI und MACD vier Indikatoren, um Bitcoin Intraday-Handel umzusetzen.
Der RSI-Indikator wird verwendet, um festzustellen, ob der Markt überkauft oder überverkauft ist.
Der MFI-Indikator beurteilt den Kapitalfluss auf dem Markt und erzeugt ein Kaufsignal, wenn der MFI unter 23 liegt, und ein Verkaufssignal, wenn der MFI über 80 liegt.
Der Stoch RSI-Indikator bestimmt, ob der Markt überkauft oder überverkauft ist. Er erzeugt ein Kaufsignal, wenn die K-Linie unter 34 liegt und ein Verkaufssignal, wenn sie über 80 liegt.
Der MACD-Indikator beurteilt den Markttrend und die Dynamik. Er erzeugt ein Kaufsignal, wenn die schnelle Linie unter der langsamen Linie liegt und das Histogramm negativ ist, und ein Verkaufssignal für das entgegengesetzte Szenario.
Die Kombination von vier Hauptindikatoren verbessert die Genauigkeit des Signals und vermeidet Verluste, die durch den Ausfall eines einzelnen Indikators verursacht werden.
Aufträge werden nur dann erteilt, wenn mehrere Indikatoren gleichzeitig Signale geben, was die Wahrscheinlichkeit falscher Signale erheblich verringert.
Die Einführung von Intraday-Handelsstrategien vermeidet Übernachtrisiken und senkt die Kapitalkosten.
Die Handelsfrequenz der Strategie kann relativ gering sein, mit bestimmten zeitlichen Risiken.
Es besteht immer noch die Wahrscheinlichkeit, dass Indikatoren falsche Signale geben können.
Es gibt einige Überkauf- und Überverkaufsrisiken, wobei die Indikatorparameter entsprechend angepasst oder weitere Indikatorlogik hinzugefügt werden können.
Hinzufügen von adaptivem Indikatorparameter, Anpassung von Indikatorparametern in Echtzeit basierend auf Marktvolatilität und Veränderungsgeschwindigkeit.
Hinzufügen von Stop-Loss-Logik. Stop-Loss-Ausgang, wenn Verluste einen bestimmten Prozentsatz übersteigen, um einen einzelnen Verlust effektiv zu kontrollieren.
Verstärken Sie multidimensionale Urteile wie Markthitze und Marktangst, um den Strategiegewinnraum zu verbessern.
Durch die Überprüfung von Signalen anhand von vier wichtigen Indikatoren kann diese Strategie die Falschsignalrate effektiv reduzieren und ist eine relativ stabile Hochfrequenz-Gewinnstrategie.
/*backtest start: 2023-11-29 00:00:00 end: 2023-12-06 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('John Day Stop Loss', overlay=false, pyramiding=1, default_qty_type=strategy.cash, default_qty_value=10000, initial_capital=10000, currency='USD', precision=2) strategy.risk.allow_entry_in(strategy.direction.long) from_day = input.int(defval=1, title='From Day', minval=1) from_month = input.int(defval=1, title='From Month', minval=1) from_year = input.int(defval=2021, title='From Year', minval=2020) to_day = input.int(defval=1, title='To Day', minval=1) to_month = input.int(defval=1, title='To Month', minval=1) to_year = input.int(defval=2025, title='To Year', minval=2020) time_cond = time > timestamp(from_year, from_month, from_day, 00, 00) and time < timestamp(to_year, to_month, to_day, 00, 00) //time_cond = true //Stop Loss longProfitPerc = input.float(title="Stop Loss Profit (%)", defval=2.1) / 100 longExitPrice = strategy.position_avg_price * (1 - longProfitPerc) //RSI - yellow up = ta.rma(math.max(ta.change(close), 0), 14) down = ta.rma(-math.min(ta.change(close), 0), 14) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) plot(rsi, "RSI", color=#00FFFF) buy_rsi = true // rsi < 40 sell_rsi = true //rsi > 70 //MFI - cyan mf = ta.mfi(hlc3, 14) plot(mf, "MF", color=#FFFF00) buy_mfi = mf < input.int(defval=23, title='Max MF', minval=1) sell_mfi = mf > input.int(defval=80, title='Min MF', minval=1) //Stoch RSI OverBought_StochRSI = input(80) OverSold_StochRSI = input(34) smoothK = input.int(3, "K", minval=1) smoothD = input.int(2, "D", minval=1) lengthRSI = input.int(14, "RSI Length", minval=1) lengthStoch = input.int(14, "Stochastic Length", minval=1) srcRSI = input(close, title="RSI Source") rsi1 = ta.rsi(srcRSI, lengthRSI) kStochRSI = ta.sma(ta.stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK) d = ta.sma(kStochRSI, smoothD) co = ta.crossover(kStochRSI,d) cu = ta.crossunder(kStochRSI,d) buy_stochRSI = co and kStochRSI < OverSold_StochRSI sell_stochRSI = cu and kStochRSI > OverBought_StochRSI plot(kStochRSI, "K", color=#2962FF) plot(d, "D", color=#FF6D00) h0 = hline(OverBought_StochRSI, "Upper Band", color=#787B86) h1 = hline(OverSold_StochRSI, "Lower Band", color=#787B86) fill(h0, h1, color=color.rgb(33, 150, 243, 90), title="Background") //MACD // Getting inputs fast_length = input(title="Fast Length", defval=12) slow_length = input(title="Slow Length", defval=26) src = input(title="Source", defval=close) signal_length = input.int(title="Signal Smoothing", minval = 1, maxval = 50, defval = 9) sma_source = input.string(title="Oscillator MA Type", defval="EMA", options=["SMA", "EMA"]) sma_signal = input.string(title="Signal Line MA Type", defval="EMA", options=["SMA", "EMA"]) // Plot colors //col_macd = input(#2962FF, "MACD Line ", group="Color Settings", inline="MACD") //col_signal = input(#FF6D00, "Signal Line ", group="Color Settings", inline="Signal") //col_grow_above = input(#26A69A, "Above Grow", group="Histogram", inline="Above") //col_fall_above = input(#B2DFDB, "Fall", group="Histogram", inline="Above") //col_grow_below = input(#FFCDD2, "Below Grow", group="Histogram", inline="Below") //col_fall_below = input(#FF5252, "Fall", group="Histogram", inline="Below") // Calculating fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length) slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length) macd = fast_ma - slow_ma signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length) hist = macd - signal buy_MACD = macd < signal and hist < 0 sell_MACD = macd > signal and hist > 0 //buy_MACD = true //sell_MACD = true //plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below))) //plot(macd, title="MACD", color=col_macd) //plot(signal, title="Signal", color=col_signal) sessionColor = color(na) if time_cond if (not na(kStochRSI) and not na(d)) cmt = str.tostring(close) if (buy_stochRSI and buy_MACD and buy_mfi and buy_rsi) strategy.entry("BUY", strategy.long, comment='BUY @ ' + cmt) if longProfitPerc != 0 strategy.exit(id="x", stop=longExitPrice, comment='EXIT @ ' + str.tostring(longExitPrice)) sessionColor := input.color(#0000FF, "buy") //red if (sell_stochRSI and sell_MACD and sell_mfi and sell_rsi) strategy.entry("SELL", strategy.short, comment='SELL @ ' + cmt) sessionColor := input.color(#FF0000, "sell") //green bgcolor(sessionColor)