یہ حکمت عملی رجحانات میں مزید مواقع حاصل کرنے کے لئے ہموار حرکت پذیر اوسط کو اسٹوکاسٹک اشارے کے ساتھ جوڑتی ہے۔ یہ بنیادی طور پر تجارتی سگنل پیدا کرنے کے لئے مختلف ادوار کے ساتھ دو افادیت پسند حرکت پذیر اوسط استعمال کرتا ہے ، جس میں رجحانات میں اعلی منافع حاصل کرنے کے لئے انٹری ٹائمنگ کے انتخاب کے لئے اسٹوکاسٹک اشارے میں K لائن اور D لائن کا کراس اوور بھی شامل ہے۔
یہ حکمت عملی 12 دورانیے اور 26 دورانیے کی ہموار چلتی اوسط استعمال کرتی ہے۔ جب تیز لائن نیچے سے سست لائن کے اوپر سے گزرتی ہے تو ، طویل ہوجائیں۔ جب تیز لائن اوپر سے سست لائن کے نیچے سے گزرتی ہے تو ، مختصر ہوجائیں۔ جعلی سگنلز کو فلٹر کرنے کے ل it ، تیز اور سست لائنوں کو ایک ہی سمت میں ہونے کی ضرورت ہوتی ہے ، جس میں تیز لائن سست لائن کے اوپر لمبی ہے ، اور تیز لائن سست لائن کے نیچے مختصر ہے۔
اسٹوکاسٹک اشارے میں K لائن اور D لائن کا کراس اوور انٹری ٹائمنگ کے انتخاب کے لئے استعمال کیا جاتا ہے۔ جب K لائن اوور بُک لائن سے نیچے سے D لائن سے اوپر سے گزرتی ہے تو ، طویل ہوجائیں۔ جب K لائن اوور سیول لائن سے اوپر سے D لائن سے نیچے سے گزرتی ہے تو ، مختصر ہوجائیں۔
ہموار حرکت پذیر اوسط رجحان کی سمت کا تعین کرتا ہے ، جبکہ اسٹوکاسٹک اشارے شور کو فلٹر کرتا ہے اور انٹری ٹائمنگ کا انتخاب کرتا ہے۔ ان کا امتزاج رجحانات میں زیادہ منافع بخش مواقع حاصل کرسکتا ہے۔
لہذا یہ حکمت عملی اس رجحان کو منتخب طور پر اختیار کرنے کے مواقع کو پکڑنے کے لئے، زیادہ منافع بخش حاصل کرنے کے لئے پیروی کرسکتا ہے.
ان خطرات کو کم کرنے کے لئے، ہم سٹاپ نقصان مقرر کر سکتے ہیں، یا زیادہ اعتدال پسند MA پیرامیٹرز کو اپنانے.
اسٹریٹیجی کو مندرجہ ذیل پہلوؤں سے مزید بہتر بنایا جاسکتا ہے:
مختلف پیرامیٹرز کے امتزاج کی جانچ کرکے ، بہتر پیرامیٹرز تلاش کیے جاسکتے ہیں۔ نیز ، اسٹاپ نقصان کی حکمت عملی مؤثر طریقے سے خطرے کو کم کرسکتی ہے اور استحکام کو بڑھا سکتی ہے۔
یہ حکمت عملی رجحان کی پیروی کے لئے ہموار موونگ اوسط اور اسٹوکاسٹک کی طاقتوں کو مربوط کرتی ہے ، جبکہ بہتر انٹری ٹائمنگ کا انتخاب کرتی ہے۔ یہ کام کرنا آسان ہے ، جس میں قابو پانے والا خطرہ اور بڑی عملی قیمت ہے۔ اس کی کارکردگی کو مسلسل جانچ اور اصلاح کے ذریعے مزید بہتر بنایا جاسکتا ہے۔ یہ کوانٹ ٹریڈرز کو ایک موثر اور مستحکم رجحان ٹریکنگ ماڈل فراہم کرتا ہے۔
/*backtest start: 2024-01-18 00:00:00 end: 2024-01-25 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // author SoftKill strategy(title="Price EMA with stock", shorttitle="EMA STOCH", overlay=true) src = input(title="Source", type=input.source, defval=close) src_0 = src[0] src_1 = src[1] src_2 = src[2] src_3 = src[3] src_4 = src[4] len50 = input(50, minval=1, title="Length") src50 = input(close, title="Source") out50 = ema(src50, len50) len100 = input(100) src100 = input(close, title="Source") out100 = ema(src100, len100) len1 = input(1, minval=1, title="Length") src1 = input(close, title="Source") out1 = sma(src1, len1) length = input(5, minval=1) OverBought = input(80) OverSold = input(20) smoothK = 3 smoothD = 3 k = sma(stoch(close, high, low, length), smoothK) d = sma(k, smoothD) cu = crossover(k,OverSold) co = crossunder(k,OverBought) sma_down = crossunder(out1, out50) sma_up = crossover(out1,out50) //if (not na(k) and not na(d)) // if (co and k < OverSold) // strategy.entry("StochLE", strategy.long, comment="StochLE") //if (cu and k > OverBought) // strategy.entry("StochSE", strategy.short, comment="StochSE") crossCandle_4 = crossover(src[4],out50) crossCandleUnder_4= cross(src[4],out50) crossCandle_3 = crossover(src[3],out50) crossCandleUnder_3= crossunder(src[3],out50) crossCandle_2 = crossover(src[2],out50) crossCandleUnder_2= crossunder(src[2],out50) crossCandle_1 = crossover(src[1],out50) crossCandleUnder_1= crossunder(src[1],out50) crossCandle_0 = crossover(src[0],out50) crossCandleUnder_0= crossunder(src[0],out50) conditionOver = (crossCandle_4 or crossCandle_3 or crossCandle_2 or crossCandle_1 or crossCandle_0) conditionUnder =(crossCandleUnder_4 or crossCandleUnder_3 or crossCandleUnder_2 or crossCandleUnder_1 or crossCandleUnder_0) touch4 = (cross(low[4],out50) or cross(high[4],out50)) touch3 = (cross(low[3],out50) or cross(high[3],out50)) touch2 = (cross(low[2],out50) or cross(high[2],out50)) touch1 = (cross(low[1],out50) or cross(high[1],out50)) touch = touch1 or touch2 or touch3 or touch4 //and sma_up //and sma_down // Getting inputs fast_length = input(title="Fast Length", type=input.integer, defval=12) slow_length = input(title="Slow Length", type=input.integer, defval=26) src_macd = input(title="Source", type=input.source, defval=close) signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9) sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false) sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false) // Plot colors col_grow_above = #26A69A col_grow_below = #FFCDD2 col_fall_above = #B2DFDB col_fall_below = #EF5350 col_macd = #0094ff col_signal = #ff6a00 // Calculating fast_ma = sma_source ? sma(src_macd, fast_length) : ema(src_macd, fast_length) slow_ma = sma_source ? sma(src_macd, slow_length) : ema(src_macd, slow_length) macd = fast_ma - slow_ma signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length) hist = macd - signal //plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 ) //plot(macd, title="MACD", color=col_macd, transp=0) //plot(signal, title="Signal", color=col_signal, transp=0) // plot((conditionOver or conditionUnder or touch) and src[0] >= out50 and close >= out50 and (cu) and out50 > out100 and hist>=0 , title="Buy", style=plot.style_columns, color=color.lime) // plot((conditionOver or conditionUnder or touch) and src[0] <= out50 and close <= out50 and (co) and out50< out100 and hist<=0 , title="sell", style=plot.style_columns, color=color.red) long_cond = ((conditionOver or conditionUnder or touch) and src[0] >= out50 and close > out50 and (cu) and out50 > out100 and hist>=0) short_cond = ((conditionOver or conditionUnder or touch) and src[0] <= out50 and close < out50 and (co) and out50< out100 and hist<=0) tp=input(0.1) sl=input(0.1) strategy.entry("long",strategy.long, when=long_cond) strategy.entry("short",strategy.short, when=short_cond) strategy.exit("X_long", "long", profit=close * tp / syminfo.mintick, loss=close * sl / syminfo.mintick, when=touch ) strategy.exit("x_short", "short",profit=close * tp / syminfo.mintick,loss=close * sl / syminfo.mintick,when = touch ) // //tp = input(0.0003, title="tp") // tp = 0.0003 // //sl = input(1.0 , title="sl") // sl = 1.0 // strategy.exit("closelong", "long" , profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick, alert_message = "closelong") // strategy.exit("closeshort", "short" , profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick, alert_message = "closeshort")