
یہ ایک دن کی تجارت کی حکمت عملی ہے جو متعدد تکنیکی اشارے پر مبنی ہے ، جس میں بنیادی طور پر ای ایم اے چینل ، آر ایس آئی او ایس او ایس او ایس ، میکڈ ٹرینڈ کی تصدیق اور دیگر متعدد سگنلوں کا استعمال کیا جاتا ہے۔ حکمت عملی 3 منٹ کے دورانیے پر چلتی ہے ، مارکیٹ کے رجحانات کو پکڑنے کے لئے ای ایم اے کے اعلی اور کم مدار کے ساتھ مل کر آر ایس آئی اور میکڈ کی کراس تصدیق کے ذریعے ، اور اے ٹی آر پر مبنی متحرک اسٹاپ نقصان کا تعین ، اور ایک مقررہ بند ہونے کا وقت طے کیا گیا ہے۔
حکمت عملی کا استعمال کرتے ہوئے 20 ادوار ای ایم اے کو سب سے زیادہ اور کم قیمتوں کے لئے الگ الگ شمار کیا جاتا ہے تاکہ ایک چینل تشکیل دیا جاسکے ، جب قیمتیں ایک چینل کو توڑیں اور درج ذیل شرائط کو پورا کریں:
اس حکمت عملی میں متعدد تکنیکی اشارے کے ساتھ مل کر ایک نسبتا complete مکمل تجارتی نظام تشکیل دیا گیا ہے۔ اس حکمت عملی کا فائدہ یہ ہے کہ خطرے پر قابو پانے کا طریقہ کار بہتر ہے ، جس میں متحرک اسٹاپ نقصان ، فکسڈ رسک اور بند صف جیسے میکانزم شامل ہیں۔ اگرچہ کچھ پسماندہ خطرے موجود ہیں ، لیکن پیرامیٹرز کو بہتر بنانے اور معاون اشارے میں اضافے سے حکمت عملی کی کارکردگی کو مزید بہتر بنایا جاسکتا ہے۔ یہ حکمت عملی خاص طور پر دن کے اندر تجارت کی مارکیٹ کے لئے موزوں ہے ، جس میں زیادہ اتار چڑھاؤ ہوتا ہے۔ سخت خطرے کے کنٹرول اور متعدد سگنل کی تصدیق کے ذریعہ مستحکم منافع حاصل کریں۔
/*backtest
start: 2024-02-21 00:00:00
end: 2024-09-09 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("Intraday 3min EMA HL Strategy v6",
overlay=true,
margin_long=100,
margin_short=100,
initial_capital=100000,
default_qty_type=strategy.percent_of_equity,
default_qty_value=100,
commission_type=strategy.commission.percent,
commission_value=0.05,
calc_on_every_tick=false,
process_orders_on_close=true,
pyramiding=0)
// Input Parameters
i_emaLength = input.int(20, "EMA Length", minval=5, group="Strategy Parameters")
i_rsiLength = input.int(14, "RSI Length", minval=5, group="Strategy Parameters")
i_atrLength = input.int(14, "ATR Length", minval=5, group="Risk Management")
i_rrRatio = input.float(2.5, "Risk:Reward Ratio", minval=1, maxval=10, step=0.5, group="Risk Management")
i_riskPercent = input.float(1, "Risk % per Trade", minval=0.1, maxval=5, step=0.1, group="Risk Management")
// Time Exit Parameters (IST)
i_exitHour = input.int(15, "Exit Hour (IST)", minval=0, maxval=23, group="Session Rules")
i_exitMinute = input.int(0, "Exit Minute (IST)", minval=0, maxval=59, group="Session Rules")
// Indicator Calculations
emaHigh = ta.ema(high, i_emaLength)
emaLow = ta.ema(low, i_emaLength)
rsi = ta.rsi(close, i_rsiLength)
atr = ta.atr(i_atrLength)
fastMA = ta.ema(close, 12)
slowMA = ta.ema(close, 26)
macdLine = fastMA - slowMA
signalLine = ta.ema(macdLine, 9)
// Time Calculations (UTC to IST Conversion)
istHour = (hour(time) + 5) % 24 // UTC+5
istMinute = minute(time) + 30 // 30 minute offset
istHour += istMinute >= 60 ? 1 : 0
istMinute := istMinute % 60
// Exit Condition
timeExit = istHour > i_exitHour or (istHour == i_exitHour and istMinute >= i_exitMinute)
// Entry Conditions (Multi-line formatting fix)
longCondition = close > emaHigh and
rsi > 50 and
rsi < 70 and
ta.crossover(macdLine, signalLine)
shortCondition = close < emaLow and
rsi < 50 and
rsi > 30 and
ta.crossunder(macdLine, signalLine)
// Risk Calculations
var float entryPrice = na
var float stopLoss = na
var float takeProfit = na
var float posSize = na
// Strategy Logic
if longCondition and not timeExit and strategy.position_size == 0
entryPrice := close
stopLoss := math.min(low, entryPrice - atr)
takeProfit := entryPrice + (entryPrice - stopLoss) * i_rrRatio
posSize := strategy.equity * i_riskPercent / 100 / (entryPrice - stopLoss)
strategy.entry("Long", strategy.long, qty=posSize)
strategy.exit("Long Exit", "Long", stop=stopLoss, limit=takeProfit)
if shortCondition and not timeExit and strategy.position_size == 0
entryPrice := close
stopLoss := math.max(high, entryPrice + atr)
takeProfit := entryPrice - (stopLoss - entryPrice) * i_rrRatio
posSize := strategy.equity * i_riskPercent / 100 / (stopLoss - entryPrice)
strategy.entry("Short", strategy.short, qty=posSize)
strategy.exit("Short Exit", "Short", stop=stopLoss, limit=takeProfit)
// Force Close at Session End
if timeExit
strategy.close_all()
// Visual Components
plot(emaHigh, "EMA High", color=color.rgb(0, 128, 0), linewidth=2)
plot(emaLow, "EMA Low", color=color.rgb(255, 0, 0), linewidth=2)
plotshape(longCondition, "Long Signal", shape.triangleup,
location.belowbar, color=color.green, size=size.small)
plotshape(shortCondition, "Short Signal", shape.triangledown,
location.abovebar, color=color.red, size=size.small)
// Debugging Table
var table infoTable = table.new(position.top_right, 3, 3)
if barstate.islast
table.cell(infoTable, 0, 0, "EMA High: " + str.tostring(emaHigh, "#.00"))
table.cell(infoTable, 0, 1, "EMA Low: " + str.tostring(emaLow, "#.00"))
table.cell(infoTable, 0, 2, "Current RSI: " + str.tostring(rsi, "#.00"))