اس حکمت عملی کا بنیادی خیال متعدد تیزی سے چلنے والی اوسط (ای ایم اے) کے کراس اوور پر مبنی تجارتی سگنل تیار کرنا ہے۔ جب مختصر مدت کی ای ایم اے نیچے سے طویل مدتی ای ایم اے کو عبور کرتی ہے تو یہ طویل ہوجاتی ہے ، اور جب مختصر مدت کی ای ایم اے طویل مدتی ای ایم اے کے تحت عبور کرتی ہے تو پوزیشنیں بند ہوجاتی ہیں۔ یہ حکمت عملی متعدد ای ایم اے ادوار کی تشکیل کی اجازت دیتی ہے ، اور ہر ای ایم اے کو آزادانہ طور پر فعال کیا جاسکتا ہے۔ حکمت عملی تمام فعال ای ایم اے پر کراس اوورز کی تجارت کرے گی۔
کثیر ٹائم فریم متحرک ای ایم اے ٹریڈنگ حکمت عملی
اسٹریٹجی میں 8 ای ایم اے کی مدت مقرر کی گئی ہے - 8 دن ، 13 دن ، 21 دن ، 34 دن ، 55 دن ، 89 دن ، 144 دن اور 233 دن۔ ان ای ایم اے کو آزادانہ طور پر فعال یا غیر فعال کیا جاسکتا ہے۔
یہ طویل مدتی ای ایم اے کے نیچے سے طویل مدتی ای ایم اے کو عبور کرتے وقت طویل مدتی سگنل تیار کرتا ہے۔ یہ باہر نکلنے کے سگنل تیار کرتا ہے جب مختصر مدت کے ای ایم اے اوپر سے طویل مدتی ای ایم اے کے نیچے سے عبور کرتے ہیں۔ لہذا اگر دو ای ایم اے فعال ہیں تو ، مختصر ای ایم اے > طویل ای ایم اے طویل سگنل ہے ، مختصر ای ایم اے < طویل ای ایم اے باہر نکلنے کا سگنل ہے۔
مثال کے طور پر ، اگر 55 دن کی ای ایم اے اور 89 دن کی ای ایم اے فعال ہیں تو ، جب 55 دن کی ای ایم اے 89 دن کی ای ایم اے کو عبور کرتی ہے تو حکمت عملی طویل ہوجاتی ہے ، اور جب 55 دن کی ای ایم اے 89 دن کی ای ایم اے سے نیچے عبور کرتی ہے تو باہر نکل جاتی ہے۔ اس سے حکمت عملی کو متحرک طور پر استعمال شدہ ای ایم اے کے مجموعوں کو ایڈجسٹ کرنے کی اجازت ملتی ہے ، طویل وقت کے فریموں سے مختصر یا اس کے برعکس سوئچ کرنا۔
پوزیشن سائزنگ کو اکاؤنٹ کے ایکویٹی کو بند کرکے بند کرنے والے ای ایم اے کی تعداد سے تقسیم کرنے کے لئے مقرر کیا گیا ہے۔ اس سے یہ یقینی بنتا ہے کہ ہر ای ایم اے کراس اوور پر پوزیشن سائز برابر ہوں۔
ای ایم اے کو دوسرے اشارے جیسے چینلز یا آسکیلیٹرز کے ساتھ مل کر سگنل فلٹر کرنے پر غور کریں ، یا رجحان اور الٹ اشارے شامل کریں۔ ای ایم اے پیرامیٹرز کو بھی بہتر بنانا بہت ضروری ہے ، مختلف مارکیٹوں کے لئے ٹیوننگ کی ضرورت ہے۔
حکمت عملی کو کئی پہلوؤں میں بہتر بنایا جا سکتا ہے:
بہترین EMA مجموعے تلاش کرنے کے لئے پیرامیٹر سکیننگ اور واک فارورڈ تجزیہ کے ذریعے EMA پیرامیٹرز کو بہتر بنائیں.
غلط سگنل سے بچنے کے لئے ای ایم اے کراس اوورز پر فلٹر کے حالات شامل کریں۔ مثال کے طور پر حجم فلٹر ، اتار چڑھاؤ فلٹر وغیرہ۔
تکمیل کا فائدہ اٹھانے کے لئے MACD، KDJ، بولنگر بینڈ جیسے دیگر اشارے کے ساتھ مل کر۔
مارکیٹ کی اتار چڑھاؤ یا رجحان کی طاقت کی بنیاد پر ہر EMA پر پوزیشن سائزنگ کو متحرک طور پر ایڈجسٹ کریں۔
سٹاپ نقصان کو بہتر بنائیں اور بہترین رسک ریٹرن ریشو حاصل کرنے کے لیے منافع کی سطح حاصل کریں۔
مجموعی طور پر ، یہ ایک بہت ہی آسان اور سیدھی حکمت عملی ہے جو مختصر اور درمیانی مدت کے رجحانات کو پکڑنے کے لئے ای ایم اے کراس اوورز سے سگنل تیار کرتی ہے۔ اس کا بنیادی فائدہ تاجروں کو ان کے لئے موزوں ای ایم اے کا انتخاب کرنے کی اجازت دینے کے لئے اعلی ترتیب اور لچک میں ہے۔ تاہم ، ای ایم اے اکیلے ہی آسانی سے غلط سگنل دے سکتا ہے جو سب سے بڑا خطرہ ہے۔ دوسرے اشارے اور پیرامیٹر کی اصلاح کے ساتھ مل کر بہتر تجارتی کارکردگی کا باعث بن سکتا ہے۔
/*backtest start: 2023-11-11 00:00:00 end: 2023-12-11 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("EMA Fan", shorttitle = "EMA Fan", overlay=true) // Revision: 1 // Author: @ToS_MavericK buyprice = 0.0 buyprice := buyprice[1] // === INPUT SMA === EMA1 = input(8) EMA2 = input(13) EMA3 = input(21) EMA4 = input(34) EMA5 = input(55) EMA6 = input(89) EMA7 = input(144) EMA8 = input(233) EnableEMA1 = input(true) EnableEMA2 = input(true) EnableEMA3 = input(true) EnableEMA4 = input(true) EnableEMA5 = input(true) EnableEMA6 = input(true) EnableEMA7 = input(true) EnableEMA8 = input(true) //Profit = input(defval = 5, type = integer, title = "Profit", minval = 1, step = 1) //StopLoss = input(defval = 15, type = integer, title = "StopLoss", minval = 1, step = 1) // === INPUT BACKTEST RANGE === FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2018, title = "From Year", minval = 2012) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 2020, title = "To Year", minval = 2012) // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => true // create function "within window of time" // === SERIES SETUP === vEMA1 = ema(close, EMA1) vEMA2 = ema(close, EMA2) vEMA3 = ema(close, EMA3) vEMA4 = ema(close, EMA4) vEMA5 = ema(close, EMA5) vEMA6 = ema(close, EMA6) vEMA7 = ema(close, EMA7) vEMA8 = ema(close, EMA8) count = -1 if (EnableEMA1 == true) count := count + 1 if (EnableEMA2 == true) count := count + 1 if (EnableEMA3 == true) count := count + 1 if (EnableEMA4 == true) count := count + 1 if (EnableEMA5 == true) count := count + 1 if (EnableEMA6 == true) count := count + 1 if (EnableEMA7 == true) count := count + 1 if (EnableEMA8 == true) count := count + 1 // set position size Amount = 1 / (close * count) // === EXECUTION === strategy.entry("EMA1", strategy.long, qty = Amount, when = window() and crossover(vEMA1,vEMA2) and EnableEMA1 and EnableEMA2) strategy.close("EMA1", time > finish or crossunder(vEMA1,vEMA2)) strategy.entry("EMA2", strategy.long, qty = Amount, when = window() and crossover(vEMA2,vEMA3) and EnableEMA2 and EnableEMA3) strategy.close("EMA2", time > finish or crossunder(vEMA2,vEMA3)) strategy.entry("EMA3", strategy.long, qty = Amount, when = window() and crossover(vEMA3,vEMA4) and EnableEMA3 and EnableEMA4) strategy.close("EMA3", time > finish or crossunder(vEMA3,vEMA4)) strategy.entry("EMA4", strategy.long, qty = Amount, when = window() and crossover(vEMA4,vEMA5) and EnableEMA4 and EnableEMA5) strategy.close("EMA4", time > finish or crossunder(vEMA4,vEMA5)) strategy.entry("EMA5", strategy.long, qty = Amount, when = window() and crossover(vEMA5,vEMA6) and EnableEMA5 and EnableEMA6) strategy.close("EMA5", time > finish or crossunder(vEMA5,vEMA6)) strategy.entry("EMA6", strategy.long, qty = Amount, when = window() and crossover(vEMA6,vEMA7) and EnableEMA6 and EnableEMA7) strategy.close("EMA6", time > finish or crossunder(vEMA6,vEMA7)) strategy.entry("EMA7", strategy.long, qty = Amount, when = window() and crossover(vEMA7,vEMA8) and EnableEMA7 and EnableEMA8) strategy.close("EMA7", time > finish or crossunder(vEMA7,vEMA8)) plot(vEMA1, title = 'EMA1', color = red, linewidth = 2, style = line) // plot FastMA plot(vEMA2, title = 'EMA2', color = orange, linewidth = 2, style = line) // plot SlowMA plot(vEMA3, title = 'EMA3', color = yellow, linewidth = 2, style = line) // plot SlowMA plot(vEMA4, title = 'EMA4', color = green, linewidth = 2, style = line) // plot SlowMA plot(vEMA5, title = 'EMA5', color = teal, linewidth = 2, style = line) // plot SlowMA plot(vEMA6, title = 'EMA6', color = blue, linewidth = 2, style = line) // plot SlowMA plot(vEMA7, title = 'EMA7', color = maroon, linewidth = 2, style = line) // plot SlowMA plot(vEMA8, title = 'EMA8', color = white, linewidth = 2, style = line) // plot SlowMA //plot(long_stop, title = 'High-ATR', color = red, linewidth = 2, style = line) // plot SlowMA //plot(short_stop, title = 'Low+ATR', color = green, linewidth = 2, style = line) // plot SlowMA