এই কৌশলটি ওয়েভ ট্রেন্ড সূচকের উপর ভিত্তি করে ডিজাইন করা হয়েছে। ওয়েভ ট্রেন্ড সূচকটি বাজারের প্রবণতা কার্যকরভাবে সনাক্ত করতে এবং ট্রেডিং সংকেত তৈরি করতে মূল্য চ্যানেল এবং চলমান গড়ের সংমিশ্রণ করে। এই কৌশলটি দীর্ঘ বা সংক্ষিপ্ত অবস্থানে প্রবেশ করে যখন ওয়েভ ট্রেন্ড লাইনটি অত্যধিক ক্রয় বা অত্যধিক বিক্রয় অবস্থা প্রতিনিধিত্বকারী মূল স্তরের উপর অতিক্রম করে।
এই কৌশলটি তরঙ্গ প্রবণতা সূচক ব্যবহার করে প্রবণতা এবং ওভারক্রয় / ওভারসোল্ড স্তরগুলি সনাক্ত করে, কৌশল অনুসরণ করে একটি কার্যকর প্রবণতা গঠন করে। স্বল্পমেয়াদী দোলকের তুলনায়, তরঙ্গ প্রবণতা মিথ্যা সংকেত এড়ায় এবং আরও স্থিতিশীলতা সরবরাহ করে। সঠিক ঝুঁকি নিয়ন্ত্রণ পদ্ধতির সাথে, এটি স্থিতিশীল মুনাফা অর্জন করতে পারে। পরামিতি এবং মডেল টিউনিং থেকে আরও কর্মক্ষমতা বৃদ্ধি আশা করা যেতে পারে।
/*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")