
یہ ایک جامع تجارتی حکمت عملی ہے جس میں متعدد اوسط لائنوں ، رجحانات کی پیروی ، ڈھانچے کی توڑ اور متحرک اشارے شامل ہیں۔ یہ حکمت عملی تجارتی سگنل کا تعین کرنے کے لئے متعدد ٹائم فریموں کے رجحانات کی سمت کا تجزیہ کرتی ہے ، جبکہ قیمتوں کی ساخت کے توڑ اور واپسی کی خریداری کے ساتھ مل کر۔ حکمت عملی میں خطرے کو منظم کرنے کے لئے مقررہ اسٹاپ نقصان اور منافع کے اہداف کا استعمال کیا جاتا ہے ، اور متعدد توثیقی میکانزم کے ذریعہ تجارت کی درستگی کو بہتر بنایا جاتا ہے۔
حکمت عملی مارکیٹ کے رجحانات کی نشاندہی کرنے کے لئے تین انڈیکس کی حرکت پذیری اوسط (ای ایم اے 25 ، ای ایم اے 50 اور ای ایم اے 200) کا استعمال کرتی ہے۔ جب قیمت ای ایم اے 200 سے اوپر ہوتی ہے اور ای ایم اے 200 اوپر کی طرف جھک جاتی ہے تو ، اس کو اوپر کی طرف سمجھا جاتا ہے۔ اس کے برعکس ، اس کو نیچے کی طرف سمجھا جاتا ہے۔ رجحان کی سمت کی نشاندہی کرنے کے بعد ، حکمت عملی قیمت کو ای ایم اے 25 یا ای ایم اے 50 کی واپسی کا موقع تلاش کرتی ہے۔ اس کے ساتھ ہی ، حکمت عملی کو حالیہ اونچائی یا کم کی نشاندہی کرنے کی بھی ضرورت ہوتی ہے ، اور اس کی جانچ پڑتال کرنے کے لئے کہ کس طرح کی قیمت کے مقابلے میں قیمت کی کھولی ہوئی قیمت کی پوزیشن کے قریب ہے۔ آر ایس آئی اشارے کو اضافی شرط کے طور پر فلٹر کیا گیا ہے ، جس میں آر ایس آئی سے زیادہ 50 سے زیادہ خریدنے کا اشارہ اور آر ایس آئی سے کم 50 سے کم فروخت کرنے کا اشارہ درکار ہے۔
یہ ایک اچھی طرح سے ڈیزائن کردہ جامع تجارتی حکمت عملی ہے جو متعدد تکنیکی اشارے کے ہم آہنگ استعمال کے ذریعہ تجارت کے مواقع اور خطرے کے کنٹرول کو مؤثر طریقے سے متوازن کرتی ہے۔ اس حکمت عملی کا بنیادی فائدہ اس کے سخت متعدد توثیق کے طریقہ کار میں ہے ، جو تجارت کی کامیابی کی شرح کو بڑھانے میں معاون ہے۔ اگرچہ کچھ جگہیں ہیں جن میں اصلاح کی ضرورت ہے ، لیکن مجموعی طور پر ، یہ ایک حکمت عملی کا فریم ورک ہے جو کوشش کرنے کے قابل ہے۔
/*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"}]
*/
//@version=5
strategy("Custom Buy/Sell Strategy", overlay=true)
// Input parameters
ema25 = ta.ema(close, 25)
ema50 = ta.ema(close, 50)
ema200 = ta.ema(close, 200)
rsi = ta.rsi(close, 14)
sl_pips = 10
tp_pips = 15
// Convert pips to price units
sl_price_units = sl_pips * syminfo.pointvalue
tp_price_units = tp_pips * syminfo.pointvalue
// Define conditions for buy and sell signals
uptrend_condition = ema200 < close and ta.rising(ema200, 1)
downtrend_condition = ema200 > close and ta.falling(ema200, 1)
pullback_to_ema25 = low <= ema25
pullback_to_ema50 = low <= ema50
pullback_condition = pullback_to_ema25 or pullback_to_ema50
break_of_structure = high > ta.highest(high, 5)[1]
candle_imbalance = close > open
buy_condition = uptrend_condition and pullback_condition and rsi > 50 and break_of_structure and candle_imbalance
pullback_to_ema25_sell = high >= ema25
pullback_to_ema50_sell = high >= ema50
pullback_condition_sell = pullback_to_ema25_sell or pullback_to_ema50_sell
break_of_structure_sell = low < ta.lowest(low, 5)[1]
candle_imbalance_sell = close < open
sell_condition = downtrend_condition and pullback_condition_sell and rsi < 50 and break_of_structure_sell and candle_imbalance_sell
// Plot signals on the chart
plotshape(series=buy_condition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.large)
plotshape(series=sell_condition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.large)
// Calculate stop loss and take profit levels for buy signals
var float buy_sl = na
var float buy_tp = na
if buy_condition and strategy.position_size == 0
buy_sl := close - sl_price_units
buy_tp := close + tp_price_units
strategy.entry("Buy", strategy.long)
strategy.exit("TP/SL Buy", from_entry="Buy", limit=buy_tp, stop=buy_sl)
label.new(bar_index, high, text="Entry: " + str.tostring(close) + "\nSL: " + str.tostring(buy_sl) + "\nTP: " + str.tostring(buy_tp), style=label.style_label_up, color=color.green, textcolor=color.white, size=size.small)
// Calculate stop loss and take profit levels for sell signals
var float sell_sl = na
var float sell_tp = na
if sell_condition and strategy.position_size == 0
sell_sl := close + sl_price_units
sell_tp := close - tp_price_units
strategy.entry("Sell", strategy.short)
strategy.exit("TP/SL Sell", from_entry="Sell", limit=sell_tp, stop=sell_sl)
label.new(bar_index, low, text="Entry: " + str.tostring(close) + "\nSL: " + str.tostring(sell_sl) + "\nTP: " + str.tostring(sell_tp), style=label.style_label_down, color=color.red, textcolor=color.white, size=size.small)
// // Plot stop loss and take profit levels for buy signals
// if not na(buy_sl)
// line.new(x1=bar_index, y1=buy_sl, x2=bar_index + 1, y2=buy_sl, color=color.red, width=1)
// if not na(buy_tp)
// line.new(x1=bar_index, y1=buy_tp, x2=bar_index + 1, y2=buy_tp, color=color.green, width=1)
// // Plot stop loss and take profit levels for sell signals
// if not na(sell_sl)
// line.new(x1=bar_index, y1=sell_sl, x2=bar_index + 1, y2=sell_sl, color=color.red, width=1)
// if not na(sell_tp)
// line.new(x1=bar_index, y1=sell_tp, x2=bar_index + 1, y2=sell_tp, color=color.green, width=1)