
یہ حکمت عملی 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