اس حکمت عملی میں تجارتی سگنل پیدا کرنے کے لئے 20 دن اور 55 دن کے تیزی سے چلنے والے اوسط (ای ایم اے) کے کراس اوور کا استعمال کیا جاتا ہے۔ جب قلیل مدتی ای ایم اے طویل مدتی ای ایم اے سے تجاوز کرتا ہے تو خرید کا سگنل متحرک ہوجاتا ہے ، اور جب اس کے برعکس ہوتا ہے تو فروخت کا سگنل متحرک ہوجاتا ہے۔ اس حکمت عملی میں لیوریج ٹریڈنگ بھی متعارف کرایا جاتا ہے ، جو ممکنہ منافع اور خطرات دونوں کو بڑھا دیتا ہے۔ اس کے علاوہ ، اس حکمت عملی میں ایک مشروط پابندی شامل ہے جو صرف اس وقت پوزیشن میں داخل ہونے کی اجازت دیتی ہے جب قیمت کراس اوور کے بعد قلیل مدتی ای ایم اے کو چھوتی ہے ، تاکہ غلط سگنل کے خطرے کو کم کیا جاسکے۔ آخر میں ، صارفین کو ای ایم اے کی بجائے سادہ چلنے والے اوسط (ایس ایم اے) کا استعمال کرنے کا اختیار ہے۔
یہ حکمت عملی مارکیٹ کے رجحانات کو پکڑنے کے ل moving اوسط کراس اوورز اور بیعانہ ٹریڈنگ کو جوڑتی ہے جبکہ منافع کو بڑھا دیتی ہے۔ تاہم ، بیعانہ بھی اعلی خطرات لاتا ہے اور احتیاط کے ساتھ استعمال کرنے کی ضرورت ہے۔ اس کے علاوہ ، اس حکمت عملی میں اصلاح کی گنجائش ہے ، جس کو مزید اشارے متعارف کرانے ، متحرک طور پر پیرامیٹرز کو ایڈجسٹ کرنے وغیرہ کے ذریعہ حاصل کیا جاسکتا ہے۔ مجموعی طور پر ، یہ حکمت عملی ان تاجروں کے لئے موزوں ہے جو اعلی منافع حاصل کرتے ہیں اور اعلی خطرات برداشت کرسکتے ہیں۔
/*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')