
اس حکمت عملی میں تیز EMA لائن اور سست EMA لائن کے کراسنگ کو خرید و فروخت کے سگنل کے طور پر استعمال کیا جاتا ہے ، جس سے اوسط لائن کراسنگ کے مطابق خود کار طریقے سے تجارت کی جاسکتی ہے۔ تیز EMA لائن قیمت کی تبدیلی کو تنگ کرتی ہے ، سست EMA لائن قیمت کی تبدیلی کو ہموار کرتی ہے۔ جب تیز EMA لائن نیچے کی طرف سے سست EMA لائن کو عبور کرتی ہے تو ، خریدنے کا اشارہ پیدا ہوتا ہے۔ جب تیز EMA لائن اوپر کی طرف سے نیچے کی طرف سے سست EMA لائن کو توڑتی ہے تو ، فروخت کا اشارہ پیدا ہوتا ہے۔ یہ حکمت عملی لچکدار ہے ، اور تیز EMA کے پیرامیٹرز کو ایڈجسٹ کرکے خرید و فروخت کے اشارے کو اپنی مرضی کے مطابق بنایا جاسکتا ہے۔
یہ حکمت عملی بنیادی طور پر تیز EMA لائنوں اور سست EMA لائنوں کا حساب کتاب کرکے اور دو مساوی لائنوں کے تعلقات کا موازنہ کرکے تجارتی سگنل تیار کرتی ہے۔
سب سے پہلے ، ان پٹ پیرامیٹرز میں فاسٹ ای ایم اے کا دورانیہ ای ایم اے فاسٹ کو 1 پر سیٹ کریں ، تاکہ فاسٹ ای ایم اے کی قیمت میں تبدیلی کو روکنے کے قابل ہو۔ اس کے ساتھ ساتھ سست ای ایم اے کا دورانیہ بھی ترتیب دیا گیا ہے ، ای ایم اے سست خرید خرید سگنل پیدا کرنے کے لئے ، ای ایم اے سست فروخت سگنل پیدا کرنے کے لئے۔
پھر ، ان پٹ کی مدت کے مطابق ، فاسٹ ای ایم اے اور سست ای ایم اے کا حساب لگائیں۔ فاسٹ ای ایم اے کی مقررہ مدت 1 ہے ، قیمتوں پر قابو پالیں۔ سست ای ایم اے قیمتوں کے اعداد و شمار کو ہموار کرنے کے لئے ایڈجسٹ قابل پیرامیٹرز ہیں۔
اگلا ، تیز رفتار ای ایم اے اور سست رفتار ای ایم اے کے سائز کا رشتہ موازنہ کریں ، اور کراسنگ کا فیصلہ کریں۔ اگر تیز رفتار ای ایم اے نیچے کی طرف سے سست رفتار ای ایم اے کو پار کرتا ہے تو ، گولڈ فورک پیدا ہوتا ہے ، خریدنے کی شرط کو پورا کرتا ہے۔ اگر تیز رفتار ای ایم اے اوپر کی طرف سے نیچے کی طرف سے سست رفتار ای ایم اے کو توڑتا ہے تو ، ڈیڈ فورک پیدا ہوتا ہے ، فروخت کی شرط کو پورا کرتا ہے۔
آخر میں ، جب خرید و فروخت کی شرائط پوری ہوجائیں تو ، پوزیشن کھولنے اور پوزیشن پر عملدرآمد کرنے کے لئے متعلقہ ہدایات پر عمل کریں ، اور تجارت کو مکمل کریں۔ اس کے ساتھ ہی ، چیک کریں کہ آیا موجودہ وقت ریٹرننگ ٹائم فریم میں ہے یا نہیں ، تاکہ تاریخ کی حد سے باہر ہونے سے غلط تجارت سے بچ سکے۔
خطرے کے حوالے سے ، مندرجہ ذیل اصلاحات پر غور کیا جاسکتا ہے:
ای ایم اے کراس سگنل کو دوسرے اشارے کے ساتھ مل کر فلٹر کریں تاکہ غلط سگنل سے بچا جاسکے
مارکیٹ میں اتار چڑھاؤ کی سطح کے مطابق ای ایم اے پیرامیٹرز کو ایڈجسٹ کریں ، تجارت کی تعدد کو کم کریں
اسٹاپ نقصان اور روک تھام کے بارے میں مزید غور و فکر اور خطرے کو کنٹرول کرنا
تیز رفتار EMA کی مدت کو بہتر بنانا ، مخصوص مارکیٹ کے حالات میں زیادہ مناسب پیرامیٹرز کا استعمال کرنا
رجحانات کا اندازہ لگانے اور مارکیٹ میں اتار چڑھاؤ کی وجہ سے زیادہ تجارت سے بچنے کے لئے
اس حکمت عملی کو مزید بہتر بنانے کے لیے مندرجہ ذیل نکات پر غور کیا جا سکتا ہے:
مختلف ایما فاسٹ اور ایما سلو پیرامیٹرز کے ذریعے ، قدم بہ قدم اصلاح یا بے ترتیب اصلاح کے طریقوں کو استعمال کرکے ، تاریخی اعداد و شمار کی بازیافت میں بہترین کارکردگی کا مظاہرہ کرنے والے پیرامیٹرز کا مجموعہ تلاش کیا جاسکتا ہے۔
مثال کے طور پر MACD، KDJ، برن بینڈ اور دیگر اشارے کے ساتھ مل کر ای ایم اے کراس غلط سگنل کو روکنے کے لئے.
اوسط حقیقی طول و عرض جیسے اشارے کا حساب لگانا ، مضبوطی اور کمزوری کا اندازہ لگانا ، اور ہلچل والی مارکیٹ میں پڑنے سے بچنا۔
نقصان کے خطرے کو کنٹرول کرنے کے لئے سب سے بہتر سٹاپ نقصان کی تلاش، اور منافع کو زیادہ سے زیادہ کرنے کے لئے مناسب سٹاپ نقصان کی تلاش.
نہ صرف تیز رفتار ای ایم اے کے جوڑے کی جانچ ، بلکہ ڈبل ای ایم اے ، تھری ای ایم اے اور یہاں تک کہ ملٹی ای ایم اے کے جوڑے کی بھی جانچ کی جاسکتی ہے ، بہتر پیرامیٹرز کی تلاش میں۔
رجحانات میں زیادہ مضبوط مارکیٹوں کے لئے EMA سائیکل کو مناسب طریقے سے تیز کیا جاسکتا ہے ، جبکہ ہلچل والے بازاروں میں EMA سائیکل کو سست کیا جاسکتا ہے۔
ای ایم اے کراسنگ حکمت عملی کا مجموعی نظریہ واضح اور سمجھنے میں آسان ہے ، جو فروخت اور خرید و فروخت کے وقت کا تعین کرنے کے لئے پختہ تکنیکی اشارے کا استعمال کرتا ہے۔ حکمت عملی حسب ضرورت ہے ، ای ایم اے پیرامیٹرز کو ایڈجسٹ کرکے اس کی اصلاح کی جاسکتی ہے ، تاکہ مختلف مارکیٹ کے حالات کے لئے تجارتی حکمت عملی وضع کی جاسکے۔ لیکن ای ایم اے سگنل میں تاخیر ہے ، جس کی وجہ سے بہترین پیرامیٹرز کا مجموعہ تلاش کرنے کے لئے بار بار جانچ کی ضرورت ہے۔ اس کے علاوہ ، خطرے کے لئے اصلاح کی ضرورت ہے ، دوسرے اشارے کے ساتھ مل کر سگنل کی جانچ پڑتال کی ضرورت ہے ، اور اسٹاپ نقصان کو روکنے کے طریقوں کو بہتر بنانا ہے ، جس سے واپسی کو کم کیا جاسکتا ہے اور منافع بخش صلاحیت کو بہتر بنایا جاسکتا ہے۔
/*backtest
start: 2023-10-10 00:00:00
end: 2023-11-09 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(
"EMA Cross Strategy with Custom Buy/Sell Conditions",
overlay=true
)
// INPUT:
// Options to enter fast Exponential Moving Average (EMA) value
emaFast = 1
// Options to enter slow EMAs for buy and sell signals
slowEMABuy = input(title="Slow EMA for Buy Signals", defval=20, minval=1, maxval=9999)
slowEMASell = input(title="Slow EMA for Sell Signals", defval=30, minval=1, maxval=9999)
// Option to select trade directions
tradeDirection = input(title="Trade Direction", options=["Long", "Short", "Both"], defval="Both")
// Options that configure the backtest date range
startDate = input(title="Start Date", type=input.time, defval=timestamp("01 Jan 2018 00:00"))
endDate = input(title="End Date", type=input.time, defval=timestamp("31 Dec 2025 23:59"))
// CALCULATIONS:
// Use a fixed fast EMA of 1 and calculate slow EMAs for buy and sell signals
fastEMA = ema(close, emaFast)
slowEMABuyValue = ema(close, slowEMABuy)
slowEMASellValue = ema(close, slowEMASell)
// PLOT:
// Draw the EMA lines on the chart
plot(series=fastEMA, color=color.orange, linewidth=2)
plot(series=slowEMABuyValue, color=color.blue, linewidth=2, title="Slow EMA for Buy Signals")
plot(series=slowEMASellValue, color=color.red, linewidth=2, title="Slow EMA for Sell Signals")
// CONDITIONS:
// Check if the close time of the current bar falls inside the date range
inDateRange = true
// Translate input into trading conditions for buy and sell signals
buyCondition = crossunder(slowEMABuyValue, fastEMA)
sellCondition = crossover(slowEMASellValue, fastEMA)
// Translate input into overall trading conditions
longOK = (tradeDirection == "Long") or (tradeDirection == "Both")
shortOK = (tradeDirection == "Short") or (tradeDirection == "Both")
// ORDERS:
// Submit entry (or reverse) orders based on buy and sell conditions
if (buyCondition and inDateRange)
strategy.entry("Buy", strategy.long)
if (sellCondition and inDateRange)
strategy.close("Buy")
// Submit exit orders based on opposite trade conditions
if (strategy.position_size > 0 and sellCondition)
strategy.close("Sell")
if (strategy.position_size < 0 and buyCondition)
strategy.close("Sell")