یہ ایک مقداری تجارتی حکمت عملی ہے جو رجحانات کا تعین کرنے کے لئے آر ایس آئی اور ٹی 3 اشارے کا استعمال کرتی ہے اور موافقت پذیر پی میکس بریک آؤٹ کو نافذ کرنے کے لئے اے ٹی آر اشارے کی بنیاد پر اسٹاپ نقصان کی لائنیں طے کرتی ہے۔ اس کا بنیادی خیال منافع بخش ہونے کے ساتھ ساتھ خطرات کو کنٹرول کرنے کے لئے رجحان کے تعین اور اسٹاپ نقصان کی ترتیبات کو بہتر بنانا ہے۔
RSI اور T3 اشارے کا استعمال کرتے ہوئے رجحانات کا تعین کریں
اے ٹی آر اشارے کی بنیاد پر ایڈجسٹ پی ایم ایکس سٹاپ نقصان لائنیں مقرر کریں
کراس اوور پر خریدیں اور سٹاپ نقصان پر باہر نکلیں
اس حکمت عملی کے اہم فوائد:
اہم خطرات:
واپسی کا خطرہ
قلیل مدتی الٹیاں اسٹاپ نقصان کو متحرک کرسکتی ہیں اور نقصان کا سبب بن سکتی ہیں۔ اثر کو کم کرنے کے لئے اسٹاپ نقصان کو نرم کرسکتے ہیں۔
رجحان کا تعین کرنے میں ناکامی کا خطرہ
آر ایس آئی + ٹی 3
مزید اصلاح کے لئے کچھ ہدایات:
یہ حکمت عملی آر ایس آئی ، ٹی 3 اور اے ٹی آر اشارے کی طاقت کو مربوط کرتی ہے ، جس سے رجحان کا تعین اور رسک کنٹرول کا امتزاج حاصل ہوتا ہے۔ واحد اشارے کے مقابلے میں ، اس میں زیادہ درستگی اور ڈراؤونگ کنٹرول ہوتا ہے ، جس سے یہ ایک قابل اعتماد رجحان ٹریکنگ حکمت عملی بن جاتی ہے۔ پیرامیٹرز اور رسک کنٹرول کو بہتر بنانے کے لئے ابھی بھی گنجائش ہے۔ مجموعی طور پر ایک تجویز کردہ مقداری تجارتی حکمت عملی کو فروغ دینے کے قابل ہے۔
/*backtest start: 2023-11-14 00:00:00 end: 2023-11-21 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © KivancOzbilgic //developer: @KivancOzbilgic //author: @KivancOzbilgic strategy("PMax on Rsi w T3 Strategy","PmR3St.", overlay=false, precision=2) src = input(hl2, title="Source") Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3) length =input(8, "Tillson T3 Length", minval=1) T3a1 = input(0.7, "TILLSON T3 Volume Factor", step=0.1) Periods = input(10,title="ATR Length", type=input.integer) rsilength = input(14, minval=1, title="RSI Length") showrsi = input(title="Show RSI?", type=input.bool, defval=true) showsupport = input(title="Show Moving Average?", type=input.bool, defval=true) showsignalsk = input(title="Show Crossing Signals?", type=input.bool, defval=true) highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true) i = close>=close[1] ? close-close[1] : 0 i2 = close<close[1] ? close[1]-close : 0 Wwma_Func(src,rsilength)=> wwalpha = 1/ rsilength WWMA = 0.0 WWMA := wwalpha*src + (1-wwalpha)*nz(WWMA[1]) WWMA=Wwma_Func(src,rsilength) AvUp = Wwma_Func(i,rsilength) AvDown = Wwma_Func(i2,rsilength) AvgUp = sma(i,rsilength) AvgDown =sma(i2,rsilength) k1 = high>close[1] ? high-close[1] : 0 k2 = high<close[1] ? close[1]-high : 0 k3 = low>close[1] ? low-close[1] : 0 k4 = low<close[1] ? close[1]-low : 0 AvgUpH=(AvgUp*(rsilength-1)+ k1)/rsilength AvgDownH=(AvgDown*(rsilength-1)+ k2)/rsilength AvgUpL=(AvgUp*(rsilength-1)+ k3)/rsilength AvgDownL=(AvgDown*(rsilength-1)+ k4)/rsilength rs = AvUp/AvDown rsi= rs==-1 ? 0 : (100-(100/(1+rs))) rsh=AvgUpH/AvgDownH rsih= rsh==-1 ? 0 : (100-(100/(1+rsh))) rsl=AvgUpL/AvgDownL rsil= rsl==-1 ? 0 : (100-(100/(1+rsl))) TR=max(rsih-rsil,abs(rsih-rsi[1]),abs(rsil-rsi[1])) atr=sma(TR,Periods) plot(showrsi ? rsi : na, "RSI", color=#8E1599) band1 = hline(70, "Upper Band", color=#C0C0C0) band0 = hline(30, "Lower Band", color=#C0C0C0) fill(band1, band0, color=#9915FF, transp=90, title="Background") T3e1=ema(rsi, length) T3e2=ema(T3e1,length) T3e3=ema(T3e2,length) T3e4=ema(T3e3,length) T3e5=ema(T3e4,length) T3e6=ema(T3e5,length) T3c1=-T3a1*T3a1*T3a1 T3c2=3*T3a1*T3a1+3*T3a1*T3a1*T3a1 T3c3=-6*T3a1*T3a1-3*T3a1-3*T3a1*T3a1*T3a1 T3c4=1+3*T3a1+T3a1*T3a1*T3a1+3*T3a1*T3a1 T3=T3c1*T3e6+T3c2*T3e5+T3c3*T3e4+T3c4*T3e3 MAvg=T3 Pmax_Func(rsi,length)=> longStop = MAvg - Multiplier*atr longStopPrev = nz(longStop[1], longStop) longStop := MAvg > longStopPrev ? max(longStop, longStopPrev) : longStop shortStop = MAvg + Multiplier*atr shortStopPrev = nz(shortStop[1], shortStop) shortStop := MAvg < shortStopPrev ? min(shortStop, shortStopPrev) : shortStop dir = 1 dir := nz(dir[1], dir) dir := dir == -1 and MAvg > shortStopPrev ? 1 : dir == 1 and MAvg < longStopPrev ? -1 : dir PMax = dir==1 ? longStop: shortStop PMax=Pmax_Func(rsi,length) plot(showsupport ? MAvg : na, color=color.black, linewidth=2, title="T3") pALL=plot(PMax, color=color.red, linewidth=2, title="PMax", transp=0) alertcondition(cross(MAvg, PMax), title="Cross Alert", message="PMax - Moving Avg Crossing!") alertcondition(crossover(MAvg, PMax), title="Crossover Alarm", message="Moving Avg BUY SIGNAL!") alertcondition(crossunder(MAvg, PMax), title="Crossunder Alarm", message="Moving Avg SELL SIGNAL!") alertcondition(cross(src, PMax), title="Price Cross Alert", message="PMax - Price Crossing!") alertcondition(crossover(src, PMax), title="Price Crossover Alarm", message="PRICE OVER PMax - BUY SIGNAL!") alertcondition(crossunder(src, PMax), title="Price Crossunder Alarm", message="PRICE UNDER PMax - SELL SIGNAL!") buySignalk = crossover(MAvg, PMax) plotshape(buySignalk and showsignalsk ? PMax*0.995 : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0) sellSignallk = crossunder(MAvg, PMax) plotshape(sellSignallk and showsignalsk ? PMax*1.005 : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0) mPlot = plot(rsi, title="", style=plot.style_circles, linewidth=0,display=display.none) longFillColor = highlighting ? (MAvg>PMax ? color.green : na) : na shortFillColor = highlighting ? (MAvg<PMax ? color.red : na) : na fill(mPlot, pALL, title="UpTrend Highligter", color=longFillColor) fill(mPlot, pALL, title="DownTrend Highligter", color=shortFillColor) dummy0 = input(true, title = "=Backtest 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 = 2005, title = "From Year", minval = 2005) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToYear = input(defval = 9999, title = "To Year", minval = 2006) Start = timestamp(FromYear, FromMonth, FromDay, 00, 00) Finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) Timerange() => time >= Start and time <= Finish ? true : false if buySignalk strategy.entry("Long", strategy.long,when=Timerange()) if sellSignallk strategy.entry("Short", strategy.short,when=Timerange())