Diese Strategie basiert auf dem Multi-Timeframe Moving Average Crossover, um mittel-langfristige Trends zu verfolgen. Sie nimmt eine Pyramidenposition ein, um Anstiege zu verfolgen und ein exponentielles Kapitalwachstum zu erzielen. Der größte Vorteil besteht darin, die mittel-langfristigen Trends und Pyramideneinträge in Chargen und Phasen erfassen zu können, um überschüssige Renditen zu erzielen.
Das ist die grundlegende Handelslogik.
Die Strategie ist sehr geeignet, um mittelfristige Trends zu erfassen. Pyramiden-Einträge in Chargen können ein sehr hohes Risiko-Rendite-Verhältnis erreichen. Es gibt auch einige Betriebsrisiken, die durch Parameter-Tuning kontrolliert werden sollten. Insgesamt ist dies eine vielversprechende Strategie, die eine Live-Handelsverifizierung und weitere Optimierung wert ist.
/*backtest start: 2023-12-27 00:00:00 end: 2024-01-03 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Coinrule //@version=3 strategy(shorttitle='Pyramiding Entry On Early Trends',title='Pyramiding Entry On Early Trends (by Coinrule)', overlay=false, pyramiding= 7, initial_capital = 1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 20, commission_type=strategy.commission.percent, commission_value=0.1) //Backtest dates fromMonth = input(defval = 1, title = "From Month") fromDay = input(defval = 10, title = "From Day") fromYear = input(defval = 2020, title = "From Year") thruMonth = input(defval = 1, title = "Thru Month") thruDay = input(defval = 1, title = "Thru Day") thruYear = input(defval = 2112, title = "Thru Year") showDate = input(defval = true, title = "Show Date Range") start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window window() => true // create function "within window of time" //MA inputs and calculations inSignal=input(9, title='MAfast') inlong1=input(100, title='MAslow') inlong2=input(200, title='MAlong') MAfast= sma(close, inSignal) MAslow= sma(close, inlong1) MAlong= sma(close, inlong2) Bullish = crossover(close, MAfast) longsignal = (Bullish and MAfast > MAslow and MAslow < MAlong and window()) //set take profit ProfitTarget_Percent = input(3) Profit_Ticks = (close * (ProfitTarget_Percent / 100)) / syminfo.mintick //set take profit LossTarget_Percent = input(3) Loss_Ticks = (close * (LossTarget_Percent / 100)) / syminfo.mintick //Order Placing strategy.entry("Entry 1", strategy.long, when = (strategy.opentrades == 0) and longsignal) strategy.entry("Entry 2", strategy.long, when = (strategy.opentrades == 1) and longsignal) strategy.entry("Entry 3", strategy.long, when = (strategy.opentrades == 2) and longsignal) strategy.entry("Entry 4", strategy.long, when = (strategy.opentrades == 3) and longsignal) strategy.entry("Entry 5", strategy.long, when = (strategy.opentrades == 4) and longsignal) strategy.entry("Entry 6", strategy.long, when = (strategy.opentrades == 5) and longsignal) strategy.entry("Entry 7", strategy.long, when = (strategy.opentrades == 6) and longsignal) if (strategy.position_size > 0) strategy.exit(id="Exit 1", from_entry = "Entry 1", profit = Profit_Ticks, loss = Loss_Ticks) strategy.exit(id="Exit 2", from_entry = "Entry 2", profit = Profit_Ticks, loss = Loss_Ticks) strategy.exit(id="Exit 3", from_entry = "Entry 3", profit = Profit_Ticks, loss = Loss_Ticks) strategy.exit(id="Exit 4", from_entry = "Entry 4", profit = Profit_Ticks, loss = Loss_Ticks) strategy.exit(id="Exit 5", from_entry = "Entry 5", profit = Profit_Ticks, loss = Loss_Ticks) strategy.exit(id="Exit 6", from_entry = "Entry 6", profit = Profit_Ticks, loss = Loss_Ticks) strategy.exit(id="Exit 7", from_entry = "Entry 7", profit = Profit_Ticks, loss = Loss_Ticks)