یہ حکمت عملی تجارتی سگنلز کی نشاندہی کرنے کے لئے آر ایس آئی اشارے ، سادہ چلتی اوسط (ایس ایم اے) اور وزن شدہ چلتی اوسط (ڈبلیو ایم اے) کو جوڑتی ہے۔ یہ 5 منٹ اور 1 گھنٹے کے ٹائم فریم پر بیک وقت رجحان کی سمت کا فیصلہ کرتی ہے۔ تجارتی سگنل اس وقت پیدا ہوتے ہیں جب تیز رفتار آر ایس آئی لائن مستحکم رجحان کے دوران سست لائن سے اوپر یا نیچے عبور کرتی ہے۔
حکمت عملی سب سے پہلے 1 گھنٹے اور 5 منٹ کے ٹائم فریم دونوں پر 144 پیریڈ ڈبلیو ایم اے اور 5 پیریڈ ایس ایم اے کا حساب لگاتی ہے۔ جب 5 منٹ کا ایس ایم اے ڈبلیو ایم اے سے اوپر ہوتا ہے تو ہی تیزی کی مارکیٹ کی نشاندہی کی جاتی ہے۔ اس کے بعد حکمت عملی آر ایس آئی آسکیلیٹر اور متعلقہ کے اور ڈی لائنوں کا حساب لگاتی ہے۔ فروخت کے سگنل اس وقت پیدا ہوتے ہیں جب کے لائن اوور بُک ایریا سے ڈی لائن سے نیچے عبور کرتی ہے۔ خریدنے کے سگنل اس وقت پیدا ہوتے ہیں جب کے لائن اوور سیل ایریا سے ڈی لائن سے تجاوز کرتی ہے۔
یہ ایک بہت ہی موثر رجحان کی پیروی کرنے والی حکمت عملی ہے۔ رجحان کا تعین کرنے کے لئے دو ٹائم فریموں کو شامل کرکے ، یہ غلط سگنلز کو نمایاں طور پر کم کرتا ہے۔ اس کے علاوہ ، یہ سگنلز کو زیادہ قابل اعتماد بنانے کے لئے آر ایس آئی ، ایس ایم اے اور ڈبلیو ایم اے سمیت متعدد فلٹرز کو جوڑتا ہے۔ آر ایس آئی کے ساتھ کے ڈی جے کو چلانے سے ، یہ عام کے ڈی جے حکمت عملی میں شامل کچھ جعلی سگنلز سے بھی بچتا ہے۔ مزید برآں ، اسٹاپ نقصان اور منافع لینے کی مناسب ترتیبات منافع کو مقفل کرنے اور خطرات کو کنٹرول کرنے میں مدد کرتی ہیں۔
اس حکمت عملی کا سب سے بڑا خطرہ غلط رجحان کی تشخیص میں ہے۔ موڑ کے مقامات پر ، قلیل مدتی اور طویل مدتی متحرک اوسط ایک ساتھ اوپر یا نیچے کی طرف مڑ سکتے ہیں ، جس کے نتیجے میں غلط سگنل پیدا ہوسکتے ہیں۔ نیز ، آر ایس آئی مارکیٹوں کے دوران زیادہ شور مچانے والے سگنل پیدا کرسکتا ہے۔ تاہم ، ایس ایم اے ، ڈبلیو ایم اے اور آر ایس آئی پیرامیٹرز کی مدت کو مناسب طریقے سے ایڈجسٹ کرکے ان خطرات کو کم کیا جاسکتا ہے۔
اسٹریٹیجی کو مندرجہ ذیل پہلوؤں سے بہتر بنایا جاسکتا ہے:
یہ حکمت عملی ایک نسبتا solid ٹھوس رجحان کی پیروی کرنے والے نظام کو قائم کرنے کے لئے حرکت پذیر اوسط اور نوسکھئیے کی طاقتوں کا مکمل استعمال کرتی ہے۔ متعدد ٹائم فریموں اور اشارے میں سگنلز کی تصدیق کرکے ، یہ درمیانے اور طویل مدتی رجحانات کو آسانی سے پکڑ سکتا ہے۔ اسٹاپ نقصان اور منافع کی ترتیبات بھی اسے ایک خاص حد تک عام مارکیٹ میں اتار چڑھاؤ کا مقابلہ کرتی ہیں۔ تاہم ، ابھی بھی بہتری کی گنجائش ہے ، جیسے زیادہ اشارے کے مجموعوں کی جانچ ، پیرامیٹر کی اصلاح کے لئے مشین لرننگ کا فائدہ اٹھانا۔ مجموعی طور پر ، یہ ایک بہت ہی امید افزا تجارتی حکمت عملی ہے۔
/*backtest start: 2023-12-22 00:00:00 end: 2024-01-21 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © bufirolas // Works well with a wide stop with 20 bars lookback // for the SL level and a 2:1 reward ratio Take Profit . // These parameters can be modified in the Inputs section of the strategy panel. // "an entry signal it's a cross down or up on // the stochastics. if you're in a downtrend // on the hourly time frame you // must also be in a downtrend on the five // minute so the five period has to be below the 144 // as long as the five period is still trading below // the 144 period on both the hourly and the five minutes // we are looking for these short signals crosses down // in the overbought region of the stochastic. Viceversa for longs" //@version=4 strategy("Stoch + WMA + SMA strat", overlay=true) //SL & TP Inputs i_SL=input(true, title="Use Swing Lo/Hi Stop Loss & Take Profit") i_SwingLookback=input(20, title="Swing Lo/Hi Lookback") i_SLExpander=input(defval=10, step=1, title="SL Expander") i_TPExpander=input(defval=30, step=1, title="TP Expander") i_reverse=input(false, title="Reverse Trades") i_TStop =input(false, title="Use Trailing Stop") //Strategy Inputs src4 = input(close, title="RSI Source") stochOS=input(defval=20, step=5, title="Stochastics Oversold Level") stochOB=input(defval=80, step=5, title="Stochastics Overbought Level") //Stoch rsi Calculations smoothK = input(3, minval=1) smoothD = input(3, minval=1) lengthRSI = input(14, minval=1) lengthStoch = input(14, minval=1) rsi1 = rsi(src4, lengthRSI) k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK) d = sma(k, smoothD) h0 = hline(80, linestyle=hline.style_dotted) h1 = hline(20, linestyle=hline.style_dotted) //MA wmalen=input(defval=144, title="WMA Length") WMA = security(syminfo.tickerid, "60", wma(close, wmalen)) SMA = security(syminfo.tickerid, "60", sma(close, 5)) minWMA = wma(close, wmalen) minSMA = sma(close, 5) //Entry Logic stobuy = crossover(k, d) and k < stochOS stosell = crossunder(k, d) and k > stochOB mabuy = minSMA > minWMA daymabuy = SMA > WMA //SL & TP Calculations SwingLow=lowest(i_SwingLookback) SwingHigh=highest(i_SwingLookback) bought=strategy.position_size != strategy.position_size[1] LSL=valuewhen(bought, SwingLow, 0)-((valuewhen(bought, atr(14), 0)/5)*i_SLExpander) SSL=valuewhen(bought, SwingHigh, 0)+((valuewhen(bought, atr(14), 0)/5)*i_SLExpander) lTP=(strategy.position_avg_price + (strategy.position_avg_price-(valuewhen(bought, SwingLow, 0)))+((valuewhen(bought, atr(14), 0)/5)*i_TPExpander)) sTP=(strategy.position_avg_price - (valuewhen(bought, SwingHigh, 0) - strategy.position_avg_price))-((valuewhen(bought, atr(14), 0)/5)*i_TPExpander) islong=strategy.position_size > 0 isshort=strategy.position_size < 0 //TrailingStop dif=(valuewhen(strategy.position_size>0 and strategy.position_size[1]<=0, high,0)) -strategy.position_avg_price trailOffset = strategy.position_avg_price - LSL var tstop = float(na) if strategy.position_size > 0 tstop := high- trailOffset - dif if tstop<tstop[1] tstop:=tstop[1] else tstop := na StrailOffset = SSL - strategy.position_avg_price var Ststop = float(na) Sdif=strategy.position_avg_price-(valuewhen(strategy.position_size<0 and strategy.position_size[1]>=0, low,0)) if strategy.position_size < 0 Ststop := low+ StrailOffset + Sdif if Ststop>Ststop[1] Ststop:=Ststop[1] else Ststop := na //Stop Selector SL= islong ? LSL : isshort ? SSL : na if i_TStop SL:= islong ? tstop : isshort ? Ststop : na TP= islong ? lTP : isshort ? sTP : na //Entries if stobuy and mabuy and daymabuy strategy.entry("long", long=not i_reverse?true:false) if stosell and not mabuy and not daymabuy strategy.entry("short", long=not i_reverse?false:true) //Exit if i_SL strategy.exit("longexit", "long", stop=SL, limit=TP) strategy.exit("shortexit", "short", stop=SL, limit=TP) //Plots plot(i_SL ? SL : na, color=color.red, style=plot.style_cross) plot(i_SL ? TP : na, color=color.green, style=plot.style_cross) plot(minWMA) plot(minSMA, color=color.green)