
اس حکمت عملی میں 20 اور 55 تاریخ کے دو انڈیکسوں کے متحرک اوسط ((EMA) کے کراسنگ کا استعمال کرتے ہوئے ٹریڈنگ سگنل کا فیصلہ کیا جاتا ہے۔ جب قلیل مدتی EMA پر طویل مدتی EMA سے گزرے تو خریدنے کا اشارہ دیا جاتا ہے ، اور اس کے برعکس فروخت کا اشارہ دیا جاتا ہے۔ اس حکمت عملی میں بیعانہ تجارت بھی متعارف کروائی گئی ہے ، جس سے فائدہ اٹھایا جاسکتا ہے ، جبکہ خطرہ بھی بڑھایا جاتا ہے۔ اس کے علاوہ ، اس حکمت عملی میں شرائط کی پابندی بھی شامل کی گئی ہے ، جب قیمت صرف دو اوسط لائنوں کے کراسنگ کے بعد ، جب قیمت قلیل مدتی اوسط لائن کو چھوئے گی ، تب ہی پوزیشن کھولی جائے گی ، تاکہ جعلی سگنل کے خطرے کو کم کیا جاسکے۔ آخر میں ، صارف EMA کی بجائے سادہ حرکت پذیری اوسط ((MA) کا استعمال کرنے کا بھی انتخاب کرسکتا ہے۔
یہ حکمت عملی مساوی لائن کراسنگ اور بیعانہ تجارت کے امتزاج کے ذریعے منافع کو بڑھا دیتی ہے جبکہ مارکیٹ کے رجحانات پر قابو پاتی ہے۔ لیکن بیعانہ بھی اعلی خطرہ لاتا ہے اور اسے احتیاط سے استعمال کرنے کی ضرورت ہے۔ اس کے علاوہ ، اس حکمت عملی میں اصلاح کی گنجائش بھی ہے ، جس میں مزید اشارے ، متحرک ایڈجسٹمنٹ پیرامیٹرز وغیرہ متعارف کرانے کے ذریعہ حکمت عملی کی کارکردگی کو بہتر بنایا جاسکتا ہے۔ مجموعی طور پر ، یہ حکمت عملی اعلی منافع کے حصول کے خواہاں تاجروں کے لئے موزوں ہے ، جبکہ اعلی خطرہ برداشت کرنے کے قابل ہے۔
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Crossover Strategy with Leverage, Conditional Entry, and MA Option", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Inputs for backtesting period
startDate = input(defval=timestamp("2023-01-01"), title="Start Date")
endDate = input(defval=timestamp("2024-04-028"), title="End Date")
// Input for leverage multiplier
leverage = input.float(3.0, title="Leverage Multiplier", minval=1.0, maxval=10.0, step=0.1)
// Input for choosing between EMA and MA
useEMA = input.bool(true, title="Use EMA (true) or MA (false)?")
// Input source and lengths for MAs
src = close
ema1_length = input.int(20, title='EMA/MA-1 Length')
ema2_length = input.int(55, title='EMA/MA-2 Length')
// Calculate the MAs based on user selection
pema1 = useEMA ? ta.ema(src, ema1_length) : ta.sma(src, ema1_length)
pema2 = useEMA ? ta.ema(src, ema2_length) : ta.sma(src, ema2_length)
// Tracking the crossover condition for strategy entry
crossedAbove = ta.crossover(pema1, pema2)
// Define a variable to track if a valid entry condition has been met
var bool readyToEnter = false
// Check for MA crossover and update readyToEnter
if (crossedAbove)
readyToEnter := true
// Entry condition: Enter when price touches MA-1 after the crossover // and (low <= pema1 and high >= pema1)
entryCondition = readyToEnter
// Reset readyToEnter after entry
if (entryCondition)
readyToEnter := false
// Exit condition: Price crosses under MA-1
exitCondition = ta.crossunder(pema1, pema2)
// Check if the current bar's time is within the specified period
inBacktestPeriod = true
// Execute trade logic only within the specified date range and apply leverage to position sizing
if (inBacktestPeriod)
if (entryCondition)
strategy.entry("Long", strategy.long, qty=strategy.equity * leverage / close)
if (exitCondition)
strategy.close("Long")
// Plotting the MAs for visual reference
ema1_color = pema1 > pema2 ? color.red : color.green
ema2_color = pema1 > pema2 ? color.red : color.green
plot(pema1, color=ema1_color, style=plot.style_line, linewidth=1, title='EMA/MA-1')
plot(pema2, color=ema2_color, style=plot.style_line, linewidth=1, title='EMA/MA-2')