
یہ حکمت عملی MACD اشارے کی RSI کی بنیاد پر خرید اور فروخت کے سگنل کا تعین کرتی ہے۔ خریدیں جب RSI اوورلوڈ لائن یا اوورلوڈ رینج سے زیادہ ہو ، اور جب RSI اوورلوڈ رینج سے کم ہو تو اسٹاپ یا اسٹاپ کریں۔
اس حکمت عملی میں MACD اور RSI اشارے کے فوائد شامل ہیں۔
سب سے پہلے MACD اشارے کے تین منحنی خطوط کا حساب لگائیں ، بشمول DIF لائن ، DEA لائن ، اور MACD لائن۔ اس کے بعد MACD لائن پر RSI اشارے کا حساب لگائیں ، اور RSI of MACD تشکیل دیں۔
جب RSI of MACD اشارے 30 یا 35 سے زیادہ حد سے زیادہ حد سے زیادہ حد سے زیادہ حد تک خریدنے کا اشارہ ہوتا ہے تو ، MACD لائن اوور سیل زون میں داخل ہوتی ہے ، اور اسٹاک کی قیمتوں میں رجحان الٹنا شروع ہوتا ہے۔ جب RSI of MACD اشارے 15 سے زیادہ حد سے زیادہ حد تک گر جاتا ہے تو ، فروخت کا اشارہ ہوتا ہے ، اس کا مطلب ہے کہ رجحان الٹنا ختم ہو گیا ہے۔
اس حکمت عملی میں ایک جزوی اسٹاپ بھی شامل ہے ، جس میں کچھ پوزیشنوں کو فروخت کیا جاسکتا ہے اور جب RSI of MACD اشارے 80 سے زیادہ ہے تو اس میں کچھ منافع کو لاک کیا جاسکتا ہے۔
حل:
اس حکمت عملی کو مندرجہ ذیل طریقوں سے بہتر بنایا جاسکتا ہے:
اس حکمت عملی کا مجموعی ڈیزائن واضح ہے ، اس کا بنیادی خیال یہ ہے کہ MACD ریورس کے ساتھ مل کر RSI فلٹرنگ کا استعمال کرکے خرید و فروخت کے مقامات کا تعین کریں۔ پیرامیٹرز کی اصلاح ، اسٹاپ نقصان کے انتظام ، خطرے پر قابو پانے اور اسی طرح کے ذرائع کے ذریعہ ، اس کو ایک بہت ہی عملی مقداری تجارتی حکمت عملی میں تبدیل کیا جاسکتا ہے۔
/*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
/////////////////////////////////////////////////////////////////////////////////