
یہ حکمت عملی دو اشاریہ حرکت پذیر اوسط ((EMA) کے کراس سگنل پر مبنی تجارت کرتی ہے۔ جب قلیل مدتی EMA پر طویل مدتی EMA ہوتا ہے تو ، زیادہ پوزیشن کھولی جاتی ہے۔ جب قلیل مدتی EMA کے نیچے طویل مدتی EMA ہوتا ہے تو ، اس کی جگہ لی جاتی ہے۔ اس حکمت عملی میں خطرے کو کنٹرول کرنے اور حکمت عملی کی کارکردگی کو بہتر بنانے کے لئے اسٹاپ نقصان کا طریقہ کار اور تجارتی وقت کا فلٹر بھی متعارف کرایا گیا ہے۔
اس حکمت عملی نے دو مختلف ادوار کے EMAs کو رجحانات کی بنیاد کے طور پر استعمال کیا۔ EMAs سادہ حرکت پذیری اوسط کے مقابلے میں زیادہ تیزی سے رد عمل کا مظاہرہ کرتی ہیں اور وزن کی تقسیم زیادہ معقول ہے۔ جب طویل مدتی EMAs پر مختصر مدت کے EMAs کا مطلب یہ ہے کہ قیمتیں بڑھتی ہوئی رجحانات کی تشکیل کرسکتی ہیں ، اس وقت زیادہ پوزیشنیں کھولی جاتی ہیں۔ اس کے برعکس ، جب طویل مدتی EMAs پر مختصر مدت کے EMAs کا مطلب ہے کہ بڑھتی ہوئی رجحانات ختم ہوسکتی ہیں ، اس وقت پوزیشنیں صاف ہوجاتی ہیں۔
مساوی لائن کراس سگنل کے علاوہ ، اس حکمت عملی میں ایک اسٹاپ نقصان کا طریقہ کار بھی متعارف کرایا گیا ہے۔ ایک طرف ، ایک مقررہ فیصد اسٹاپ قائم کیا گیا ہے ، یعنی جب قیمتوں کے مقابلے میں کھولی ہوئی قیمتوں میں ایک خاص فیصد سے زیادہ کمی واقع ہوتی ہے تو ، نقصان کو کنٹرول کرنے کے لئے کھلنے پر مجبور کیا جاتا ہے۔ دوسری طرف ، جب قیمت کی کھلنے والی قیمت پچھلے K لائن کی کھلنے والی قیمت سے کم ہوتی ہے تو ، کھلنے کا انتخاب کیا جاسکتا ہے۔ دونوں اسٹاپ نقصانات حکمت عملی کو موثر طریقے سے کنٹرول کرسکتے ہیں۔
اس کے علاوہ ، اس حکمت عملی میں ٹرانزیکشن ٹائم فلٹر بھی متعارف کرایا گیا ہے۔ صارف اپنے آپ کو ٹرانزیکشن کے آغاز اور اختتام کے وقت کی اجازت دے سکتا ہے ، تاکہ مخصوص اوقات (جیسے تعطیلات ، غیر تجارتی اوقات وغیرہ) میں تجارت سے گریز کیا جاسکے۔
استعمال میں آسان: حکمت عملی کی منطق واضح ہے ، صرف دو ای ایم اے کو ٹریڈنگ سگنل کے طور پر استعمال کیا جاتا ہے ، جو سمجھنے اور اس پر عمل درآمد میں آسان ہے۔
رجحانات کی پیروی: ای ایم اے کی قیمت میں تبدیلیوں پر تیزی سے ردعمل دینے کی صلاحیت ، حکمت عملی کو رجحانات کی تشکیل اور اختتام کو وقت پر پکڑنے کی اجازت دیتی ہے ، جس سے رجحانات کی پیروی سے فائدہ ہوتا ہے۔
رسک کنٹرول: فکسڈ فی صد اسٹاپ نقصانات اور پچھلے K لائن کے اختتامی قیمت پر مبنی اسٹاپ نقصانات کو متعارف کرایا گیا ، جس سے ایک ہی تجارت میں ہونے والے نقصانات اور واپسی کو مؤثر طریقے سے کنٹرول کیا جاسکے۔
پیرامیٹرز میں لچک: صارف اپنی ضروریات کے مطابق ای ایم اے سائیکل ، اسٹاپ نقصان کی فیصد ، پچھلے K لائن کو بند کرنے کی قیمت کا استعمال کیا گیا ہے یا نہیں ، تجارت کا وقت ، وغیرہ کو ایڈجسٹ کرسکتا ہے ، تاکہ حکمت عملی کی کارکردگی کو بہتر بنایا جاسکے۔
پیرامیٹرز کو بہتر بنانے کا خطرہ: اس حکمت عملی کی کارکردگی کا انحصار ای ایم اے دورانیہ ، اسٹاپ نقصان فیصد وغیرہ جیسے پیرامیٹرز کے انتخاب پر ہے۔ نامناسب پیرامیٹرز حکمت عملی کی خراب کارکردگی کا سبب بن سکتے ہیں۔ لہذا ، بہترین پیرامیٹرز کو منتخب کرنے کے لئے تاریخی اعداد و شمار پر پیرامیٹرز کی اصلاح اور جانچ پڑتال کی ضرورت ہے۔
مارکیٹ کا خطرہ: یہ حکمت عملی بنیادی طور پر رجحاناتی مارکیٹوں میں لاگو ہوتی ہے ، جب مارکیٹ میں ہلچل پڑتی ہے یا رجحان الٹ جاتا ہے تو ، بار بار تجارت سے بڑے پیمانے پر واپسی کا سبب بن سکتا ہے۔ لہذا ، حکمت عملی کے پیرامیٹرز کو مارکیٹ کی صورتحال کے مطابق ایڈجسٹ کرنے یا اس حکمت عملی کا استعمال بند کرنے کی ضرورت ہے۔
لاگت کا خطرہ: اس حکمت عملی سے زیادہ تعداد میں لین دین ہوسکتے ہیں ، جس سے لین دین کی لاگت میں اضافہ ہوتا ہے۔ لہذا ، مناسب تجارت کے معیار اور تجارت کی مقدار کا انتخاب کرنے اور ہر تجارت کی لاگت پر قابو پانے کی ضرورت ہے۔
مزید تکنیکی اشارے متعارف کروائیں: ای ایم اے کراس سگنل کی بنیاد پر ، دیگر تکنیکی اشارے جیسے آر ایس آئی ، ایم اے سی ڈی وغیرہ متعارف کروائیں ، جس سے کثیر عنصر ٹریڈنگ سگنل تشکیل پائے ، جس سے رجحانات کا تعین کرنے کی درستگی میں اضافہ ہو۔
متحرک رکاوٹ: مارکیٹ میں اتار چڑھاو ، اے ٹی آر اور دیگر اشارے کے مطابق ، روکنے کی پوزیشن کو متحرک طور پر ایڈجسٹ کریں ، خطرے کو کنٹرول کرتے ہوئے ، جتنا ممکن ہو سکے کو روکنے سے ہونے والے نقصان کو کم کریں۔
پوزیشن مینجمنٹ: مارکیٹ کے رجحانات کی طاقت ، قیمت اور اوسط سے انحراف کی حد وغیرہ کے مطابق ، پوزیشن کا سائز متحرک طور پر ایڈجسٹ کریں ، جب رجحانات مضبوط ہوں تو پوزیشن بڑھا دیں ، جب رجحانات کمزور یا غیر واضح ہوں تو پوزیشن کو کم کریں۔
مشین لرننگ آپٹیمائزیشن: مشین لرننگ الگورتھم کا استعمال کرتے ہوئے حکمت عملی کے پیرامیٹرز کو بہتر بنانے کے لئے ، خود بخود بہترین پیرامیٹرز کا مجموعہ منتخب کریں ، حکمت عملی کے فوائد میں اضافہ کریں اور زیادہ فٹ ہونے کے خطرے کو کم کریں۔
یہ دوہری یکساں کراس کی پیمائش کی حکمت عملی دو ای ایم اے کے کراس سگنل کے ذریعہ رجحانات کا فیصلہ کرتی ہے ، جبکہ اسٹاپ نقصان کا طریقہ کار اور ٹریڈنگ ٹائم فلٹر متعارف کرایا جاتا ہے ، جس میں رجحانات کی پیروی کرنے کی صلاحیت اور خطرے پر قابو پانے کے مابین ایک اچھا توازن پایا جاتا ہے۔ اگرچہ حکمت عملی کا منطق آسان ہے ، لیکن معقول پیرامیٹرز کی اصلاح اور خطرے پر قابو پانے کے بعد ، رجحانات والی مارکیٹ میں مستحکم منافع حاصل کیا جاسکتا ہے۔ اس حکمت عملی کو مزید تکنیکی اشارے ، متحرک اسٹاپ نقصان کی پوزیشن ، انتظامیہ اور مشین لرننگ کی اصلاح کے علاوہ مزید تکنیکی اشارے متعارف کرانے کے ذریعہ بہتر بنایا جاسکتا ہے۔
/*backtest
start: 2023-03-02 00:00:00
end: 2024-03-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ZenAndTheArtOfTrading / www.PineScriptMastery.com
// @version=5
strategy("EMA strategy",
overlay=true,
initial_capital=50000,
default_qty_type=strategy.percent_of_equity,
default_qty_value=100, // 100% of balance invested on each trade
commission_type=strategy.commission.cash_per_contract,
commission_value=0.005) // Interactive Brokers rate
// Get user input
i_ma1 = input.int(title="MA 1 Length", defval=200, step=10, group="Strategy Parameters", tooltip="Long-term MA")
i_ma2 = input.int(title="MA 2 Length", defval=10, step=10, group="Strategy Parameters", tooltip="Short-term MA")
i_stopPercent = input.float(title="Stop Loss Percent", defval=0.10, step=0.1, group="Strategy Parameters", tooltip="Failsafe Stop Loss Percent Decline")
i_lowerClose = input.bool(title="Exit On Lower Close", defval=false, group="Strategy Parameters", tooltip="Wait for a lower-close before exiting above MA2")
i_startTime = input(title="Start Filter", defval=timestamp("01 Jan 1995 13:30 +0000"), group="Time Filter", tooltip="Start date & time to begin searching for setups")
i_endTime = input(title="End Filter", defval=timestamp("1 Jan 2099 19:30 +0000"), group="Time Filter", tooltip="End date & time to stop searching for setups")
// Get indicator values
ma1 = ta.ema(close, i_ma1)
ma2 = ta.ema(close, i_ma2)
// Check filter(s)
f_dateFilter = true
// Check buy/sell conditions
var float buyPrice = 0
buyCondition = close > ma1 and strategy.position_size == 0 and f_dateFilter
sellCondition = close < ma2 and strategy.position_size > 0 //and (not i_lowerClose or close < low[1])
stopDistance = strategy.position_size > 0 ? ((buyPrice - close) / close) : na
stopPrice = strategy.position_size > 0 ? buyPrice - (buyPrice * i_stopPercent) : na
stopCondition = strategy.position_size > 0 and stopDistance > i_stopPercent
// Enter positions
if buyCondition
strategy.entry(id="Long", direction=strategy.long)
if buyCondition[1]
buyPrice := open
// Exit positions
if sellCondition or stopCondition
strategy.close(id="Long", comment="Exit" + (stopCondition ? "SL=true" : ""))
buyPrice := na
// Draw pretty colors
plot(buyPrice, color=color.lime, style=plot.style_linebr)
plot(stopPrice, color=color.red, style=plot.style_linebr, offset=-1)
plot(ma1, color=color.blue)
plot(ma2, color=color.orange)