
یہ ایک ایسی حکمت عملی ہے جس میں متعدد تکنیکی اشارے کے رجحانات کی پیروی اور اتار چڑھاؤ کی توڑ کی حکمت عملی کو یکجا کیا گیا ہے۔ یہ حکمت عملی مارکیٹ کے رجحانات اور توڑنے کے مواقع کو پکڑنے کے لئے مساوات کا نظام ((EMA) ، رجحان کی طاقت کا اشارے ((ADX) ، مارکیٹ میں اتار چڑھاؤ کا اشارہ ((ATR) ، قیمت کا تجزیہ ((OBV) اور کچھ معاون اشارے جیسے Ichimoku کلاؤڈ چارٹ اور بے ترتیب اشارے ((Stochastic) کو مربوط کرکے استعمال کرتی ہے۔ حکمت عملی میں سخت ٹائم فلٹرز مرتب کیے گئے ہیں جو صرف مخصوص تجارتی اوقات کے اندر کام کرتے ہیں تاکہ تجارت کی کارکردگی کو بہتر بنایا جاسکے۔
اس حکمت عملی کا بنیادی منطق متعدد تکنیکی اشارے پر مبنی ہے:
حکمت عملی خریدنے کا اشارہ دیتی ہے جب مندرجہ ذیل شرائط پوری ہوتی ہیں:
رسک کنٹرول کی تجاویز:
اس حکمت عملی میں متعدد تکنیکی اشارے کے جامع استعمال کے ذریعے ایک مکمل تجارتی نظام بنایا گیا ہے۔ حکمت عملی کی طاقت کثیر سطح کے اشارے کے کراس ویلیکیشن اور سخت خطرے کے کنٹرول میں ہے ، لیکن اس کے ساتھ ہی اس میں پیرامیٹرز کی اصلاح اور سگنل کی تاخیر جیسے چیلنجوں کا بھی سامنا کرنا پڑتا ہے۔ مسلسل اصلاح اور بہتری کے ذریعہ ، حکمت عملی کو مختلف مارکیٹ کے ماحول میں مستحکم کارکردگی برقرار رکھنے کی امید ہے۔
/*backtest
start: 2024-11-11 00:00:00
end: 2024-12-10 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Khaleq Strategy Pro - Fixed Version", overlay=true)
// === Input Settings ===
ema_short = input.int(50, "EMA Short", minval=1)
ema_long = input.int(200, "EMA Long", minval=1)
adx_threshold = input.int(25, "ADX Threshold", minval=1)
atr_multiplier = input.float(2.0, "ATR Multiplier", minval=0.1)
time_filter_start = input(timestamp("0000-01-01 09:00:00"), "Trading Start Time", group="Time Filter")
time_filter_end = input(timestamp("0000-01-01 17:00:00"), "Trading End Time", group="Time Filter")
// === Ichimoku Settings ===
tenkan_len = 9
kijun_len = 26
senkou_span_b_len = 52
displacement = 26
// === Calculations ===
// Ichimoku Components
tenkan_sen = (ta.highest(high, tenkan_len) + ta.lowest(low, tenkan_len)) / 2
kijun_sen = (ta.highest(high, kijun_len) + ta.lowest(low, kijun_len)) / 2
senkou_span_a = (tenkan_sen + kijun_sen) / 2
senkou_span_b = (ta.highest(high, senkou_span_b_len) + ta.lowest(low, senkou_span_b_len)) / 2
// EMA Calculations
ema_short_val = ta.ema(close, ema_short)
ema_long_val = ta.ema(close, ema_long)
// Manual ADX Calculation
length = 14
dm_plus = math.max(ta.change(high), 0)
dm_minus = math.max(-ta.change(low), 0)
tr = math.max(high - low, math.max(math.abs(high - close[1]), math.abs(low - close[1])))
tr14 = ta.sma(tr, length)
dm_plus14 = ta.sma(dm_plus, length)
dm_minus14 = ta.sma(dm_minus, length)
di_plus = (dm_plus14 / tr14) * 100
di_minus = (dm_minus14 / tr14) * 100
dx = math.abs(di_plus - di_minus) / (di_plus + di_minus) * 100
adx_val = ta.sma(dx, length)
// ATR Calculation
atr_val = ta.atr(14)
// Stochastic RSI Calculation
k = ta.stoch(close, high, low, 14)
d = ta.sma(k, 3)
// Time Filter
is_within_time = true
// Support and Resistance (High and Low Levels)
resistance_level = ta.highest(high, 20)
support_level = ta.lowest(low, 20)
// Volume Analysis (On-Balance Volume)
vol_change = ta.change(close)
obv = ta.cum(vol_change > 0 ? volume : vol_change < 0 ? -volume : 0)
// === Signal Conditions ===
buy_signal = is_within_time and
(close > ema_short_val) and
(ema_short_val > ema_long_val) and
(adx_val > adx_threshold) and
(close > senkou_span_a) and
(k < 20) // Stochastic oversold
sell_signal = is_within_time and
(close < ema_short_val) and
(ema_short_val < ema_long_val) and
(adx_val > adx_threshold) and
(close < senkou_span_b) and
(k > 80) // Stochastic overbought
// === Plotting ===
// Plot Buy and Sell Signals
plotshape(buy_signal, color=color.green, style=shape.labelup, title="Buy Signal", location=location.belowbar, text="BUY")
plotshape(sell_signal, color=color.red, style=shape.labeldown, title="Sell Signal", location=location.abovebar, text="SELL")
// Plot EMAs
plot(ema_short_val, color=color.blue, title="EMA Short")
plot(ema_long_val, color=color.orange, title="EMA Long")
// Plot Ichimoku Components
plot(senkou_span_a, color=color.green, title="Senkou Span A", offset=displacement)
plot(senkou_span_b, color=color.red, title="Senkou Span B", offset=displacement)
// // Plot Support and Resistance using lines
// var line resistance_line = na
// var line support_line = na
// if bar_index > 1
// line.delete(resistance_line)
// line.delete(support_line)
// resistance_line := line.new(x1=bar_index - 1, y1=resistance_level, x2=bar_index, y2=resistance_level, color=color.red, width=1, style=line.style_dotted)
// support_line := line.new(x1=bar_index - 1, y1=support_level, x2=bar_index, y2=support_level, color=color.green, width=1, style=line.style_dotted)
// Plot OBV
plot(obv, color=color.purple, title="OBV")
// Plot Background for Trend (Bullish/Bearish)
bgcolor(close > ema_long_val ? color.new(color.green, 90) : color.new(color.red, 90), title="Trend Background")
// === Alerts ===
alertcondition(buy_signal, title="Buy Alert", message="Buy Signal Triggered")
alertcondition(sell_signal, title="Sell Alert", message="Sell Signal Triggered")
// === Strategy Execution ===
if buy_signal
strategy.entry("Buy", strategy.long)
if sell_signal
strategy.close("Buy")
strategy.exit("Sell", "Buy", stop=close - atr_multiplier * atr_val, limit=close + atr_multiplier * atr_val)