MACD EMA گولڈن کراس رجحان کی پیروی کرنے والی حکمت عملی


تخلیق کی تاریخ: 2024-02-18 15:17:36 آخر میں ترمیم کریں: 2024-02-18 15:17:36
کاپی: 0 کلکس کی تعداد: 760
1
پر توجہ دیں
1617
پیروکار

MACD EMA گولڈن کراس رجحان کی پیروی کرنے والی حکمت عملی

جائزہ

یہ حکمت عملی MACD اشارے اور اس کی حرکت پذیری اوسط سگنل لائنوں کے کراسنگ کا حساب کرکے رجحان کی سمت کا تعین کرتی ہے ، اور ای ایم اے اشارے کے ساتھ مل کر موجودہ رجحان کی طاقت اور کمزوری کا فیصلہ کرتی ہے ، جس سے رجحان کا سراغ لگایا جاسکتا ہے۔ جب MACD لائن نیچے سے اوپر کی طرف سے سگنل لائن کو توڑتی ہے تو زیادہ سے زیادہ ، اوپر سے نیچے کی طرف سے ٹوٹ جاتا ہے ، اور ای ایم اے لائن بھی رجحان کی طاقت کا فیصلہ کرسکتی ہے تاکہ جعلی توڑ کو فلٹر کیا جاسکے۔

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

یہ حکمت عملی بنیادی طور پر MACD اشارے کی بنیاد پر رجحان کی سمت اور انٹری کے وقت کا تعین کرتی ہے۔ MACD لائن ٹوٹنے والی سگنل لائن سے ظاہر ہوتا ہے کہ قیمت کا رجحان الٹ گیا ہے ، لہذا اس کی وجہ سے اس کی سمت پر منحصر ہے کہ زیادہ سے زیادہ کاٹنے کا فیصلہ کیا جائے۔ خاص طور پر ، فیصلہ کرنے کی منطق یہ ہے کہ جب بند ہونے والی قیمت ای ایم اے کی اوسط سے زیادہ ہو اور MACD لائن نیچے سے سگنل لائن کو توڑ دے۔ جب بند ہونے والی قیمت ای ایم اے کی اوسط سے کم ہو اور MACD لائن اوپر سے نیچے سے سگنل لائن کو توڑ دے۔

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

مندرجہ بالا طریقوں سے ، جب قیمتیں ایک نیا رجحان بنانا شروع کردیں تو بروقت میدان میں داخل ہوسکتے ہیں ، جس سے رجحانات کا سراغ لگانے کا اثر ملتا ہے۔

طاقت کا تجزیہ

اس حکمت عملی میں دوہری فیصلے کی شرائط شامل ہیں ، دونوں قیمتوں کے رجحان کی سمت کو مدنظر رکھتے ہوئے ، اور انڈیکیٹر کا استعمال کرتے ہوئے مخصوص داخلے کے وقت کا فیصلہ کرنے کے لئے ، جعلی توڑنے کے خطرے سے بچنے کے لئے ، حکمت عملی کی وشوسنییتا کو بڑھا دیتا ہے۔ یہ حکمت عملی ایک ہی MACD اشارے کے مقابلے میں نئے رجحانات کے آغاز کا زیادہ درست اندازہ لگاسکتی ہے۔

ای ایم اے کی اوسط لائن کا استعمال حکمت عملی کو مختصر مدت کے اتار چڑھاؤ کے اثرات کو کچھ حد تک فلٹر کرنے میں بھی مدد دیتا ہے ، اور وسط طویل لائن رجحان کو لاک کرتا ہے۔ یہ MACD اشارے کے فیصلے کے الٹ اثر کو کھیلنے میں مددگار ہے۔

اس کے علاوہ ، حکمت عملی ایک ہی وقت میں زیادہ اور کم کرنے کی شرائط طے کرتی ہے ، جس سے اس حکمت عملی کی لچک میں اضافہ ہوتا ہے ، جس میں لوٹس کی گرتی ہوئی مارکیٹ کی صورتحال پر لاگو کیا جاسکتا ہے۔

خطرے کا تجزیہ

