یہ حکمت عملی ایک امتزاج حکمت عملی ہے جو رجحان کے بعد آنے والے اشارے ، رجحان کے بعد آنے والے اشارے اور حرکت پذیر اوسط اشارے کو مربوط کرتی ہے تاکہ رجحان کے بعد آنے اور توڑنے والے اندراج / باہر نکلنے کا احساس ہو۔ یہ بنیادی طور پر اندراج / باہر نکلنے کے وقت کا تعین کرنے کے لئے اسٹوکاسٹک اشارے اور سپر ٹرینڈ اشارے کے امتزاج کا استعمال کرتا ہے ، اور مرکزی مارکیٹ کے رجحان کا فیصلہ کرنے کے لئے ای ایم اے لائنوں کا استعمال کرتا ہے۔
حکمت عملی میں درج ذیل اشارے شامل ہیں:
ای ایم اے لائنز: اہم رجحان کا تعین کرنے کے لئے ای ایم اے 25، 50، 100 اور 200 کا استعمال کریں۔ جب ای ایم اے 25 ای ایم اے 50 سے اوپر اور ای ایم اے 100 ای ایم اے 200 سے اوپر عبور کرتا ہے تو ، یہ ایک بڑھتی ہوئی رجحان ہے ، دوسری صورت میں یہ نیچے کی رجحان ہے۔
سپر ٹرینڈ ٹرینڈ مندرجہ ذیل اشارے: پیرامیٹرز فیکٹر 3 اور اے ٹی آر 10 ہیں تاکہ یہ فیصلہ کیا جاسکے کہ موجودہ قیمت اوپر کی طرف ہے یا نیچے کی طرف۔ جب سپر ٹرینڈ سبز ہے تو ، یہ اوپر کی طرف ہے۔ جب یہ سرخ ہے تو ، یہ نیچے کی طرف ہے۔
اسٹوکاسٹک رفتار اشارے: %K 8 اور %D 3 اس بات کا تعین کرنے کے لئے کہ آیا اسٹوکاسٹک سنہری کراس یا مردہ کراس پیدا کرتا ہے۔ جب %K لائن نیچے سے %D لائن کو عبور کرتی ہے تو ، یہ سنہری کراس سگنل ہے ، اور اس کے برعکس مردہ کراس کے لئے۔
خریدنے کی حکمت عملی یہ ہے: ای ایم اے اپ ٹرینڈ + سپر ٹرینڈ اپ ٹرینڈ + اسٹوکاسٹک گولڈن کراس دکھاتا ہے۔
فروخت کی حکمت عملی یہ ہے: ای ایم اے نیچے کی طرف رجحان ظاہر کرتا ہے + سپر ٹرینڈ نیچے کی طرف رجحان ظاہر کرتا ہے + اسٹوکاسٹک مردہ کراس۔
یہ حکمت عملی رجحان، رفتار اور بریک آؤٹ اشارے کو قابل اعتماد انداز میں مارکیٹ کی نقل و حرکت اور تجارتی مقامات کا تعین کرنے کے لئے ضم کرتی ہے.
اس حکمت عملی کے اہم فوائد یہ ہیں:
متعدد اشارے کو یکجا کرنے سے استحکام میں اضافہ ہوتا ہے اور جعلی بریک آؤٹس کو مؤثر طریقے سے فلٹر کیا جاتا ہے۔
رفتار اشارے کو شامل کرنے سے ابتدائی موڑ کے مقامات کا پتہ چل سکتا ہے۔
اپنی مرضی کے مطابق پیرامیٹرز مختلف مارکیٹ کے ماحول کے مطابق ہیں.
نسبتا موثر سٹاپ نقصان اور منافع لینے کی ترتیب کا احساس ہوتا ہے.
روزانہ کی طرح لمبے وقت کے فریم پر بیک ٹسٹ کرتے وقت اچھی طرح کام کرتا ہے۔
کچھ خطرات بھی ہیں:
پیرامیٹرز کی غلط ترتیبات بہت کثرت سے تجارت یا غیر مستحکم سگنل کا سبب بن سکتی ہیں۔ پیرامیٹرز کو بہتر بنانے کی ضرورت ہے۔
ابھی بھی وقت میں غلط فیصلے ہوسکتے ہیں۔ مزید فلٹر اشارے شامل کیے جاسکتے ہیں۔
اسٹوکاسٹک انتہا پر قائم سٹاپ نقصان بہت قریب ہوسکتا ہے۔ وسیع اسٹاپ ٹیسٹ کرنے کے قابل ہے۔
ناکافی بیک ٹسٹ ڈیٹا پیرامیٹر فٹنگ میں تعصب کا سبب بن سکتا ہے۔ بیک ٹسٹ کی مدت میں توسیع کریں۔
حکمت عملی کو مندرجہ ذیل طریقوں سے بہتر بنایا جاسکتا ہے:
زیادہ سے زیادہ پیرامیٹر سیٹ کا تجربہ کریں تاکہ زیادہ سے زیادہ تلاش کیا جاسکے۔ مثال کے طور پر سپر ٹرینڈ فیکٹر کو ایڈجسٹ کریں۔
غلط فہمیوں کو کم کرنے کے لئے توانائی یا اتار چڑھاؤ جیسے زیادہ فلٹر اشارے شامل کریں.
مختلف سٹاپ نقصان کے طریقوں کا تجربہ کریں، مثال کے طور پر فی صد پر مبنی سٹاپ نقصان.
زیادہ سے زیادہ منافع حاصل کرنے کے لیے بہتر بنائیں، جیسے زیادہ سے زیادہ منافع حاصل کرنے کے لیے ٹیلنگ سٹاپ۔
دائرہ کار میں توسیع کریں، زیادہ مصنوعات یا زیادہ وقت کے فریم کے مطابق ڈھالیں۔
حکمت عملی کی منطق واضح ہے اور اشارے کا انتخاب معقول ہے۔ یہ اچھے بیک ٹیسٹ کے نتائج کے ساتھ رجحان کی پیروی اور رفتار توڑنے والی تجارت کا احساس کرتا ہے۔ لیکن پھر بھی اصلاحات کے لئے گنجائش موجود ہے ، جیسے پیرامیٹر ٹوننگ ، فلٹرز کا اضافہ ، اسٹاپ کو بہتر بنانا اور منافع لینا۔ کثیر جہتی اصلاحات حکمت عملی کو زیادہ مضبوط بنا سکتی ہے۔
/*backtest start: 2023-12-05 00:00:00 end: 2023-12-06 07:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="Supertrend + Stoch Strategy", overlay=true) // ---inputs--- pl = input(1.5, title="P/L", minval=0.1) lossPercentage = input(1, title="Loss Percentage", minval=1, maxval=100) atrPeriod = input(10, "ATR Length") factor = input(3, "Supertrend Factor") periodK = input(8, title="%K Length", minval=1) smoothK = input(3, title="%K Smoothing", minval=1) periodD = input(3, title="%D Smoothing", minval=1) ema1l = input(25, title="EMA 1 Length", minval=1) ema2l = input(50, title="EMA 2 Length", minval=1) ema3l = input(100, title="EMA 3 Length", minval=1) ema4l = input(200, title="EMA 4 Length", minval=1) // ---lines--- ema1 = ema(close, ema1l) ema2 = ema(close, ema2l) ema3 = ema(close, ema3l) ema4 = ema(close, ema4l) trendUpper = ema1 > ema2 and ema3 > ema4 trendLower = ema1 < ema2 and ema3 < ema4 [supertrend, direction] = supertrend(factor, atrPeriod) supertrendUpper = direction < 0 supertrendLower = direction > 0 k = sma(stoch(close, high, low, periodK), smoothK) d = sma(k, periodD) stochCrossOver = crossover(k, d) stochCrossUnder = crossunder(k, d) // ---plot--- plot(ema1, color=color.green) plot(ema2, color=color.orange) plot(ema3, color=color.blue) plot(ema4, color=color.purple) bodyMiddle = plot((open + close) / 2, display=display.none) upTrend = plot(direction < 0 ? supertrend : na, "Up Trend", color = color.green, style=plot.style_linebr) downTrend = plot(direction < 0 ? na : supertrend, "Down Trend", color = color.red, style=plot.style_linebr) fill(bodyMiddle, upTrend, color.new(color.green, 95), fillgaps=false) fill(bodyMiddle, downTrend, color.new(color.red, 95), fillgaps=false) // ---stop place compute--- edge = 0. // periodly high/low edge := stochCrossOver ? high : stochCrossUnder ? low : k > d ? max(edge[1], high) : k < d ? min(edge[1], low) : edge[1] // plot(edge) // ---trade condition--- // longCond = trendUpper and supertrendUpper and stochCrossOver // shortCond = trendLower and supertrendLower and stochCrossUnder longCond = trendUpper and supertrendUpper and stochCrossOver and strategy.position_size == 0 shortCond = trendLower and supertrendLower and stochCrossUnder and strategy.position_size == 0 // ---stop & take--- stop = 0. stop := nz(stop[1], stop) take = 0. take := nz(take[1], take) if longCond stop := edge[1] take := close + (close - stop) * pl if shortCond stop := edge[1] take := close - (stop - close) * pl // ---trade--- qty = strategy.equity / abs(stop - close) / 100 * lossPercentage strategy.entry("Buy", strategy.long, when=longCond, qty=qty) strategy.exit("Close Buy","Buy", limit=take, stop=stop) strategy.entry("Sell", strategy.short, when=shortCond, qty=qty) strategy.exit("Close Sell","Sell", limit=take, stop=stop) stopLine = plot(strategy.position_size != 0 ? stop : na, color=color.red, style=plot.style_linebr) takeLine = plot(strategy.position_size != 0 ? take : na, color=color.green, style=plot.style_linebr) entryLine = plot(strategy.position_size != 0 ? strategy.position_avg_price : na, color=color.blue, style=plot.style_linebr) fill(entryLine, stopLine, color.new(color.red, 90), fillgaps=false) fill(entryLine, takeLine, color.new(color.green, 90), fillgaps=false)