Diese Strategie verwendet ein duales gleitendes Durchschnittssystem, um potenzielle Ausbruchchancen in ausgewählten Aktien oder Kryptowährungen zu identifizieren.
Die Strategie verwendet zwei einfache gleitende Durchschnitte (SMA) mit verschiedenen Perioden als Handelssignale. Der erste SMA hat einen längeren Zeitraum, um die allgemeine Trendrichtung darzustellen. Der zweite SMA hat einen kürzeren Zeitraum, um kurzfristige Kursschwankungen zu erfassen.
Wenn die kurzfristige SMA von unten über die längerfristige SMA überschreitet, signalisiert dies einen Aufwärtstrend der Preise insgesamt, sodass die Strategie eine Long-Position eröffnet.
Darüber hinaus ist die Strategie mit "Überverkauf" und "Überkauf" ausgestattet, um den Handel in Extremsituationen zu vermeiden.
Es gibt weitere Möglichkeiten, diese Strategie zu optimieren:
Diese Strategie kombiniert die Stärken des Trendfollowing und Pullback-Handels mit einem doppelten gleitenden Durchschnittssystem, um Chancen zu erkennen. Gleichzeitig vermeiden eingebettete Überkauft/Überverkauft-Konditionen unnötige Positionsöffnungen. Es ist eine sehr praktische Quant-Handelsstrategie, die eine tiefere Forschung und Optimierung wert ist.
/*backtest start: 2023-02-20 00:00:00 end: 2024-02-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // @version=5 strategy("Profitable Pullback Trading Strategy", overlay=true,initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // Inputs ma_length1 = input.int(280,'MA length 1', step = 10,group = 'Moving Avg. Parameters', inline = 'MA') ma_length2 = input.int(13,'MA length 2', step = 1,group = 'Moving Avg. Parameters', inline = 'MA') sl = input.float(title="Stop Loss (%)", defval=0.07, step=0.1, group="Moving Avg. Parameters") too_deep = input.float(title="Too Deep (%)", defval=0.27, step=0.01, group="Too Deep and Thin conditions", inline = 'Too') too_thin = input.float(title="Too Thin (%)", defval=0.03, step=0.01, group="Too Deep and Thin conditions", inline = 'Too') // Calculations ma1 = ta.sma(close,ma_length1) ma2 = ta.sma(close,ma_length2) too_deep2 = (ma2/ma1-1) < too_deep too_thin2 = (ma2/ma1-1) > too_thin // Entry and close condtions var float buy_price = 0 buy_condition = (close > ma1) and (close < ma2) and strategy.position_size == 0 and too_deep2 and too_thin2 close_condition1 = (close > ma2) and strategy.position_size > 0 and (close < low[1]) stop_distance = strategy.position_size > 0 ? ((buy_price - close) / close) : na close_condition2 = strategy.position_size > 0 and stop_distance > sl stop_price = strategy.position_size > 0 ? buy_price - (buy_price * sl) : na // Entry and close orders if buy_condition strategy.entry('Long',strategy.long) if buy_condition[1] buy_price := open if close_condition1 or close_condition2 strategy.close('Long',comment="Exit" + (close_condition2 ? "SL=true" : "")) buy_price := na plot(ma1,color = color.blue) plot(ma2,color = color.orange)