اس حکمت عملی کا بنیادی خطرہ یہ ہے کہ MACD اشارے خود ہی Fakeout کا تعین کرنے کا امکان رکھتے ہیں ، جس سے سگنل کو غلط طور پر پہچانا جاسکتا ہے۔ اس وقت ای ایم اے کی اوسط لائن کی معاونت کی ضرورت ہوتی ہے ، لیکن خاص حالات میں اس کی ناکامی کا بھی امکان ہے۔

اس کے علاوہ، حکمت عملی میں منافع اور نقصان کا تناسب استعمال کیا جاتا ہے تاکہ سٹاپ نقصان کی روک تھام کی شرائط کو قائم کیا جاسکے، جس میں کچھ حد تک موضوعی ہے، اگر یہ غلط ترتیب بھی حکمت عملی کی تاثیر کو متاثر کرے گا.

آخر میں ، حکمت عملی میں صرف 100٪ اکاؤنٹ کے حقوق اور مفادات کے لئے پوزیشن کھولنے کی تعداد مرتب کی گئی ہے ، جس میں فنڈ مینجمنٹ کے مسائل پر غور نہیں کیا گیا ہے ، جس میں جسمانی طور پر بھی کچھ خطرہ ہے۔

اصلاح کی سمت

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

  1. دوسرے اشارے کے فیصلے کو شامل کرکے ، متعدد اشارے کے مجموعے کی تشکیل سے ، MACD کے غلط سگنل کے امکانات کو مزید دور کیا جاسکتا ہے۔ مثال کے طور پر ، KDJ ، BOLL وغیرہ پر غور کیا جاسکتا ہے۔

  2. EMA اوسط لائن کی لمبائی کو ایک کثیر مجموعہ کے لئے بہتر بنایا جاسکتا ہے تاکہ رجحان کی سمت کا تعین کرنے کے لئے بہترین پیرامیٹرز کو تلاش کیا جاسکے۔

  3. MACD پیرامیٹرز کو مزید بہتر بنانے کے لئے استعمال کیا جاسکتا ہے ، اور اس کی قیمتوں کا تعین کرنے کے لئے سب سے زیادہ درست پیرامیٹرز کی تلاش کی جاسکتی ہے جس سے ریورس ٹائمنگ کا تعین ہوتا ہے۔

  4. فنڈ مینجمنٹ کے ماڈیولز کو شامل کریں ، جیسے کہ منافع اور نقصان کا تناسب متحرک ان پٹ کے طور پر کام کرسکتا ہے ، اور آپ کو سلائڈ پوائنٹ اسٹاپ نقصان وغیرہ بھی ترتیب دے سکتے ہیں۔

  5. مختلف اقسام کے معاہدوں کی جانچ پڑتال کریں اور ان میں سب سے زیادہ مماثلت تلاش کریں ، جیسے کریپٹو کرنسی ، اسٹاک انڈیکس فیوچر وغیرہ۔

خلاصہ کریں۔

MACD EMA گولڈ کراس رجحان ٹریکنگ حکمت عملی مجموعی طور پر نسبتا simple آسان اور عملی ہے ، دوہری اشارے کے فیصلے کے ذریعہ سگنل کی وشوسنییتا کو یقینی بنانا ، منافع کو لاک کرنے کے لئے معقول اسٹاپ نقصان کا طریقہ ترتیب دینا۔ پیرامیٹرز کے انتخاب ، اشارے کے مجموعہ ، فنڈ مینجمنٹ وغیرہ میں بنیادی اصلاح کی گنجائش ہے۔ اگر جانچ کو مزید بہتر بنایا جائے تو ، یقین ہے کہ یہ حکمت عملی ایک موثر رجحان ٹریکنگ حکمت عملی میں سے ایک بن سکتی ہے۔

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy(title="MACD EMA Strategy", shorttitle="MACD EMA STRAT", overlay = true, pyramiding = 0, max_bars_back=3000, calc_on_order_fills = false, commission_type =  strategy.commission.percent, commission_value = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital=5000, currency=currency.USD)

