
یہ حکمت عملی ایک متحرک اسٹاپ نقصان ٹریڈنگ سسٹم ہے جو RSI اشارے پر مبنی ہے ، جس میں ایس ایم اے میڈین اور اے ٹی آر لہر کے اشارے شامل ہیں تاکہ تجارتی فیصلوں کو بہتر بنایا جاسکے۔ اس حکمت عملی میں ایک کثیر سطحی اسٹاپ آؤٹ سسٹم استعمال کیا گیا ہے ، جس میں ایک پرامڈ پیلیجنگ کے ذریعہ منافع کو زیادہ سے زیادہ کیا جاسکتا ہے ، جبکہ اے ٹی آر متحرک اسٹاپ نقصان کو خطرے پر قابو پانے کے لئے استعمال کیا جاتا ہے۔ حکمت عملی انتہائی موافقت پذیر ہے ، جو مارکیٹ میں اتار چڑھاو کے مطابق تجارتی پیرامیٹرز کو خود بخود ایڈجسٹ کرنے کی صلاحیت رکھتی ہے۔
حکمت عملی بنیادی طور پر آر ایس آئی اوور سیل رینج ((RSI<30) پر مبنی ہے جس میں پوزیشن کھولنے کا اشارہ ہوتا ہے ، اور اس کی قیمت کو 200 دن کی اوسط سے اوپر رکھنے کی ضرورت ہوتی ہے تاکہ یہ یقینی بنایا جاسکے کہ یہ بڑھتی ہوئی رجحان میں ہے۔ سسٹم میں تینوں اسٹاپ اسٹاپ اہداف ((5٪ ، 10٪ ، 15٪) ہیں ، اور اے ٹی آر متحرک اسٹاپ نقصان کے ساتھ مل کر ہیں۔ خاص طور پر:
اس حکمت عملی کو تکنیکی اشارے اور متحرک رسک مینجمنٹ کے ساتھ مل کر ایک نسبتا complete مکمل تجارتی نظام بنایا گیا ہے۔ اس کا فائدہ یہ ہے کہ یہ لچکدار ہے ، خطرہ قابل کنٹرول ہے ، لیکن پھر بھی اس کی ضرورت ہے کہ پیرامیٹرز کو حقیقی مارکیٹ کی صورتحال کے مطابق بہتر بنایا جائے۔ یہ حکمت عملی درمیانی اور طویل مدتی سرمایہ کاروں کے لئے موزوں ہے ، جو سسٹم ٹریڈنگ کے لئے ایک اچھا نقطہ آغاز ہے۔
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-11 00: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