ایم اے سی ڈی اسٹوکاسٹکس رینج بریکآؤٹ حکمت عملی میں ایم اے سی ڈی اور اسٹوکاسٹکس اشارے کو ایک مقداری تجارتی حکمت عملی میں شامل کیا گیا ہے۔ اس سے اسٹاک کی قیمتوں کی رجحان کی سمت کی نشاندہی کرنے اور قیمتوں کے زون سے باہر نکلنے پر پوزیشن لینے کی کوشش کی جاتی ہے۔
پوزیشن لینے کے وقت ، یہ حکمت عملی اندراجات کے معیار کو بہتر بنانے کے لئے ایم اے سی ڈی اور اسٹوکاسٹکس دونوں سے سگنلز پر غور کرتی ہے۔ نیز ، پہلے سے طے شدہ اسٹاپ نقصان اور منافع حاصل کرنے والے پوائنٹس خطرات کو مؤثر طریقے سے کنٹرول کرسکتے ہیں۔
MACD اسٹوکاسٹکس رینج بریک آؤٹ حکمت عملی بنیادی طور پر مندرجہ ذیل اصولوں پر مبنی ہے:
خاص طور پر ، یہ حکمت عملی DEA لائن پر MACDDIFF لائن عبور کرنے کے لئے تیزی یا bearish رجحان سگنل کا تعین کرنے کے لئے استعمال کرتی ہے۔ جب DIFF DEA اوپر کی طرف عبور کرتا ہے تو ، یہ ایک تیزی کا اشارہ پیدا کرتا ہے اور اس کے برعکس۔
دریں اثنا، اسٹوکاسٹکس کی K لائن اور D لائن کے درمیان کراسنگز (ڈیفالٹ 30 اور 70) بھی زیادہ خریدے گئے/زیادہ فروخت شدہ علاقوں کے ارد گرد تجارتی سگنل پیدا کرتی ہیں۔
جب ایم اے سی ڈی اور اسٹوکاسٹکس سیدھے سگنل دیتے ہیں تو ، حکمت عملی پوزیشن اختیار کرے گی۔ اس وقت ، قیمت کی بڑی حرکت کا امکان ہے۔
داخل ہونے کے بعد، سٹاپ نقصان اور منافع لینے کے پوائنٹس کو ایک ہی تجارت کے نقصان کو منطقی طور پر کنٹرول کرنے اور منافع میں مقفل کرنے کے لئے مقرر کیا جاتا ہے.
ایم اے سی ڈی اسٹوکاسٹکس رینج بریک آؤٹ حکمت عملی میں مندرجہ ذیل طاقتیں ہیں:
اشارے کو یکجا کرنے سے سگنل کی کوالٹی میں بہتری آتی ہے
ایم اے سی ڈی اور اسٹوکاسٹکس دونوں کا استعمال کرتے ہوئے کچھ جعلی سگنل کو فلٹر کرتا ہے اور بہتر انٹری کوالٹی کی اجازت دیتا ہے۔
بریک آؤٹ کی حرکتوں اور ٹرینڈ ٹریڈنگ کو پکڑنا
یہ حکمت عملی رینج کے بعد اہم بریک آؤٹ حرکتوں کو پکڑنے میں مہارت رکھتی ہے۔ یہ حرکتیں بہت بڑی ہوتی ہیں۔
اسٹاپ نقصان / منافع لینے کا بہتر طریقہ کار خطرات کو مؤثر طریقے سے کنٹرول کرتا ہے
سٹاپ نقصان/منافع حاصل کرنے کے اندرونی منطق سے ایک ہی تجارت میں ہونے والے نقصانات کو معقول حد تک محدود کیا جاتا ہے اور منافع میں بروقت تالا لگا دیا جاتا ہے۔
محتاط ڈیزائن کے باوجود، ایم اے سی ڈی اسٹوکاسٹکس رینج بریک آؤٹ حکمت عملی میں کچھ موروثی خطرات ہیں:
کامل اندراج وقت کی کمی
درست بریک آؤٹ ہونے سے پہلے غلط بریک آؤٹ عام ہیں۔ ناقص اندراج کا وقت بہترین اندراج کی قیمت کو یاد کرنے کا نتیجہ بن سکتا ہے۔
ناکام فرار
اگرچہ اندراج سے پہلے مناسب تیاریاں کی جاتی ہیں ، لیکن ناکام بریک آؤٹ اب بھی ممکن ہے ، جس سے نقصانات ہوتے ہیں۔
پیرامیٹر کی غلط اصلاح
نامناسب پیرامیٹر کی ترتیبات حکمت عملی کی کارکردگی کو شدید طور پر کمزور کرتی ہیں۔
مذکورہ بالا خطرات سے نمٹنے کے لئے ، مندرجہ ذیل اصلاحات کو اپنایا جاسکتا ہے:
فلٹر سگنلز میں دیگر اشارے شامل کرنا
درست بریک آؤٹ کو یقینی بنانے کے لئے دستی مداخلت
سخت کثیر سیٹ پیرامیٹر کی اصلاح کے ٹیسٹ
ایم اے سی ڈی اسٹوکاسٹکس رینج بریک آؤٹ حکمت عملی میں مزید اصلاحات کی گنجائش باقی ہے۔
بہترین مجموعہ تلاش کرنے کے لئے MACD پیرامیٹرز کو بہتر بنائیں
بہترین مجموعہ تلاش کرنے کے لئے اسٹوکاسٹکس پیرامیٹرز کو بہتر بنائیں
انٹری کے معیار کو بہتر بنانے کے لئے دیگر اشارے جیسے KDJ، BOLL شامل کریں
مختلف ہولڈنگ پیریڈ ٹیسٹ کریں، سٹاپ نقصان / منافع لے لو کو بہتر بنائیں
ٹیسٹ کراس اثاثہ پیرامیٹر اختلافات
خودکار پیرامیٹر کی اصلاح کے لئے مشین لرننگ الگورتھم متعارف کروانا
ایم اے سی ڈی اسٹوکاسٹکس رینج بریک آؤٹ حکمت عملی ایم اے سی ڈی اور اسٹوکاسٹکس دونوں سے سیدھے سگنلز کی بنیاد پر داخل ہوکر رینج بریک آؤٹ پر سرمایہ لگاتی ہے۔ اسٹاپ نقصان / منافع لینے کا طریقہ کار خطرات کو مزید کنٹرول کرتا ہے۔ اس کا مقصد قلیل مدتی رجحانات کو پکڑنا ہے لیکن پھر بھی بہتر کارکردگی کے ل param پیرامیٹر ٹوننگ اور مزید اشارے کے مجموعوں کے لئے گنجائش چھوڑ دیتا ہے۔
/*backtest start: 2022-12-04 00:00:00 end: 2023-12-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="macd stoch strategy", shorttitle="benzo MACD stoch",overlay=true) // Getting inputs fast_length = input(title = "Fast Length", defval = 180) slow_length = input(title = "Slow Length", defval = 390) src = input(title = "Source", defval = close) signal_length = input.int(title = "Signal Smoothing", minval = 1, maxval = 500, defval = 135) sma_source = input.string(title = "Oscillator MA Type", defval = "EMA", options = ["SMA", "EMA"]) sma_signal = input.string(title = "Signal Line MA Type", defval = "EMA", options = ["SMA", "EMA"]) // Calculating fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length) slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length) macd = fast_ma - slow_ma signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length) hist = macd - signal // hline(0, "Zero Line", color = color.new(#787B86, 50)) // plot(hist, title = "Histogram", style = plot.style_columns, color = (hist >= 0 ? (hist[1] < hist ? #26A69A : #B2DFDB) : (hist[1] < hist ? #FFCDD2 : #FF5252))) // plot(macd, title = "MACD", color = #2962FF) // plot(signal, title = "Signal", color = #FF6D00) periodK = input.int(14, title="%K Length", minval=1) smoothK = input.int(1, title="%K Smoothing", minval=1) periodD = input.int(3, title="%D Smoothing", minval=1) k = ta.sma(ta.stoch(close, high, low, periodK), smoothK) d = ta.sma(k, periodD) // plot(k, title="%K", color=#2962FF) // plot(d, title="%D", color=#FF6D00) // h0 = hline(80, "Upper Band", color=#787B86) // hline(50, "Middle Band", color=color.new(#787B86, 50)) // h1 = hline(20, "Lower Band", color=#787B86) // fill(h0, h1, color=color.rgb(33, 150, 243, 90), title="Background") // Make inputs that set the take profit % (optional) longProfitPerc = input.float(3, title="Long Take Profit (%)", minval=0.0, step=0.1) * 0.01 shortProfitPerc = input.float(3, title="Short Take Profit (%)",minval=0.0, step=0.1) * 0.01 // Calculate trading conditions enterLong = macd>signal and ta.crossover(k,30) enterShort = macd<signal and ta.crossunder(k,70) // Figure out take profit price longExitPrice = strategy.position_avg_price * (1 + longProfitPerc) shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc) // Plot take profit values for confirmation plot(strategy.position_size > 0 ? longExitPrice : na, color=color.green, style=plot.style_circles, linewidth=3, title="Long Take Profit") plot(strategy.position_size < 0 ? shortExitPrice : na, color=color.red, style=plot.style_circles, linewidth=3, title="Short Take Profit") // Submit entry orders if enterLong strategy.entry("long", strategy.long) if enterShort strategy.entry("short", strategy.short) // STEP 3: // Submit exit orders based on take profit price if strategy.position_size > 0 strategy.exit("long TP", limit=longExitPrice) if strategy.position_size < 0 strategy.exit("short TP", limit=shortExitPrice)