یہ حکمت عملی RSI oversold سگنلز اور متحرک ATR سٹاپ نقصان پر مبنی ایک مقداری تجارتی نظام ہے۔ روزانہ کے ٹائم فریم کے اعداد و شمار کا استعمال کرتے ہوئے ، یہ RSI oversold سگنلز کو 200 دن کے متحرک اوسط رجحان فلٹر کے ساتھ جوڑتا ہے تاکہ مارکیٹ کے حالات میں oversold میں ریبونڈ کے مواقع کو حاصل کیا جاسکے۔ یہ حکمت عملی متحرک ATR اسٹاپ نقصان اور جامد فیصد اسٹاپ نقصان میکانزم دونوں کو استعمال کرتی ہے ، جس کے ساتھ ساتھ مرحلہ وار پوزیشن میں کمی کے ذریعے نافذ کردہ ٹرپل منافع کے اہداف بھی شامل ہیں۔
بنیادی منطق میں مندرجہ ذیل اہم عناصر شامل ہیں:
رجحان انحصار: حکمت عملی مختلف مارکیٹوں میں بار بار رکنے کا سبب بن سکتی ہے۔ تجاویز: جھوٹے اشاروں کو کم کرنے کے لیے آسیلیٹر فلٹرز شامل کریں۔
وسیع سٹاپ نقصان: 25 فیصد فکسڈ سٹاپ نقصان سے ایک ہی تجارت میں بڑے نقصانات ہو سکتے ہیں۔ تجویز: ذاتی رسک رواداری کی بنیاد پر اسٹاپ نقصان کا فیصد ایڈجسٹ کریں۔
ڈراؤونگ رسک: مضبوط رجحانات میں مرحلہ وار منافع لینے سے پوزیشنوں کو بہت جلد کم کیا جا سکتا ہے۔ تجویز: متحرک منافع کے اہداف پر غور کریں یا رجحان کی پیروی کے لئے حصہ برقرار رکھیں.
یہ حکمت عملی متحرک اے ٹی آر اسٹاپ نقصان اور ٹرپل منافع کے اہداف کے ساتھ مل کر متحرک اوسط رجحان فلٹرنگ کے ساتھ آر ایس آئی اوور سیل سگنلز کو جوڑ کر ایک مکمل تجارتی نظام تشکیل دیتی ہے۔ اس کی طاقت لچکدار رسک کنٹرول اور عقلی منافع کے انتظام میں ہے ، حالانکہ مارکیٹ کے حالات اور ذاتی رسک ترجیح پر مبنی اصلاح ضروری ہے۔ سگنل سسٹم ، اسٹاپ نقصان کے طریقہ کار اور منافع لینے کی حکمت عملی کی مسلسل بہتری کے ذریعے ، نظام رواں تجارت میں بہتر کارکردگی کا مظاہرہ کرتا ہے۔
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA/4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/ // © wielkieef //@version=5 strategy("Simple RSI stock Strategy [1D] ", overlay=true, pyramiding=1, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=75, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0.03) // Rsi oversoldLevel = input(30, title="Oversold Level") overboughtLevel = input(70, title="Overbought Level") rsi = ta.rsi(close, 5) rsi_overbought = rsi > overboughtLevel rsi_oversold = rsi < oversoldLevel // Sma 200 lenghtSMA = input(200, title = "SMA lenght") sma200 = ta.sma(close, lenghtSMA) // ATR stop-loss atrLength = input.int(20, title="ATR Length") atrMultiplier = input.float(1.5, title="ATR Multiplier") atrValue = ta.atr(atrLength) var float long_stop_level = na var float short_stop_level = na var float tp1_level = na var float tp2_level = na var float tp3_level = na // Strategy entry long = (rsi_oversold ) and close > sma200 // Take Profit levels tp_1 = input.float(5.0, "TP 1", minval=0.1, step=0.1) tp_2 = input.float(10.0, "TP 2", minval=0.2, step=0.1) tp_3 = input.float(15.0, "TP 3", minval=0.3, step=0.1) if long strategy.entry('Long', strategy.long) long_stop_level := close - atrMultiplier * atrValue tp1_level := strategy.position_avg_price * (1 + tp_1 / 100) tp2_level := strategy.position_avg_price * (1 + tp_2 / 100) tp3_level := strategy.position_avg_price * (1 + tp_3 / 100) // basic SL - this code is from author RafaelZioni, modified by wielkieef sl = input.float(25.0, 'Basic Stop Loss %', step=0.1) per(procent) => strategy.position_size != 0 ? math.round(procent / 100 * strategy.position_avg_price / syminfo.mintick) : float(na) // ATR SL if (strategy.position_size > 0 and (close <= long_stop_level)) strategy.close("Long") tp1_level := na tp2_level := na tp3_level := na plot(long_stop_level, color=color.orange, linewidth=2, title="Long Stop Loss") // TP levels if (strategy.position_size > 0) if (not na(tp1_level) and close >= tp1_level) tp1_level := na if (not na(tp2_level) and close >= tp2_level) tp2_level := na if (not na(tp3_level) and close >= tp3_level) tp3_level := na plot(strategy.position_size > 0 and not na(tp1_level) ? tp1_level : na, color=color.gray, style=plot.style_circles , linewidth=1, title="Take Profit 1") plot(strategy.position_size > 0 and not na(tp2_level) ? tp2_level : na, color=color.gray, style=plot.style_circles , linewidth=1, title="Take Profit 2") plot(strategy.position_size > 0 and not na(tp3_level) ? tp3_level : na, color=color.gray, style=plot.style_circles , linewidth=1, title="Take Profit 3") // Strategy exit points for Take Profits strategy.exit('TP 1', from_entry="Long", qty_percent=33, profit=per(tp_1), loss=per(sl)) strategy.exit('TP 2', from_entry="Long", qty_percent=66, profit=per(tp_2), loss=per(sl)) strategy.exit('TP 3', from_entry="Long", qty_percent=100, profit=per(tp_3), loss=per(sl)) // by wielkieef