وسائل لوڈ ہو رہے ہیں... لوڈنگ...

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

مصنف:چاؤ ژانگ، تاریخ: 2024-02-18 15:17:36
ٹیگز:

img

جائزہ

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

حکمت عملی منطق

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

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

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

فوائد کا تجزیہ

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

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

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

خطرے کا تجزیہ

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

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

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

اصلاح کی ہدایات

اس حکمت عملی کے لئے اصلاح کی اہم سمتوں میں شامل ہیں:

  1. فیصلے کے لئے دوسرے اشارے میں اضافہ کریں تاکہ متعدد اشارے کے امتزاج کو تشکیل دیا جاسکے تاکہ ایم اے سی ڈی کے غلط سگنل پیدا کرنے کے امکان سے مزید بچا جاسکے۔ مثال کے طور پر ، کے ڈی جے اور بی او ایل ایل پر غور کیا جاسکتا ہے۔

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

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

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

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

نتیجہ

مجموعی طور پر ، یہ ایم اے سی ڈی ای ایم اے کراس اوور ٹرینڈ ٹریکنگ حکمت عملی نسبتا 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)

مزید