یہ حکمت عملی دو طرفہ رجحان کی پیروی کے لئے ای ایم اے لائنوں کے سنہری کراس اور مردہ کراس کا استعمال کرتی ہے ، اور مارکیٹ میں رجحان کی نقل و حرکت کو پکڑنے کے لئے لمبی اور مختصر پوزیشنوں کے لئے متحرک اسٹاپ نقصان کی لائنیں مرتب کرتی ہے۔
اے ٹی آر پر مبنی رسک مینجمنٹ ، اسٹاپ نقصان کے قوانین کو بہتر بنانا ، فلٹر اشارے شامل کرنا وغیرہ جیسے بہتری سے حکمت عملی کو بہتر بنانے میں مدد مل سکتی ہے۔
اختتام کے طور پر ، یہ حکمت عملی کے بعد ایک بہت ہی عام رجحان ہے۔ متحرک اسٹاپ نقصان کے ساتھ ڈبل ای ایم اے کراس اوور مؤثر طریقے سے رجحان کے منافع کو لاک کرسکتا ہے۔ دریں اثنا ، پسماندہ سگنل اور وسیع پیمانے پر رکنے جیسے خطرات اب بھی موجود ہیں۔ پیرامیٹر ٹیوننگ ، رسک مینجمنٹ ، فلٹر کے اضافے وغیرہ کے ذریعے ، مزید اصلاح سے بہتر نتائج برآمد ہوسکتے ہیں۔
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover Strategy", shorttitle="EMAC", overlay=true,calc_on_every_tick=true) // Input parameters shortEmaLength = input(5, title="Short EMA Length") longEmaLength = input(20, title="Long EMA Length") priceEmaLength = input(1, title="Price EMA Length") // Set stop loss level with input options (optional) longLossPerc = input.float(0.05, title="Long Stop Loss (%)", minval=0.0, step=0.1) * 0.01 shortLossPerc = input.float(0.05, title="Short Stop Loss (%)", minval=0.0, step=0.1) * 0.01 // Calculating indicators shortEma = ta.ema(close, shortEmaLength) longEma = ta.ema(close, longEmaLength) //priceEma = ta.ema(close, priceEmaLength) vwap = ta.vwap(close) // Long entry conditions longCondition = ta.crossover(shortEma, longEma) and close > vwap // Short entry conditions shortCondition = ta.crossunder(shortEma, longEma) and close > vwap // STEP 2: // Determine stop loss price longStopPrice = strategy.position_avg_price * (1 - longLossPerc) shortStopPrice = strategy.position_avg_price * (1 + shortLossPerc) if (longCondition) strategy.entry("Enter Long", strategy.long) strategy.exit("Exit Long",from_entry = "Enter Long",stop= longStopPrice) plotshape(series=longCondition, title="Long Signal", color=color.green, style=shape.triangleup, location=location.belowbar) if (shortCondition) strategy.entry("Enter Short", strategy.short) strategy.exit("Exit Short", from_entry = "Enter Short",stop = shortStopPrice) plotshape(series=shortCondition, title="Short Signal", color=color.red, style=shape.triangledown, location=location.abovebar) // Stop loss levels //longStopLoss = (1 - stopLossPercent) * close //shortStopLoss = (1 + stopLossPercent) * close // Exit conditions //strategy.exit("Long", from_entry="Long", loss=longStopLoss) //strategy.exit("Short", from_entry="Short", loss=shortStopLoss) // Plotting indicators on the chart plot(shortEma, color=color.yellow, title="Short EMA") plot(longEma, color=color.green, title="Long EMA") plot(close, color=color.black, title="Close") plot(vwap, color=color.purple, title="VWAP") // Plot stop loss values for confirmation plot(strategy.position_size > 0 ? longStopPrice : na, color=color.red, style=plot.style_line, linewidth=2, title="Long Stop Loss") plot(strategy.position_size < 0 ? shortStopPrice : na, color=color.blue, style=plot.style_line, linewidth=2, title="Short Stop Loss") // Plotting stop loss lines //plot(longStopLoss, color=color.red, title="Long Stop Loss", linewidth=2, style=plot.style_line) //plot(shortStopLoss, color=color.aqua, title="Short Stop Loss", linewidth=2, style=plot.style_line)