یہ حکمت عملی MACD اشارے اور اس کی سگنل لائن حرکت پذیر اوسط کے مابین کراس اوور کا حساب لگاکر رجحان کی سمت کا تعین کرتی ہے ، اور رجحان کو ٹریک کرنے کے لئے EMA اشارے کے ساتھ موجودہ رجحان کی طاقت کا فیصلہ کرتی ہے۔ جب MACD لائن سگنل لائن کو اوپر کی طرف توڑتی ہے تو یہ لمبی ہوتی ہے اور جب نیچے کی طرف توڑتی ہے تو مختصر ہوجاتی ہے۔ EMA لائن غلط بریک آؤٹ کو فلٹر کرنے کے لئے رجحان کی طاقت کا بھی فیصلہ کرسکتی ہے۔
اس حکمت عملی کا بنیادی مقصد ایم اے سی ڈی اشارے کی بنیاد پر رجحان کی سمت اور انٹری ٹائمنگ کا تعین کرنا ہے۔ ایم اے سی ڈی لائن اور سگنل لائن کے مابین کراس اوور قیمت کے رجحان میں الٹ کا اشارہ کرتا ہے۔ لہذا ، بریک آؤٹ سمت کے مطابق لمبی اور مختصر پوزیشنوں کا تعین کیا جاتا ہے۔ خاص طور پر ، جب اختتامی قیمت ای ایم اے لائن سے اوپر ہے اور ایم اے سی ڈی لائن نیچے سے سگنل لائن سے ٹوٹ جاتی ہے تو ، طویل ہوجائیں۔ جب اختتامی قیمت ای ایم اے لائن سے نیچے ہے اور ایم اے سی ڈی لائن اوپر سے سگنل لائن سے ٹوٹ جاتی ہے تو ، مختصر ہوجائیں۔
ای ایم اے لائن رجحان کا اندازہ کرنے میں مدد فراہم کرتی ہے۔ اگر قیمت ای ایم اے لائن سے اوپر ہے تو ، اس سے بڑھتی ہوئی رجحان ظاہر ہوتا ہے۔ اس وقت ، ایم اے سی ڈی سے نیچے کی طرف سے ایک پیشرفت سنہری کراس سگنل بنانے کا امکان ہے۔ اگر قیمت ای ایم اے لائن سے نیچے ہے تو ، اس سے نیچے کا رجحان ظاہر ہوتا ہے۔ اس وقت ، ایم اے سی ڈی سے اوپر کی طرف سے ایک پیشرفت موت کراس سگنل بنانے کا امکان ہے۔ ای ایم اے کی لمبائی بھی وسط سے طویل مدتی ڈگری کے رجحان فیصلے کا تعین کرتی ہے۔
اس طرح، ہم بروقت طریقے سے مارکیٹ میں داخل ہو سکتے ہیں جب قیمت ایک نیا رجحان تشکیل دینے کے لئے الٹ شروع ہوتی ہے، رجحان ٹریکنگ اثر حاصل کرنے کے لئے.
یہ حکمت عملی دوہری فیصلے کی شرائط کو جوڑتی ہے ، قیمتوں کی رجحان کی سمت کو مدنظر رکھتے ہوئے اور اشارے کا استعمال کرتے ہوئے مخصوص انٹری ٹائمنگ کا تعین کرتی ہے ، جھوٹے بریک آؤٹ کے خطرے سے گریز کرتی ہے ، اور حکمت عملی کی وشوسنییتا کو بڑھاتی ہے۔ اکیلے MACD اشارے کے استعمال کے مقابلے میں ، یہ حکمت عملی ایک نئے رجحان کے آغاز کا زیادہ درست اندازہ کرسکتی ہے۔
ای ایم اے لائن کا اطلاق حکمت عملی کو قلیل مدتی اتار چڑھاؤ کے اثرات کو فلٹر کرنے اور درمیانی اور طویل مدتی رجحانات کو کسی حد تک مقفل کرنے کی بھی اجازت دیتا ہے۔ یہ الٹ پھیر کا فیصلہ کرنے میں ایم اے سی ڈی اشارے کی تاثیر کو فروغ دینے میں بہت مددگار ہے۔
اس کے علاوہ، حکمت عملی طویل اور مختصر دونوں کے لئے شرائط طے کرتی ہے، جو بیل اور ریچھ کے بازاروں پر لاگو کیا جا سکتا ہے، اس طرح حکمت عملی کی موافقت کو بہتر بناتا ہے.
اس حکمت عملی کا بنیادی خطرہ یہ ہے کہ ایم اے سی ڈی اشارے میں ہی فاک آؤٹ سگنل کو غلط اندازہ لگانے کا زیادہ امکان ہے۔ اس وقت ، ای ایم اے لائن کے معاون فنکشن کی ضرورت ہوتی ہے ، لیکن خاص مارکیٹ کے حالات میں ناکامی ابھی بھی ہوسکتی ہے۔
اس کے علاوہ ، حکمت عملی میں اسٹاپ نقصان اور منافع لینے کی شرائط طے کرنے کے لئے منافع کا عنصر اپنایا جاتا ہے ، جس میں کچھ موضوعیت شامل ہے۔ غلط ترتیبات حکمت عملی کی کارکردگی کو بھی متاثر کرسکتی ہیں۔
آخر میں، حکمت عملی صرف اکاؤنٹ کے ایکویٹی کے 100٪ پر پوزیشن کا سائز مقرر کرتا ہے، فنڈ مینجمنٹ کے مسئلے پر غور کیے بغیر، جو زندہ تجارت میں بھی کچھ خطرات پیش کرتا ہے.
اس حکمت عملی کے لئے اصلاح کی اہم سمتوں میں شامل ہیں:
فیصلے کے لئے دوسرے اشارے میں اضافہ کریں تاکہ متعدد اشارے کے امتزاج کو تشکیل دیا جاسکے تاکہ ایم اے سی ڈی کے غلط سگنل پیدا کرنے کے امکان سے مزید بچا جاسکے۔ مثال کے طور پر ، کے ڈی جے اور بی او ایل ایل پر غور کیا جاسکتا ہے۔
ای ایم اے لائن کی لمبائی کو رجحان کی سمت کا فیصلہ کرنے کے لئے بہترین پیرامیٹرز تلاش کرنے کے لئے کثیر پیرامیٹر کو بہتر بنایا جاسکتا ہے۔
MACD پیرامیٹرز کو بھی الٹ ٹائمنگ کا تعین کرنے کے لئے انتہائی درست اقدار تلاش کرنے کے لئے مزید بہتر بنایا جاسکتا ہے۔
ایک کیپٹل مینجمنٹ ماڈیول شامل کریں۔ مثال کے طور پر ، منافع کا عنصر متحرک ان پٹ کے طور پر استعمال کیا جاسکتا ہے ، اور سلائپج اسٹاپ بھی مقرر کیے جاسکتے ہیں۔
مختلف قسم کے معاہدوں جیسے کرپٹو کرنسیوں ، انڈیکس فیوچر وغیرہ پر اثرات کا تجربہ کریں تاکہ سب سے مناسب تجارتی قسم تلاش کی جاسکے۔
مجموعی طور پر ، یہ ایم اے سی ڈی ای ایم اے کراس اوور ٹرینڈ ٹریکنگ حکمت عملی نسبتا 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)