Cette stratégie est conçue sur la base de l'indicateur de tendance de vague. L'indicateur de tendance de vague combine le canal de prix et la moyenne mobile pour identifier efficacement les tendances du marché et générer des signaux de négociation. Cette stratégie entre dans des positions longues ou courtes lorsque la ligne de tendance de vague traverse des niveaux clés représentant un état de surachat ou de survente.
Cette stratégie identifie les tendances et les niveaux de surachat/survente à l'aide de l'indicateur de tendance de vague, formant une tendance efficace suivant la stratégie. Par rapport aux oscillateurs à court terme, la tendance de vague évite les faux signaux et offre une meilleure stabilité. Avec des méthodes de contrôle des risques appropriées, elle peut réaliser des profits stables. Une amélioration supplémentaire de la performance peut être attendue des paramètres et du réglage du modèle.
/*backtest start: 2023-11-20 00:00:00 end: 2023-11-27 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@author SoftKill21 //@version=4 strategy(title="WaveTrend strat", shorttitle="WaveTrend strategy") n1 = input(10, "Channel Length") n2 = input(21, "Average Length") Overbought = input(70, "Over Bought") Oversold = input(-30, "Over Sold ") // BACKTESTING RANGE // From Date Inputs fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) fromYear = input(defval = 2001, title = "From Year", minval = 1970) // To Date Inputs toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) toYear = input(defval = 2020, title = "To Year", minval = 1970) // Calculate start/end date and time condition DST = 1 //day light saving for usa //--- Europe London = iff(DST==0,"0000-0900","0100-1000") //--- America NewYork = iff(DST==0,"0400-1500","0500-1600") //--- Pacific Sydney = iff(DST==0,"1300-2200","1400-2300") //--- Asia Tokyo = iff(DST==0,"1500-2400","1600-0100") //-- Time In Range timeinrange(res, sess) => time(res, sess) != 0 london = timeinrange(timeframe.period, London) newyork = timeinrange(timeframe.period, NewYork) startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true //and (london or newyork) ap = hlc3 esa = ema(ap, n1) d = ema(abs(ap - esa), n1) ci = (ap - esa) / (0.015 * d) tci = ema(ci, n2) wt1 = tci wt2 = sma(wt1,4) plot(0, color=color.gray) plot(Overbought, color=color.red) plot(Oversold, color=color.green) plot(wt1, color=color.green) longButton = input(title="Long", type=input.bool, defval=true) shortButton = input(title="Short", type=input.bool, defval=true) if(longButton==true) strategy.entry("long",1,when=crossover(wt1,Oversold) and time_cond) strategy.close("long",when=crossunder(wt1, Overbought)) if(shortButton==true) strategy.entry("short",0,when=crossunder(wt1, Overbought) and time_cond) strategy.close("short",when=crossover(wt1,Oversold)) //strategy.close_all(when= not (london or newyork),comment="time") if(dayofweek == dayofweek.friday) strategy.close_all(when= timeinrange(timeframe.period, "1300-1400"), comment="friday")