MACD آسکیلیٹر اور EMA کراس اوور حکمت عملی


تخلیق کی تاریخ: 2023-09-23 15:24:12 آخر میں ترمیم کریں: 2023-09-23 15:24:12
کاپی: 0 کلکس کی تعداد: 746
1
پر توجہ دیں
1617
پیروکار

جائزہ

یہ حکمت عملی ایک سادہ اور موثر تجارتی حکمت عملی ہے جو آسکیولر اشارے MACD کو EMA کے ساتھ جوڑتی ہے۔ اس وقت یہ 4 گھنٹے کی K لائن پر قائم ہے اور ضرورت کے مطابق اسے دوسرے ٹائم پیریڈ میں ایڈجسٹ کیا جاسکتا ہے۔ یہ بٹ کوائن اور ایتھرین پر پچھلے 3 سالوں کے اعداد و شمار پر بہتر کارکردگی کا مظاہرہ کرتا ہے ، محض انعقاد کی حکمت عملی سے زیادہ ہے۔ اس کو بہتر بنانے اور ترمیم کرنے کے بعد ، اسے فیوچر ، اسٹاک ، فاریکس ، اسٹاک اور دیگر مارکیٹوں میں ایڈجسٹ کیا جاسکتا ہے۔

حکمت عملی کا اصول

اس حکمت عملی میں مندرجہ ذیل اجزاء شامل ہیں:

  1. ایم اے سی ڈی: قیمتوں کی متحرک تبدیلیوں کا اندازہ لگانا

  2. EMA میڈین لائن: قیمتوں کے رجحانات کی سمت کا تعین کریں۔

  3. وقت کی شرائط: حکمت عملی کے لئے محدود مدت۔

  4. زیادہ جگہ کا انتخاب: زیادہ کرنے یا خالی کرنے کی سمت کا انتخاب کریں۔

تجارت کے مخصوص قواعد درج ذیل ہیں:

  1. زیادہ / خالی: جب بند ہونے والی قیمت ای ایم اے سے زیادہ ہو تو ، MACD کالم لائن مثبت ہے ، اور موجودہ K لائن پچھلے دن سے زیادہ ہے۔

  2. کھلنا / کھلنا: جب بند ہونے والی قیمت ای ایم اے سے کم ہو ، ایم اے سی ڈی کالم لائن منفی ہو ، اور موجودہ کے لائن پچھلے دن سے کم ہو تو کھلنا / کھلنا

اس حکمت عملی میں واضح طور پر کہا گیا ہے کہ رجحانات اور قلیل مدتی تجارت کے نظریات کو ایک دوسرے کے ساتھ جوڑ کر ایک مؤثر اور مقداری فیصلہ سازی کا نظام تشکیل دیا جائے گا۔

طاقت کا تجزیہ

اس حکمت عملی میں انفرادی اشارے کے مقابلے میں درج ذیل فوائد ہیں:

  1. MACD مختصر مدت کی حرکیات کا تعین کرتا ہے ، EMA رجحان کی سمت کا تعین کرتا ہے ، اشارے کے ساتھ مل کر کام کرتا ہے۔

  2. قوانین سادہ اور واضح ہیں، ان کو سمجھنا آسان ہے اور ان پر عمل درآمد کرنا بہت مشکل نہیں ہے۔

  3. لچکدار ایڈجسٹمنٹ پیرامیٹرز، مختلف قسم کے اور وقت کی مدت کے لئے لاگو ہوتا ہے.

  4. آپ صرف ایک طرفہ تجارت کر سکتے ہیں، یا آپ دونوں طرفہ تجارت کر سکتے ہیں۔

  5. غیر ضروری تجارت سے بچنے کے لئے حکمت عملی کی مدت مقرر کی جاسکتی ہے۔

  6. اس کے بعد سے، اس نے مسلسل کارکردگی کا مظاہرہ کیا ہے اور کئی سالوں تک مسلسل منافع بخش رہا ہے.

  7. پیسے کا انتظام کنٹرول میں ہے، جس سے کسی ایک شخص کو بہت زیادہ نقصان سے بچا جا سکتا ہے۔

  8. مشین لرننگ ٹکنالوجی کو بہتر بنانے کے لئے متعارف کرایا جاسکتا ہے۔

خطرے کا تجزیہ

