
یہ حکمت عملی ایک رجحان ٹریڈنگ سسٹم ہے جس میں ایک سے زیادہ ٹائم فریم رینڈم اشارے ((Stochastic) اور انڈیکس منتقل اوسط ((EMA) کا امتزاج ہے۔ یہ اعلی ٹائم فریم رینڈم اشارے کے ذریعہ اوورلوڈ اوورلوڈ شرائط کا فیصلہ کرتا ہے ، جبکہ ای ایم اے کو رجحان فلٹر کے طور پر استعمال کرتا ہے ، اور متحرک پوزیشن مینجمنٹ اور ٹریکنگ اسٹاپ نقصان کی خصوصیات کو مربوط کرتا ہے۔ یہ ایک مکمل تجارتی حکمت عملی کا نظام ہے۔
اس حکمت عملی کی بنیادی منطق مندرجہ ذیل اہم عناصر پر مبنی ہے:
اس حکمت عملی میں ایک سے زیادہ ٹائم فریم تجزیہ اور ایک سے زیادہ سگنل کی تصدیق کا طریقہ کار ہے ، جس میں ایک مکمل رسک مینجمنٹ سسٹم کے ساتھ مل کر ایک نسبتا complete مکمل تجارتی نظام تشکیل دیا گیا ہے۔ اگرچہ اس میں کچھ خطرات موجود ہیں ، لیکن مسلسل اصلاح اور بہتری کے ذریعہ ، اس حکمت عملی کو مختلف مارکیٹ کے حالات میں مستحکم کارکردگی برقرار رکھنے کی امید ہے۔ یہ خطرہ برداشت کرنے کی مضبوط صلاحیت رکھنے والے اور تجارت کا کچھ تجربہ رکھنے والے سرمایہ کاروں کے لئے موزوں ہے۔
/*backtest
start: 2024-02-19 00:00:00
end: 2025-02-17 00:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Ultimate fairas Oil", overlay=true)
// === Input Parameter ===
k_period = input(14, "K Period")
d_period = input(3, "D Period")
smooth_k = input(3, "Smooth K")
overbought = input(80, "Overbought Level")
oversold = input(20, "Oversold Level")
atrMult = input(1.5, "ATR Multiplier")
use_trailing_stop = input(true, "Enable Trailing Stop")
ema_length = input(50, "EMA Length")
risk_percent = input(2, "Risk per Trade (%)") / 100
account_balance = input(50000, "Account Balance")
mtf_tf = input.timeframe("D", "Higher Timeframe for Stochastic")
// === Multi-Timeframe Stochastic ===
stoch_source = request.security(syminfo.tickerid, mtf_tf, ta.stoch(close, high, low, k_period))
k = ta.sma(stoch_source, smooth_k)
// === Trend Filter (EMA) ===
ema = ta.ema(close, ema_length)
trendUp = close > ema
trendDown = close < ema
// === Entry Conditions ===
longCondition = ta.crossover(k, oversold) and trendUp
shortCondition = ta.crossunder(k, overbought) and trendDown
// === ATR-Based Stop Loss & Take Profit ===
atrValue = ta.atr(14)
stopLoss = atrMult * atrValue
takeProfit = 2 * stopLoss
// === Dynamic Lot Sizing (Risk Management) ===
risk_amount = account_balance * risk_percent
position_size = risk_amount / stopLoss
// === Trailing Stop Calculation ===
trailOffset = atrValue * 1.5
trailStopLong = use_trailing_stop ? close - trailOffset : na
trailStopShort = use_trailing_stop ? close + trailOffset : na
// === Execute Trades ===
if longCondition
strategy.entry("Long", strategy.long, qty=position_size)
strategy.exit("Exit Long", from_entry="Long", stop=close - stopLoss, limit=close + takeProfit, trail_points=use_trailing_stop ? trailOffset : na)
// // Labels & Lines
// label.new(x=bar_index, y=close, text="BUY", color=color.green, textcolor=color.white, size=size.small, style=label.style_label_down)
// label.new(x=bar_index, y=close + takeProfit, text="TP 🎯", color=color.blue, textcolor=color.white, size=size.tiny)
// label.new(x=bar_index, y=close - stopLoss, text="SL ❌", color=color.red, textcolor=color.white, size=size.tiny)
// line.new(x1=bar_index, y1=close + takeProfit, x2=bar_index + 5, y2=close + takeProfit, width=2, color=color.blue)
// line.new(x1=bar_index, y1=close - stopLoss, x2=bar_index + 5, y2=close - stopLoss, width=2, color=color.red)
// Alert
alert("BUY Signal! TP: " + str.tostring(close + takeProfit) + ", SL: " + str.tostring(close - stopLoss) + ", Lot Size: " + str.tostring(position_size), alert.freq_once_per_bar_close)
if shortCondition
strategy.entry("Short", strategy.short, qty=position_size)
strategy.exit("Exit Short", from_entry="Short", stop=close + stopLoss, limit=close - takeProfit, trail_points=use_trailing_stop ? trailOffset : na)
// // Labels & Lines
// label.new(x=bar_index, y=close, text="SELL", color=color.red, textcolor=color.white, size=size.small, style=label.style_label_up)
// label.new(x=bar_index, y=close - takeProfit, text="TP 🎯", color=color.blue, textcolor=color.white, size=size.tiny)
// label.new(x=bar_index, y=close + stopLoss, text="SL ❌", color=color.green, textcolor=color.white, size=size.tiny)
// line.new(x1=bar_index, y1=close - takeProfit, x2=bar_index + 5, y2=close - takeProfit, width=2, color=color.blue)
// line.new(x1=bar_index, y1=close + stopLoss, x2=bar_index + 5, y2=close + stopLoss, width=2, color=color.green)
// Alert
alert("SELL Signal! TP: " + str.tostring(close - takeProfit) + ", SL: " + str.tostring(close + stopLoss) + ", Lot Size: " + str.tostring(position_size), alert.freq_once_per_bar_close)