Die schrittweise Durchschnittsstrategie ist eine sehr verbreitete Quantitative-Trading-Strategie. Die Strategie nutzt die Goldforch-Todetafel der schrittweisen Durchschnittsstrategie, um Trends zu bestimmen, um zu profitieren. Wenn die kurzfristige Schrittweise die langfristige Schrittweise überschreitet, kann man mehr tun.
Die Strategie basiert auf einer beweglichen Gleichschraube, um den Zeitpunkt des Kaufs und Verkaufs zu bestimmen.upOrDown
undlongOrShort
Zwei Boole-Eingabeparameter, um zu beurteilen, ob mehr Platz ist;percentInput
Eingabe von Parametern zur Festlegung des Prozentsatzes der Thresholdänderung des Aktienpreises; VerwendungclosePositionDays
Einzug der Parameter, um die Anzahl der Tage, an denen die Position gehalten wird, festzulegen.
Die Kernlogik der Strategie lautet: Berechnen Sie den heutigen Kursrückgang gegenüber dem gestrigen Wert und senden Sie ein Handelssignal aus, wenn der Prozentsatz der Eintrittsschwelle erreicht wird. Wenn der Kurs rückläufig ist, machen Sie mehr, wenn der Kurs heute gegenüber dem gestrigen Wert rückläufig ist.
Wenn Sie mehr Zeit haben, wird der Tag und die vier Tage danach in verschiedenen Farben auf dem Diagramm markiert.
Risikokontrollmaßnahmen:
Die mobile horizontal-cross-Strategie ist eine sehr einfache und praktische quantitative Handelsstrategie. Sie profitiert von der Trendfähigkeit des Aktienpreises, indem sie die Beziehung zwischen kurz- und langfristigen Trends beurteilt. Die Strategie ist einfach umsetzbar, klar logisch und ist die Grundlage für viele quantitative Handelsstrategien.
/*backtest start: 2023-01-01 00:00:00 end: 2023-10-11 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 // Created by Leon Ross strategy(title = "DaysAfterCertainPercentChangev1", shorttitle = "DACPCv1", overlay = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, calc_on_every_tick=true, initial_capital=100000) //Inputs longOrShort = input(title="Long=Checked Short=Unchecked", type=bool, defval=true) //long=true, down=false upOrDown = input(title="Direction of Today vs. Previous day: Up=Checked Down=Unchecked", type=bool, defval=true) //up=true, down=false: this is the direction of days vs previous day percentInput = input(title="Percent", type=float, defval=4.5) closePositionDays = input(title="How Many Days to Close Position", defval=4) //Conditions //percentUpValue = (close / close[1]) - 1 //percentUp = percentUpValue >= (percentInput/100.0) //upConditions = percentUp //percentDownValue = 1- (close / close[1]) //percentDown = percentDownValue >= (percentInput/100.0) //downConditions = percentDown upValue = (close / close[1]) - 1 downValue = 1 - (close / close[1]) allConditions = if(upOrDown) upValue >= (percentInput/100.0) else downValue >= (percentInput/100.0) //Plots bgcolor(allConditions ? (upOrDown ? green : red) : na, transp=70) bgcolor(allConditions ? silver : na, transp=70, offset=1) bgcolor(allConditions ? silver : na, transp=70, offset=2) bgcolor(allConditions ? silver : na, transp=70, offset=3) bgcolor(allConditions ? silver : na, transp=70, offset=4) //bgcolor(downConditions == 1 ? red : na, transp=70) //bgcolor(downConditions == 1 ? silver : na, transp=70, offset=1) //bgcolor(downConditions == 1 ? silver : na, transp=70, offset=2) //bgcolor(downConditions == 1 ? silver : na, transp=70, offset=3) //bgcolor(downConditions == 1 ? silver : na, transp=70, offset=4) //Entires if(longOrShort) strategy.entry(id = "Long", long = true, when = allConditions) else strategy.entry(id = "Short", long = false, when = allConditions) //Exits if (barssince(allConditions) == closePositionDays) if(longOrShort) strategy.close("Long") else strategy.close("Short")