اگرچہ اس حکمت عملی کے بہت سے فوائد ہیں ، لیکن اس میں مندرجہ ذیل خطرات بھی ہیں:

  1. پیرامیٹرز کی اصلاح کی وسیع رینج ہے، زیادہ سے زیادہ اصلاح کے خطرے کے ساتھ.

  2. اسٹاپ نقصان کی روک تھام کو ترتیب نہیں دیا گیا ہے ، جس سے نقصان میں اضافے کا خطرہ ہے۔

  3. ٹرانزیکشن کو مدنظر نہ رکھتے ہوئے ، جعلی توڑ ممکن ہے۔

  4. ٹرینڈ ٹرنپوائنٹس کی شناخت میں تاخیر سے ، نقصانات کو مکمل طور پر روکنا ممکن نہیں ہے۔

  5. مارکیٹ کے ماحول میں تبدیلیوں کی وجہ سے اثر کم ہوسکتا ہے۔

  6. صرف تاریخی اعداد و شمار کی بنیاد پر ، ماڈل کی استحکام پر توجہ دیں۔

  7. ٹرانزیکشنز کی زیادہ فریکوئینسی اور ممکنہ طور پر زیادہ لاگت آئے گی۔

  8. منافع کی واپسی کے تناسب پر توجہ دیں اور منحنی خطوط کو زیادہ سے زیادہ موڑنے سے بچیں

اصلاح کی سمت

مندرجہ بالا تجزیہ کے مطابق، اس حکمت عملی کو مندرجہ ذیل پہلوؤں سے بہتر بنایا جاسکتا ہے:

  1. ٹرانزیکشن کے اشارے میں شامل ہونے سے ، جعلی توڑ سے بچنے کے لئے

  2. اسٹاپ نقصان کی روک تھام کی ترتیب میں اضافہ کریں اور ایک ہی نقصان کو کنٹرول کریں۔

  3. مختلف ٹائم فریموں کے پیرامیٹرز کے اثر کا اندازہ لگائیں۔

  4. مشین لرننگ ٹکنالوجی متعارف کروائیں اور متحرک اصلاحات کو نافذ کریں۔

  5. کثیر مارکیٹ کی توثیق، بہتر استحکام

  6. پوزیشن سائز کو ایڈجسٹ کریں اور تجارت کو کم کریں.

  7. فنڈ مینجمنٹ کی حکمت عملی کو بہتر بنانا

  8. قیمتوں میں فرق کے معاہدوں کی جانچ کرنا، اور اس کی تعدد میں اضافہ کرنا۔

  9. مسلسل جانچ پڑتال کی جانچ پڑتال، overfitting روکنے کے لئے.

خلاصہ کریں۔

اس حکمت عملی کے مجموعی طور پر ، MACD اور EMA اشارے کے ساتھ مل کر ایک سادہ اور موثر مقدار کی حکمت عملی تشکیل دی گئی ہے۔ لیکن کسی بھی حکمت عملی کو مستقل طور پر بہتر بنانے اور اس کی توثیق کرنے کی ضرورت ہے تاکہ وہ مارکیٹ کے ماحول میں ہونے والی تبدیلیوں کے مطابق موافقت اور استحکام کو برقرار رکھ سکے۔ تجارتی حکمت عملی کو مستقل طور پر تیار اور اپ ڈیٹ کرنے کی ضرورت ہے۔

حکمت عملی کا ماخذ کوڈ
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SoftKill21

//@version=4
strategy("My Script", overlay=true)

//heiking ashi calculation
UseHAcandles    = input(false, title="Use Heikin Ashi Candles in Algo Calculations")
//
// === /INPUTS ===

// === BASE FUNCTIONS ===

haClose = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, close) : close
haOpen  = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, open) : open
haHigh  = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, high) : high
haLow   = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, low) : low

//timecondition
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2020, title = "From Year", minval = 1970)
 //monday and session 
 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2021, title = "To Year", minval = 1970)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true

//ema data  -- moving average
len = input(9, minval=1, title="Length")
src = input(hl2, title="Source")
out = ema(src, len)
//plot(out, title="EMA", color=color.blue)

//histogram
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA (Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA (Signal Line)", type=input.bool, defval=false)

// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal


//main variables to apply conditions are going to be out(moving avg) and hist(macd)

long = haClose > out and haClose > haClose[1] and out > out[1] and hist> 0 and hist[1] < 0 and time_cond
short = haClose < out and haClose < haClose[1] and out < out[1] and hist < 0 and hist[1] > 0 and time_cond

//limit to 1 entry
var longOpeneda = false
var shortOpeneda = false
var int timeOfBuya = na



longCondition= long and not longOpeneda 

if longCondition
    longOpeneda := true
    timeOfBuya := time


longExitSignala = short
exitLongCondition = longOpeneda[1] and longExitSignala

if exitLongCondition
    longOpeneda := false
    timeOfBuya := na


plotshape(longCondition, style=shape.labelup, location=location.belowbar, color=color.green, size=size.tiny, title="BUY", text="BUY", textcolor=color.white)
plotshape(exitLongCondition, style=shape.labeldown, location=location.abovebar, color=color.red, size=size.tiny, title="SELL", text="SELL", textcolor=color.white)

//automatization

longEntry= input(true)
shortEntry=input(false)

if(longEntry)
    strategy.entry("long",strategy.long,when=longCondition)
    strategy.close("long",when=exitLongCondition)

if(shortEntry)
    strategy.entry("short",strategy.short,when=exitLongCondition)
    strategy.close("short",when=longCondition)