// Time Range
FromMonth=input(defval=1,title="FromMonth",minval=1,maxval=12)
FromDay=input(defval=1,title="FromDay",minval=1,maxval=31)
FromYear=input(defval=2020,title="FromYear",minval=2016)
ToMonth=input(defval=1,title="ToMonth",minval=1,maxval=12)
ToDay=input(defval=1,title="ToDay",minval=1,maxval=31)
ToYear=input(defval=9999,title="ToYear",minval=2017)
start=timestamp(FromYear,FromMonth,FromDay,00,00)
finish=timestamp(ToYear,ToMonth,ToDay,23,59)
window()=>true

// STEP 2:
// See if this bar's time happened on/after start date
afterStartDate = true

//EMA
emasrc = close
res = input(title="EMA Timeframe", type=input.resolution, defval="15")
len1 = input(title="EMA Length", type=input.integer, defval=206)
col1 = color.yellow
// Calculate EMA
ema1 = ema(emasrc, len1)
emaSmooth = security(syminfo.tickerid, res, ema1, barmerge.gaps_on, barmerge.lookahead_off)
// Draw EMA
plot(emaSmooth, title="EMA", linewidth=1, color=col1)

//MACD
fast_length = input(title="Fast Length", type=input.integer, defval=15)
slow_length = input(title="Slow Length", type=input.integer, defval=24)
src = input(title="Source", type=input.source, defval=close)
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=true)
sma_signal = input(title="Simple MA (Signal Line)", type=input.bool, defval=true)
zeroline = 0

// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00

// 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
//plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 )
//plot(macd, title="MACD", color=col_macd, transp=0)
//plot(signal, title="Signal", color=col_signal, transp=0)
//plot(zeroline, title="Zero Line", color=color.black, transp=0)

///////////////////////////LONG////////////////////////////////////////////////////////////////////

enablelong = input(true, title="Enable long?")

//Long Signal
upcondition = close > emaSmooth and close[1] > emaSmooth[1]
macdunderhis = macd < zeroline
macdcrossup = crossover(macd, signal)

longcondition = upcondition and macdunderhis and macdcrossup

//strategy buy long
if (longcondition) and (afterStartDate) and strategy.opentrades < 1 and (enablelong == true)
    strategy.entry("long", strategy.long)

//////////////////////////////////////SHORT//////////////////////////////////////////////////////////////////////////////////

enableshort = input(true, title="Enable short?")

//Short Signal
downcondition = close < emaSmooth and close[1] < emaSmooth[1]
macdoverhis = macd > zeroline
macdcrosunder = crossunder(macd, signal)

shortcondition = downcondition and macdoverhis and macdcrosunder

//strategy buy short
if (shortcondition) and (afterStartDate) and strategy.opentrades < 1 and (enableshort == true)
    strategy.entry("short", strategy.short)


//////////////////////////////////////EXIT CONDITION//////////////////////////////////////////////////////////////////////////////////
bought = strategy.position_size[1] < strategy.position_size
sold = strategy.position_size[1] > strategy.position_size
barsbought = barssince(bought)
barssold = barssince(sold)
//////LOWEST LOW//////
//Lowest Low LONG
profitfactorlong = input(title="ProfitfactorLong", type=input.float, step=0.1, defval=1.9)
loLen = input(title="Lowest Low Lookback", type=input.integer,
  defval=46, minval=2)
stop_level_long = lowest(low, loLen)[1]

if strategy.position_size>0 
    profit_level_long = strategy.position_avg_price + ((strategy.position_avg_price - stop_level_long[barsbought])*profitfactorlong)
    strategy.exit(id="TP/ SL", stop=stop_level_long[barsbought], limit=profit_level_long)

//Lowest Low SHORT
profitfactorshort = input(title="ProfitfactorShort", type=input.float, step=0.1, defval=2.1)
highLen = input(title="highest high lookback", type=input.integer,
  defval=25, minval=2)
stop_level_short = highest(high, highLen)[1]

if strategy.position_size<0 
    profit_level_short = strategy.position_avg_price - ((stop_level_short[barssold] - strategy.position_avg_price)*profitfactorshort)
    strategy.exit(id="TP/ SL", stop=stop_level_short[barssold], limit=profit_level_short)
    
//PLOTT TP SL
plot(stop_level_long, title="SL Long", linewidth=1, color=color.red)
plot(stop_level_short, title="SL Short", linewidth=1, color=color.red)