
اس حکمت عملی کا بنیادی خیال یہ ہے کہ ٹریڈنگ سگنل پیدا کرنے کے لئے متعدد اشاریہ حرکت پذیر اوسط (ای ایم اے) کے کراس پر مبنی ہو۔ جب قلیل مدتی ای ایم اے پر طویل مدتی ای ایم اے پہنا جاتا ہے تو ، زیادہ کام کریں۔ جب قلیل مدتی ای ایم اے کے نیچے طویل مدتی ای ایم اے پہنا جاتا ہے تو ، خالی پوزیشن۔ یہ حکمت عملی ایک سے زیادہ ای ایم اے سائیکلوں کو ترتیب دینے کی اجازت دیتی ہے ، ہر ای ایم اے کو آزادانہ طور پر چالو کیا جاسکتا ہے ، حکمت عملی تمام چالو ای ایم اے پر کراس ٹریڈنگ کرے گی۔
اس حکمت عملی میں 8 ای ایم اے کی مدت ترتیب دی گئی ہے ، 8th ، 13th ، 21st ، 34th ، 55th ، 89th ، 144th ، اور 233rd لائن۔ یہ ای ایم اے ترتیب دیئے گئے ہیں کہ وہ آزادانہ طور پر فعال یا غیر فعال ہوسکیں۔
جب مختصر ای ایم اے نیچے سے طویل ای ایم اے کو ٹکراتا ہے تو ، خریدنے کا اشارہ ہوتا ہے۔ جب مختصر ای ایم اے اوپر سے نیچے سے طویل ای ایم اے کو ٹکراتا ہے تو ، فروخت کا اشارہ ہوتا ہے۔ اگر دونوں ای ایم اے کو چالو کیا جاتا ہے تو ، shorterEMA > longerEMA ایک کثیر سگنل ہے ، اور shorterEMA
مثال کے طور پر ، اگر 55 دن کا ای ایم اے اور 89 دن کا ای ایم اے فعال ہے تو ، جب 55 دن کا ای ایم اے 89 دن کا ای ایم اے پہنتا ہے تو ، اس سے زیادہ کام کریں۔ جب 55 دن کا ای ایم اے 89 دن کا ای ایم اے پہنتا ہے تو ، اس حکمت عملی کو متحرک طور پر ایڈجسٹ کرنے کی اجازت دیتا ہے۔ استعمال شدہ ای ایم اے مجموعہ ، لمبے دورانیے سے مختصر دورانیے میں تبدیل ، یا اس کے برعکس۔
پوزیشنوں کی تعداد اکاؤنٹ کے حقوق و فوائد کے طور پر سیٹ کی گئی ہے جس میں بند ہونے کے بعد ای ایم اے گروپوں کی تعداد کو تقسیم کیا گیا ہے۔ اس سے یہ یقینی بنایا جاتا ہے کہ ہر ای ایم اے پر پوزیشن کا سائز ایک جیسا ہو۔
ای ایم اے کو دوسرے اشارے کے مجموعے کے ساتھ استعمال کرنے پر غور کیا جاسکتا ہے ، جیسے کہ چینل اشارے یا صدمے کے اشارے ، سگنل کو فلٹر کرنے کے لئے ، یا رجحان اور الٹ اشارے کے ساتھ مل کر۔ اس کے علاوہ ، ای ایم اے پیرامیٹرز کو بہتر بنانا بہت ضروری ہے اور مختلف مارکیٹوں میں ایڈجسٹ کرنے کی ضرورت ہے۔
اس حکمت عملی کو مندرجہ ذیل پہلوؤں سے بہتر بنایا جاسکتا ہے:
ای ایم اے پیرامیٹرز کی اصلاح۔ بہترین ای ایم اے پیرامیٹرز کا مجموعہ پیرامیٹر اسکیننگ اور واک فارورڈ تجزیہ کے ذریعہ پایا جاسکتا ہے۔
فلٹرنگ کی شرائط میں اضافہ کریں۔ ای ایم اے کراسنگ کے دوران اضافی فلٹرنگ کی شرائط شامل کی جاسکتی ہیں تاکہ غلط سگنل سے بچایا جاسکے ، جیسے کہ حجم فلٹر ، اتار چڑھاؤ کی شرح فلٹر وغیرہ۔
دوسرے اشارے کے ساتھ۔ ای ایم اے کو دیگر اشارے جیسے میکڈ ، کے ڈی جے ، برن بینڈ وغیرہ کے ساتھ جوڑا جاسکتا ہے تاکہ ان کی باہمی تکمیل سے فائدہ اٹھایا جاسکے۔
متحرک ایڈجسٹ پوزیشن۔ ہر EMA پر پوزیشن کو مارکیٹ میں اتار چڑھاؤ یا رجحان کی طاقت کے مطابق متحرک طور پر ایڈجسٹ کیا جاسکتا ہے۔
منافع اور نقصان کا تناسب بہتر بنائیں۔ اسٹاپ نقصان کی سطح کو بہتر بنائیں ، بہترین رسک اور منافع کا تناسب تلاش کریں۔
یہ حکمت عملی مجموعی طور پر بہت آسان اور براہ راست ہے ، اور EMA کے کراسنگ کے ذریعے قلیل اور درمیانی مدت کے رجحانات کو پکڑتی ہے۔ اس کی خوبی یہ ہے کہ یہ انتہائی قابل ترتیب اور لچکدار ہے ، جس سے تاجر اپنے EMA کے جوڑے کو بہترین طور پر منتخب کرسکتا ہے۔ تاہم ، ایک ہی اشارے کے طور پر 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