یہ حکمت عملی خرید و فروخت کے اشاروں کا تعین کرنے کے لئے ایم اے سی ڈی اشارے کی آر ایس آئی اقدار پر مبنی ہے۔ جب آر ایس آئی زیادہ خریدنے والی لائن یا حد سے تجاوز کرتا ہے تو وہ خریدتا ہے ، اور جب آر ایس آئی زیادہ خریدنے والی حد سے نیچے جاتا ہے تو وہ منافع / نقصان فروخت کرتا ہے یا روکتا ہے۔
یہ حکمت عملی MACD اور RSI دونوں اشارے کے فوائد کو یکجا کرتی ہے۔
پہلے ، ایم اے سی ڈی اشارے کے تین منحنی خطوط کا حساب لگایا جاتا ہے ، جس میں ڈی آئی ایف ، ڈی ای اے اور ایم اے سی ڈی لائنیں شامل ہیں۔ پھر آر ایس آئی اشارے کا حساب MACD لائن پر لگایا جاتا ہے تاکہ MACD کا آر ایس آئی تشکیل دیا جاسکے۔
جب ایم اے سی ڈی اشارے کا آر ایس آئی 30 یا 35 کی زیادہ خریدنے والی حد سے تجاوز کرتا ہے تو ، ایک خرید کا سگنل تیار کیا جاتا ہے ، جس سے یہ ظاہر ہوتا ہے کہ ایم اے سی ڈی لائن زیادہ فروخت کی حد میں داخل ہوگئی ہے اور قیمت کا رجحان اوپر کی طرف الٹنا شروع ہوگیا ہے۔ جب ایم اے سی ڈی اشارے کا آر ایس آئی 15 کی زیادہ خریدنے والی حد سے نیچے پھر سے ٹوٹ جاتا ہے تو ، فروخت کا سگنل تیار کیا جاتا ہے ، جس سے یہ ظاہر ہوتا ہے کہ رجحان الٹنا ختم ہوگیا ہے۔
حکمت عملی میں جزوی منافع لینے کا بھی تعین کیا گیا ہے۔ جب ایم اے سی ڈی اشارے کا آر ایس آئی 80 سے زیادہ کی سطح سے تجاوز کرتا ہے تو ، جزوی منافع میں مقفل ہونے کے لئے پوزیشن کا ایک حصہ فروخت کیا جاسکتا ہے۔
حل:
اسٹریٹیجی کو مندرجہ ذیل پہلوؤں میں بھی بہتر بنایا جاسکتا ہے:
مجموعی طور پر حکمت عملی کے ڈیزائن کا فلسفہ واضح ہے ، جس کا بنیادی خیال خرید / فروخت کے نکات کا تعین کرنے کے لئے آر ایس آئی فلٹر کے ساتھ مل کر ایم اے سی ڈی الٹ کا استعمال کرنا ہے۔ پیرامیٹر کی اصلاح ، اسٹاپ نقصان کے انتظام ، رسک کنٹرول اقدامات وغیرہ کے ساتھ ، اسے ایک بہت ہی عملی مقدار کی تجارتی حکمت عملی میں تبدیل کیا جاسکتا ہے۔
/*backtest start: 2024-01-07 00:00:00 end: 2024-01-14 00:00:00 period: 3m basePeriod: 1m 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/ // © mohanee //@version=4 strategy(title="RSI of MACD Strategy[Long only]", shorttitle="RSIofMACD" , overlay=false, pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=20, initial_capital=10000, currency=currency.USD) //default_qty_value=10, default_qty_type=strategy.fixed, ///////////////////////////////////////////////////////////////////////////////// // MACD Inputs /// fastLen = input(12, title="Fast Length") slowLen = input(21, title="Slow Length") sigLen = input(9, title="Signal Length") rsiLength = input(14, title="RSI of MACD Length") riskCapital = input(title="Risk % of capital", defval=10, minval=1) stopLoss=input(3,title="Stop Loss",minval=1) takeProfit=input(false, title="Take Profit") [macdLine, signalLine, _] = macd(close, fastLen, slowLen, sigLen) rsiOfMACD = rsi(macdLine, rsiLength) emaSlow = ema(close, slowLen) //drawings ///////////////////////////////////////////////////////////////////////////////// obLevelPlot = hline(80, title="Overbought / Profit taking line", color=color.blue , linestyle=hline.style_dashed) osLevelPlot = hline(30, title="Oversold / entry line", color=color.green, linestyle=hline.style_dashed) exitLinePlot = hline(15, title="Exit line", color=color.red, linestyle=hline.style_dashed) plot(rsiOfMACD, title = "rsiOfMACD" , color=color.purple) //drawings ///////////////////////////////////////////////////////////////////////////////// //Strategy Logic ///////////////////////////////////////////////////////////////////////////////// //Entry-- //Echeck how many units can be purchased based on risk manage ment and stop loss qty1 = (strategy.equity * riskCapital / 100 ) / (close*stopLoss/100) //check if cash is sufficient to buy qty1 , if capital not available use the available capital only qty1:= (qty1 * close >= strategy.equity ) ? (strategy.equity / close) : qty1 strategy.entry(id="RSIofMACD", long=true, qty=qty1, when = ( crossover(rsiOfMACD, 30) or crossover(rsiOfMACD, 35) ) and close>=emaSlow ) bgcolor(abs(strategy.position_size)>=1 ? color.blue : na , transp=70) barcolor(abs(strategy.position_size)>=1 and ( crossover(rsiOfMACD, 30) or crossover(rsiOfMACD, 35) ) ? color.purple : abs(strategy.position_size)>=1 ? color.blue : na ) //partial exit strategy.close(id="RSIofMACD", comment="PExit Profit is "+tostring(close - strategy.position_avg_price, "###.##") , qty=strategy.position_size/3, when= takeProfit and abs(strategy.position_size)>=1 and close > strategy.position_avg_price and crossunder(rsiOfMACD,80) ) //Close All strategy.close(id="RSIofMACD", comment="Close All Profit is "+tostring(close - strategy.position_avg_price, "###.##"), when=abs(strategy.position_size)>=1 and crossunder(rsiOfMACD,15) ) //and close > strategy.position_avg_price ) //Strategy Logic /////////////////////////////////////////////////////////////////////////////////