
اس حکمت عملی میں دوہری اوسط لکیری نظام کا استعمال کیا گیا ہے تاکہ کسی خاص اسٹاک یا ڈیجیٹل کرنسی میں ممکنہ توڑ کے مواقع تلاش کیے جاسکیں۔ اس کا بنیادی اصول یہ ہے کہ جب قلیل مدتی اوسط طویل مدتی اوسط سے نیچے کی طرف اچھالتا ہے تو اسٹاک یا ڈیجیٹل کرنسی خریدیں۔ جب قیمت طویل مدتی اوسط لائن کو دوبارہ جانچتی ہے تو اسٹاک یا ڈیجیٹل کرنسی فروخت کریں۔
اس حکمت عملی میں دو مختلف ادوار کی سادہ حرکت پذیری اوسط ((SMA) کو ٹریڈنگ سگنل کے طور پر استعمال کیا جاتا ہے۔ پہلی SMA کی مدت لمبی ہے ، جو مجموعی رجحان کی سمت کی نمائندگی کرتی ہے۔ دوسری SMA کی مدت مختصر ہے ، جو قلیل مدتی قیمت میں اتار چڑھاؤ کو پکڑنے کے لئے استعمال ہوتی ہے۔
جب قلیل مدتی ایس ایم اے نیچے سے طویل مدتی ایس ایم اے پہنتا ہے تو ، اس کی قیمت مجموعی طور پر اوپر کی طرف بڑھتی ہوئی رجحان کی نمائندگی کرتی ہے ، لہذا حکمت عملی کثیر پوزیشن کھولتی ہے۔ جب قیمت میں کمی طویل مدتی ایس ایم اے کی دوبارہ جانچ کرتی ہے تو ، قلیل مدتی پل بیک ختم ہونے کا اشارہ کرتی ہے ، اس وقت حکمت عملی اسٹاپ نقصان یا منافع پر غور کرتی ہے۔
اس کے علاوہ ، اس حکمت عملی میں انتہائی حالات میں تجارت سے بچنے کے لئے اوور سیل اور اوور خرید کی شرائط بھی رکھی گئی ہیں۔ صرف اس صورت میں پوزیشنیں کھولی جائیں گی جب وہ ایک ساتھ دوہری مساوی کراس اور مناسب تشخیص کی شرائط کو پورا کریں۔
اس حکمت عملی میں مزید اصلاحات کی گنجائش موجود ہے:
اس حکمت عملی میں رجحانات کی پیروی اور واپسی کی تجارت کے فوائد کو مربوط کیا گیا ہے ، اور مواقع کی ظاہری شکل کا اندازہ لگانے کے لئے باہمی مساوی نظام کا استعمال کیا گیا ہے۔ اس کے ساتھ ہی ، غیر ضروری پوزیشن کھولنے سے بچنے کے لئے مخصوص اوور خرید اوور فروخت کی شرائط کو بھی شامل کیا گیا ہے۔ یہ ایک بہت ہی عملی مقدار کی تجارت کی حکمت عملی ہے ، جو گہری تحقیق اور اصلاح کے قابل ہے۔
/*backtest
start: 2023-02-20 00:00:00
end: 2024-02-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// @version=5
strategy("Profitable Pullback Trading Strategy", overlay=true,initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Inputs
ma_length1 = input.int(280,'MA length 1', step = 10,group = 'Moving Avg. Parameters', inline = 'MA')
ma_length2 = input.int(13,'MA length 2', step = 1,group = 'Moving Avg. Parameters', inline = 'MA')
sl = input.float(title="Stop Loss (%)", defval=0.07, step=0.1, group="Moving Avg. Parameters")
too_deep = input.float(title="Too Deep (%)", defval=0.27, step=0.01, group="Too Deep and Thin conditions", inline = 'Too')
too_thin = input.float(title="Too Thin (%)", defval=0.03, step=0.01, group="Too Deep and Thin conditions", inline = 'Too')
// Calculations
ma1 = ta.sma(close,ma_length1)
ma2 = ta.sma(close,ma_length2)
too_deep2 = (ma2/ma1-1) < too_deep
too_thin2 = (ma2/ma1-1) > too_thin
// Entry and close condtions
var float buy_price = 0
buy_condition = (close > ma1) and (close < ma2) and strategy.position_size == 0 and too_deep2 and too_thin2
close_condition1 = (close > ma2) and strategy.position_size > 0 and (close < low[1])
stop_distance = strategy.position_size > 0 ? ((buy_price - close) / close) : na
close_condition2 = strategy.position_size > 0 and stop_distance > sl
stop_price = strategy.position_size > 0 ? buy_price - (buy_price * sl) : na
// Entry and close orders
if buy_condition
strategy.entry('Long',strategy.long)
if buy_condition[1]
buy_price := open
if close_condition1 or close_condition2
strategy.close('Long',comment="Exit" + (close_condition2 ? "SL=true" : ""))
buy_price := na
plot(ma1,color = color.blue)
plot(ma2,color = color.orange)