Die Strategie heißt
Der Hauptprinzip dieser Strategie besteht darin, Rebound-Möglichkeiten in Bereichsgebundenen Märkten zu erfassen, indem die Umkehrung von kurzfristigen gleitenden Durchschnitten verwendet wird. Insbesondere, wenn die Preise längerfristige gleitende Durchschnitte (wie 20-Tage- und 50-Tage-MA) durchbrechen und Anzeichen eines starken Überverkaufs zeigen, neigen die Preise zu einem gewissen Grad aufgrund der durchschnittlichen Umkehrcharakteristik von Marktschwankungen zu erholen. Zu diesem Zeitpunkt, wenn kürzere Zyklusgleitende Durchschnitte (wie 10-Tage-MA) ein Aufwärtsumkehrsignal zeigen, wäre es ein guter Zeitpunkt zum Kauf. In dieser Strategie kauft es, wenn der Preis unter dem 20-Tage-MA liegt, während er über dem 50-Tage-MA liegt, um seinen Rebound mit kurzfristiger Umkehr zu erfassen.
Die spezifische Einstiegslogik ist: Kaufen Sie 1 Lot, wenn der Preis den 20-Tage-MA durchbricht, fügen Sie 1 Lot hinzu, wenn Sie den 50-Tage-MA durchbrechen, fügen Sie weiterhin 1 Lot hinzu, wenn Sie den 100-Tage-MA durchbrechen, und fügen Sie bis zu 1 Lot hinzu, wenn Sie den 200-Tage-MA durchbrechen, für maximal 4 Lots. Nehmen Sie Gewinn, nachdem Sie die vorgegebenen Ziele erreicht haben. Es legt auch die Zeit und Stop-Loss-Bedingungen fest.
Im Allgemeinen ist dies eine klassische und universelle MA-Handelsstrategie. Sie nutzt die Glättungsfunktion von MA korrekt, kombiniert mit mehreren MA, um kurzfristige Kaufmöglichkeiten zu identifizieren. Sie kontrolliert Risiken, indem sie Aufträge pyramidiert und rechtzeitig Gewinne erzielt. Aber ihre Reaktion auf Marktereignisse wie wichtige Politiknachrichten kann passiver sein. Dies ist etwas, das weiter optimiert werden kann. Insgesamt kann diese Strategie mit entsprechenden Verbesserungen in der Parameteroptimierung und Risikokontrolle eine stetige Überzugsrendite erzielen.
/*backtest start: 2023-12-13 00:00:00 end: 2023-12-20 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA_zorba1", shorttitle="zorba_ema", overlay=true) // Input parameters qt1 = input.int(5, title="Quantity 1", minval=1) qt2 = input.int(10, title="Quantity 2", minval=1) qt3 = input.int(15, title="Quantity 3", minval=1) qt4 = input.int(20, title="Quantity 4", minval=1) ema10 = ta.ema(close, 10) ema20 = ta.ema(close, 20) ema50 = ta.ema(close, 50) ema100 = ta.ema(close, 100) ema200 = ta.ema(close, 200) // Date range filter start_date = timestamp(year=2021, month=1, day=1) end_date = timestamp(year=2024, month=10, day=27) in_date_range = true // Profit condition profit_percentage = input(1, title="Profit Percentage") // Adjust this value as needed // Pyramiding setting pyramiding = input.int(2, title="Pyramiding", minval=1, maxval=10) // Buy conditions buy_condition_1 = in_date_range and close < ema20 and close > ema50 and close < open and close < low[1] buy_condition_2 = in_date_range and close < ema50 and close > ema100 and close < open and close < low[1] buy_condition_3 = in_date_range and close < ema100 and close > ema200 and close < open and close < low[1] buy_condition_4 = in_date_range and close < ema200 and close < open and close < low[1] // Exit conditions profit_condition = strategy.position_avg_price * (1 + profit_percentage / 100) <= close exit_condition_1 = in_date_range and (close > ema10 and ema10 > ema20 and ema10 > ema50 and ema10 > ema100 and ema10 > ema200 and close < open) and profit_condition and close < low[1] and close < low[2] exit_condition_2 = in_date_range and (close < ema10 and close[1] > ema10 and close < close[1] and ema10 > ema20 and ema10 > ema50 and ema10 > ema100 and ema10 > ema200 and close < open) and profit_condition and close < low[1] and close < low[2] // Exit condition for when today's close is less than the previous day's low //exit_condition_3 = close < low[1] // Strategy logic strategy.entry("Buy1", strategy.long, qty=qt1 * pyramiding, when=buy_condition_1) strategy.entry("Buy2", strategy.long, qty=qt2 * pyramiding, when=buy_condition_2) strategy.entry("Buy3", strategy.long, qty=qt3 * pyramiding, when=buy_condition_3) strategy.entry("Buy4", strategy.long, qty=qt4 * pyramiding, when=buy_condition_4) strategy.close("Buy1", when=exit_condition_1 or exit_condition_2) strategy.close("Buy2", when=exit_condition_1 or exit_condition_2) strategy.close("Buy3", when=exit_condition_1 or exit_condition_2) strategy.close("Buy4", when=exit_condition_1 or exit_condition_2)