یہ حکمت عملی ٹریڈنگ کے بعد خودکار رجحان کو نافذ کرنے کے لئے حرکت پذیر اوسط کراس اوور اور اے ٹی آر اشارے کا استعمال کرتی ہے۔ جب تیز ای ایم اے سست ای ایم اے سے اوپر عبور کرتی ہے تو یہ طویل ہوجاتی ہے ، اور جب تیز ای ایم اے سست ای ایم اے سے نیچے عبور کرتی ہے تو مختصر ہوجاتی ہے۔ اسی وقت ، یہ رجحان کی سمت کا فیصلہ کرنے کے لئے اے ٹی آر اشارے کا استعمال کرتا ہے اور صرف اس وقت ہی تجارتی سگنل بھیجتا ہے جب اے ٹی آر اشارہ کرتا ہے کہ کوئی رجحان موجود ہے۔
یہ حکمت عملی بنیادی طور پر دو تکنیکی اشارے پر مبنی ہے:
ای ایم اے لائنز: اس میں دو ای ایم اے لائنیں مختلف پیرامیٹرز ، تیز اور سست کے ساتھ استعمال ہوتی ہیں۔ جب تیز ای ایم اے سست ای ایم اے کے اوپر عبور کرتی ہے تو ، اسے ایک لمبا سگنل سمجھا جاتا ہے۔ جب تیز ای ایم اے سست ای ایم اے سے نیچے عبور کرتی ہے تو ، اسے ایک مختصر سگنل سمجھا جاتا ہے۔
اے ٹی آر اشارے: اے ٹی آر اشارے موجودہ اقدام کی رجحان سازی کا اندازہ کرنے کے لئے قیمتوں میں اتار چڑھاؤ کی شدت اور طاقت کی پیمائش کرتا ہے۔ چھوٹی اے ٹی آر اقدار استحکام کی نشاندہی کرتی ہیں جبکہ بڑی اوپر کی قیمتیں اے ٹی آر اقدار میں اضافے کا اشارہ کرتی ہیں ، اور بڑی نیچے کی قیمتیں اے ٹی آر اقدار میں کمی کا اشارہ کرتی ہیں۔
تجارتی مواقع کی نشاندہی کرنے کے لئے ای ایم اے کراس اوورز اور کم رجحان سازی کے نظام سے بچنے کے لئے اے ٹی آر فلٹر کو یکجا کرکے ، اس حکمت عملی کا مقصد مارکیٹ میں ہلچل کے دوران پھانسی سے بچنا ہے۔
اس حکمت عملی کے فوائد میں شامل ہیں:
صرف تب ہی تجارت کریں جب اے ٹی آر رجحان کی نشاندہی کرتا ہے ، جو غیر سمت کے نظام کے دوران پھانسی سے بچنے میں مدد کرتا ہے۔
ٹریڈنگ سگنلز کی شناخت کے لئے سادہ تیز رفتار بمقابلہ سست EMA کراس اوور منطق کا استعمال کرتے ہوئے.
پیرامیٹر ایڈجسٹمنٹ کے ذریعے اپنی مرضی کے مطابق EMA حساسیت اور ہموار.
مکمل خودکار ٹریڈنگ سسٹم صرف دو سادہ اشارے کے ساتھ بنایا گیا ہے، جو پائین ایڈیٹر میں آسانی سے لاگو ہوتا ہے۔
مسلسل پیرامیٹر tweaking کے لئے کم سے کم ضرورت،
نوٹ کرنے کے لئے کچھ خطرات میں شامل ہیں:
ای ایم اے کراس اوورز غلط سگنل پیدا کرسکتے ہیں ، جس سے غیر ضروری نقصانات پیدا ہوسکتے ہیں۔ ہموار ای ایم اے پیرامیٹرز مدد کرسکتے ہیں۔
اے ٹی آر رجحان کا فیصلہ غلطیوں کا شکار ہوسکتا ہے ، تجارتی مواقع سے محروم ہوسکتا ہے۔ اے ٹی آر کی حد کی قیمتوں میں نرمی ہوسکتی ہے۔
اعلی ٹائم فریم کے بنیادی اصولوں پر کوئی غور نہیں کیا گیا۔ اہم خبروں کے واقعات میں تبدیلیاں آسکتی ہیں جو تیز رفتار EMA کراسورز کو نظر انداز کرسکتے ہیں ، جس میں دستی مداخلت کی ضرورت ہوتی ہے۔
ان خطرات کو اصلاحات کے ذریعے کم کیا جا سکتا ہے۔
اصلاح کی اہم سمتوں میں شامل ہیں:
ایک مشترکہ نظام بنانے اور سگنل کی درستگی کو بہتر بنانے کے لئے دیگر اشارے شامل کرنا۔ مثال کے طور پر - زیادہ خرید / فروخت کے خطرات سے بچنے کے لئے آر ایس آئی کو ضم کرنا۔
ای ایم اے اور اے ٹی آر پیرامیٹرز کا انتخاب کرنا جو مخصوص مارکیٹ کے لئے زیادہ موزوں ہے جس کی بنیاد پر علامت اور ٹائم فریم پر تجارت کی جاتی ہے۔
موجودہ مارکیٹ کے حالات کی بنیاد پر اشارے کو ایڈجسٹ کرنے کے لئے مشین لرننگ کے ذریعے متحرک پیرامیٹر کی اصلاح کو نافذ کرنا ، مقررہ جامد اقدار کے بجائے۔
مجموعی طور پر یہ ایک بہت ہی عملی رجحان کی پیروی کرنے والی حکمت عملی ہے۔ صرف دو اشارے کے ایک آسان امتزاج کے ساتھ ، یہ ایک نسبتا complete مکمل تجارتی نظام تیار کرتا ہے۔ پیرامیٹر ایڈجسٹمنٹ کے ذریعے اسے مختلف ترجیحات اور طرز کے ساتھ تاجروں کے مطابق بنایا جاسکتا ہے۔ اسی وقت ، مزید توسیع اور اصلاحات حکمت عملی کی کارکردگی کو اور بھی بہتر بنا سکتی ہیں۔ مضبوط اصلاح کی صلاحیت کے ساتھ مل کر آسان لیکن موثر تجارتی منطق اس کو طویل مدتی میں تحقیق اور لاگو کرنے کے لئے ایک قابل قدر مقداری حکمت عملی بناتی ہے۔
/*backtest start: 2022-12-05 00:00:00 end: 2023-12-11 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This strategy has been created for GMT trade 4h by Zhukov //@version=5 strategy('ZhukovTrade', overlay=true, calc_on_every_tick=true, currency=currency.USD) // INPUT: // Options to enter fast and slow Exponential Moving Average (EMA) values emaFast = input.int(title='Fast EMA', defval=100, minval=1, maxval=9999) emaSlow = input.int(title='Slow EMA', defval=200, minval=1, maxval=9999) // Option to select trade directions tradeDirection = input.string(title='Trade Direction', options=['Long', 'Short', 'Both'], defval='Both') // Options that configure the backtest date range startDate = input(title='Start Date', defval=timestamp('01 Jan 2023 00:00')) endDate = input(title='End Date', defval=timestamp('31 Dec 2023 23:59')) // CALCULATIONS: // Use the built-in function to calculate two EMA lines fastEMA = ta.ema(close, emaFast) slowEMA = ta.ema(close, emaSlow) emapos = ta.ema(close,200) // PLOT: // Draw the EMA lines on the chart plot(series=fastEMA, color=color.new(color.orange, 0), linewidth=2) plot(series=slowEMA, color=color.new(color.blue, 0), linewidth=2) plot(series=emapos, color=color.new(color.red, 0), linewidth=2) // CONDITIONS: // Check if the close time of the current bar falls inside the date range inDateRange = true // Translate input into trading conditions longOK = tradeDirection == 'Long' or tradeDirection == 'Both' shortOK = tradeDirection == 'Short' or tradeDirection == 'Both' // Decide if we should go long or short using the built-in functions longCondition = ta.crossover(fastEMA, slowEMA) shortCondition = ta.crossunder(fastEMA, slowEMA) // ORDERS: // Set take profit and stop loss percentages take_profit_percent = input(0, title="Take Profit Percent") stop_loss_percent = input(0, title="Stop Loss Percent") // Submit entry (or reverse) orders atrPeriod = input(12, "ATR Length") factor = input.float(3.0, "Factor", step = 0.01) [supertrend, direction] = ta.supertrend(factor, atrPeriod) bodyMiddle = plot((open + close) / 2, display=display.none) upTrend = plot(direction < 0 ? supertrend : na, "Up Trend", color = color.green, style=plot.style_linebr) downTrend = plot(direction < 0? na : supertrend, "Down Trend", color = color.red, style=plot.style_linebr) fill(bodyMiddle, upTrend, color.new(color.green, 90), fillgaps=false) fill(bodyMiddle, downTrend, color.new(color.red, 90), fillgaps=false) if longCondition and inDateRange if longOK and direction<0 strategy.entry(id='long', direction=strategy.long, alert_message = "LONG") if shortCondition and inDateRange if shortOK and direction>0 strategy.entry(id='short', direction=strategy.short, alert_message = "SHORT") // Submit exit orders in the cases where we trade only long or only short if strategy.position_size > 0 and take_profit_percent strategy.exit(id='tp long',from_entry ="long",profit = take_profit_percent) if strategy.position_size > 0 and stop_loss_percent strategy.exit(id='sl long',from_entry="long",loss=stop_loss_percent) if strategy.position_size < 0 and stop_loss_percent strategy.exit(id='sl short',from_entry="short",loss=stop_loss_percent) if strategy.position_size < 0 and take_profit_percent strategy.exit(id='tp short',from_entry="short",profit = take_profit_percent)