この戦略は,波動トレンド指標に基づいて設計されています.波動トレンド指標は,価格チャネルと移動平均を組み合わせて,市場のトレンドを効果的に特定し,取引信号を生成します.この戦略は,波動トレンドラインが過買いまたは過売り状態を表すキーレベルを横切ったときに,ロングまたはショートポジションに入ります.
この戦略は,波動トレンド指標を使用して,トレンドとオーバー買い/オーバーセールレベルを特定し,戦略をフォローする効果的なトレンドを形成する.短期オシレーターと比較して,波動トレンドは誤った信号を避け,より良い安定性を提供します.適切なリスク管理方法により,安定した利益を達成することができます.パラメータとモデルチューニングからさらなるパフォーマンスブームが期待できます.
/*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")