یہ حکمت عملی MACD فاسٹ لائن اور سست لائن کے کراس اوور سگنلز کا استعمال کرتی ہے ، متعدد دیگر اشارے پر مبنی فیصلوں کے ساتھ مل کر ، بروقت انداز میں حرکت پذیر اوسط انڈیکس لائن کے توڑنے والے سگنلز کو پکڑنے اور خریدنے یا فروخت کے فیصلے کرنے کے لئے۔ یہ ایک مختصر مدتی تجارتی حکمت عملی سے تعلق رکھتا ہے۔
بنیادی تجارتی سگنل کے طور پر ایم اے سی ڈی فاسٹ لائن اور سست لائن کے کراس اوور کا استعمال کریں۔ جب فاسٹ لائن سست لائن سے اوپر کراس کرتی ہے تو ، ایک لمبی پوزیشن لے لو۔ جب فاسٹ لائن سست لائن سے نیچے کراس کرتی ہے تو ، ایک مختصر پوزیشن لے لو۔
زیادہ خریدنے اور زیادہ فروخت کرنے کی حالت کا تعین کرنے کے لئے آر ایس آئی اشارے کو شامل کریں۔ وسط لائن کے نیچے طویل کا اشارہ کرتا ہے ، جبکہ اوپر مختصر کا اشارہ کرتا ہے۔
موجودہ اختتامی قیمت کا موازنہ کسی خاص مدت کی ایس ایم اے لائن سے کریں۔ ایس ایم اے سے نیچے اختتامی قیمت طویل کا اشارہ کرتی ہے ، جبکہ اس سے اوپر مختصر کا اشارہ کرتی ہے۔
کسی خاص مدت کے اعلی ترین قدر کی 0.5 فبونیکی سطح کا حساب طویل عرصے کے لئے مزاحمت کے طور پر لگائیں۔ مختصر مدت کے لئے معاونت کے طور پر کسی خاص مدت کے کم ترین قدر کی 0.5 فبونیکی سطح کا حساب لگائیں۔
جب تیز لائن اوپر سے گزرتی ہے اور قیمت سپورٹ سے نیچے ہوتی ہے۔ جب تیز لائن نیچے سے گزرتی ہے اور قیمت مزاحمت سے اوپر ہوتی ہے تو مختصر ہوجائیں۔
ٹریلنگ اسٹاپ نقصان کا طریقہ کار اپنائیں۔ اسٹاپ نقصان ابتدائی طور پر اندراج کی قیمت کے ایک خاص فیصد پر طے ہوتا ہے۔ جب نقصان ایک خاص سطح تک پہنچ جاتا ہے تو ، بتدریج ٹریلنگ اسٹاپ نقصان پر سوئچ کریں۔
حکمت عملی MACD کراس اوور سگنلز کا مکمل استعمال کرتی ہے، جو ایک کلاسیکی اور موثر تکنیکی اشارے ٹریڈنگ سگنل ہے۔
متعدد اشارے جیسے آر ایس آئی اور ایس ایم اے کی تصدیق کو شامل کرنے سے غلط سگنل فلٹر ہوسکتے ہیں اور قابل اعتماد کو بہتر بنایا جاسکتا ہے۔
بریکآؤٹ ٹریڈنگ کے لئے متحرک سپورٹ اور مزاحمت کی سطح کا حساب لگانے سے بڑے رجحانات کو پکڑا جاسکتا ہے۔
ٹریلنگ سٹاپ نقصان زیادہ تر منافع میں مقفل کر سکتے ہیں جبکہ خطرے کو کنٹرول کر سکتے ہیں.
حکمت عملی کا منطق واضح اور سادہ ہے، ابتدائیوں کے لئے سمجھنے اور ماسٹر کرنے میں آسان ہے.
ایم اے سی ڈی اشارے کے مسائل میں تاخیر ہوتی ہے اور یہ زیادہ سے زیادہ انٹری اور آؤٹ پوائنٹس کو یاد کر سکتا ہے۔
متعدد اشارے کو یکجا کرنے سے پیچیدگی اور متضاد سگنلز کے خطرات میں اضافہ ہوتا ہے۔
متحرک طور پر معاونت اور مزاحمت کا حساب لگاتے وقت غلط خرابی کا خطرہ ہے۔
ٹرائلنگ سٹاپ نقصان مضبوط رجحانات میں قبل از وقت باہر نکل سکتا ہے، رجحانات پر سوار کرنے میں ناکام ہوسکتا ہے.
پیرامیٹرز کو بار بار ٹیسٹنگ اور اصلاح کی ضرورت ہوتی ہے ، ناقص پیرامیٹرز کارکردگی پر منفی اثر ڈالتے ہیں۔
MACD ادوار کو بہتر بنانے کے لئے مختلف پیرامیٹر کے مجموعے کی جانچ کریں.
کثیر جہتی تجزیہ کے لئے بولنگر بینڈ، کے ڈی جے جیسے مزید اشارے متعارف کروائیں۔
حمایت اور مزاحمت کی معقولیت کا فیصلہ کرنے کے لئے مزید عوامل شامل کریں.
مزید اعلی درجے کی سٹاپ نقصان کے طریقہ کار کی تحقیق کریں جیسے وقت پر مبنی یا اتار چڑھاؤ پر مبنی اسٹاپ۔
خودکار پیرامیٹر کی اصلاح کے لئے ایک آٹو اصلاح ماڈیول شامل کریں.
یہ حکمت عملی MACD ، RSI ، SMA اور دیگر اشارے کو یکجا کرتی ہے تاکہ موقع پر مبنی طور پر حرکت پذیر اوسط پیشرفت کے سگنل کو پکڑ سکے۔ یہ عام طور پر قلیل مدتی بریک آؤٹ ٹریڈنگ کی حکمت عملیوں سے تعلق رکھتا ہے۔ اس کی سگنل کی تخلیق میں کچھ تاخیر ہے ، لیکن پیرامیٹر کی اصلاح کے ذریعے درستگی کو بہتر بنایا جاسکتا ہے۔ مجموعی طور پر ، یہ ایک سادہ اور واضح منطق والی حکمت عملی ہے ، جو زیادہ تر لوگوں کے لئے سمجھنے میں آسان ہے ، اور مزید جانچ اور اصلاح کے قابل ہے۔
/*backtest start: 2023-11-05 00:00:00 end: 2023-11-09 23:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © onurenginogutcu //@version=4 strategy("R19 STRATEGY", overlay=true, calc_on_every_tick=true , margin_long=100, margin_short=100 , process_orders_on_close=true ) sym = input(title="Symbol", type=input.symbol, defval="BINANCE:BTCUSDT" , group = "SYMBOL") timeFrame = input(title="Strategy Decision Time Frame", type = input.resolution , defval="60") adxlen = input(14, title="ADX Smoothing" , group = "ADX") dilen = input(14, title="ADX DI Length", group = "ADX") adxemalenght = input(30, title="ADX EMA", group = "ADX") adxconstant = input(19, title="ADX CONSTANT", group = "ADX") fibvar = input (title = "Fibo Look Back Canles" , defval = 50 , minval = 0 , group = "FIBO MACD SMA") smaLookback = input (title = "SMA Look Back Candles" , defval = 30 , minval = 0 , group = "FIBO MACD SMA") MACDFast = input (title = "MACD Fast Lenght" , defval = 15 , minval = 0 , group = "FIBO MACD SMA") MACDSlow = input (title = "MACD Slow Lenght" , defval = 30 , minval = 0 , group = "FIBO MACD SMA") MACDSmooth = input (title = "MACD Signal Smoothing" , defval = 9 , minval = 0 , group = "FIBO MACD SMA") MACDLookback = input (title = "MACD Look Back Candles" , defval = 100 , minval = 0 , group = "FIBO MACD SMA") trailingStopLong = input (title = "Trailing Long Stop %" , defval = 2.0 , step = 0.1, group = "TP & SL") * 0.01 trailingStopShort = input (title = "Trailing Short Stop %" , defval = 2.0 , step = 0.1 , group = "TP & SL") * 0.01 LongTrailingProfitStart = input (title = "Long Profit Start %" , defval = 2.0 , step = 0.1 , group = "TP & SL") * 0.01 ShortTrailingProfitStart = input (title = "Short Profit Start %" , defval = 2.0 , step = 0.1, group = "TP & SL") * 0.01 lsl = input(title="Max Long Stop Loss (%)", minval=0.0, step=0.1, defval=3.0, group = "TP & SL") * 0.01 ssl = input(title="Max Short Stop Loss (%)", minval=0.0, step=0.1, defval=2.5, group = "TP & SL") * 0.01 longtp = input(title="Long Take Profit (%)", minval=0.0, step=0.1, defval=100, group = "TP & SL") * 0.01 shorttp = input(title="Short Take Profit (%)", minval=0.0, step=0.1, defval=100, group = "TP & SL") * 0.01 capperc = input(title="Capital Percentage to Invest (%)", minval=0.0, maxval=100, step=0.1, defval=95, group = "CAPITAL TO INVEST") * 0.01 symClose = security(sym, timeFrame, close) symHigh = security(sym, timeFrame, high) symLow = security(sym, timeFrame, low) atr = atr (14) /////////adx code dirmov(len) => up = change(symHigh) down = -change(symLow) plusDM = na(up) ? na : (up > down and up > 0 ? up : 0) minusDM = na(down) ? na : (down > up and down > 0 ? down : 0) truerange = rma(tr, len) plus = fixnan(100 * rma(plusDM, len) / truerange) minus = fixnan(100 * rma(minusDM, len) / truerange) [plus, minus] adx(dilen, adxlen) => [plus, minus] = dirmov(dilen) sum = plus + minus adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen) sig = adx(dilen, adxlen) emasig = ema (sig , adxemalenght ) ////////adx code over i = ema (symClose , MACDFast) - ema (symClose , MACDSlow) r = ema (i , MACDSmooth) sapust = highest (i , MACDLookback) * 0.729 sapalt = lowest (i , MACDLookback) * 0.729 simRSI = rsi (symClose , 50 ) fibtop = lowest (symLow , fibvar) + ((highest (symHigh , fibvar) - lowest (symLow , fibvar)) * 0.50) fibbottom = lowest (symLow , fibvar) + ((highest (symHigh , fibvar) - lowest (symLow , fibvar)) * 0.50) cond1 = 0 cond2 = 0 cond3 = 0 cond4 = 0 longCondition = crossover(i, r) and i < sapalt and sig > adxconstant and symClose < sma (symClose , smaLookback) and simRSI < sma (simRSI , 50) and symClose < fibbottom shortCondition = crossunder(i, r) and i > sapust and sig > adxconstant and symClose > sma (symClose , smaLookback) and simRSI > sma (simRSI , 50) and symClose > fibtop //////////////////////probability long/short if (crossover(i, r) and i < sapalt) cond1 := 35 else if (crossunder(i, r) and i > sapust) cond1 := -35 else cond1 := 0 if (symClose < sma (symClose , smaLookback)) cond2 := 30 else if (symClose > sma (symClose , smaLookback)) cond2 := -30 else cond2 := 0 if (simRSI < sma (simRSI , 50)) cond3 := 25 else if (simRSI > sma (simRSI , 50)) cond3 := -25 else cond3 := 0 if (symClose < fibbottom) cond4 := 10 else if (symClose > fibbottom) cond4 := -10 else cond4 := 0 probab = cond1 + cond2 + cond3 + cond4 //////////////////////////////////////////////////////////////// ///////////////////////////////////////////STRATEGY ENTRIES AND STOP LOSSES ///// var startTrail = 0 var trailingLongPrice = 0.0 var trailingShortPrice = 0.0 if (longCondition and strategy.position_size == 0) strategy.entry("Long", strategy.long , qty = capperc * strategy.equity / close ) if (shortCondition and strategy.position_size == 0) strategy.entry("Short" , strategy.short , qty = capperc * strategy.equity / close ) if (strategy.position_size == 0) trailingShortPrice := 0.0 trailingLongPrice := 0.0 startTrail := 0 /////////////////////////////////strategy exit if (strategy.position_size > 0 and close >= strategy.position_avg_price * (1 + LongTrailingProfitStart)) startTrail := 1 if (strategy.position_size < 0 and close <= strategy.position_avg_price * (1 - ShortTrailingProfitStart)) startTrail := -1 trailingLongPrice := if strategy.position_size > 0 and startTrail == 1 stopMeasure = close * (1 - trailingStopLong) max (stopMeasure , trailingLongPrice [1]) else if strategy.position_size > 0 and startTrail == 0 strategy.position_avg_price * (1 - lsl) trailingShortPrice := if strategy.position_size < 0 and startTrail == -1 stopMeasure = close * (1 + trailingStopShort) min (stopMeasure , trailingShortPrice [1]) else if strategy.position_size < 0 and startTrail == 0 strategy.position_avg_price * (1 + ssl) if (strategy.position_size > 0) strategy.exit("Exit Long", "Long", stop = trailingLongPrice , limit=strategy.position_avg_price*(1 + longtp)) if (strategy.position_size < 0) strategy.exit("Exit Short", "Short", stop = trailingShortPrice , limit=strategy.position_avg_price*(1 - shorttp)) ////////////////////////vertical colouring signals bgcolor(color=longCondition ? color.new (color.green , 70) : na) bgcolor(color=shortCondition ? color.new (color.red , 70) : na) plot (trailingLongPrice , color = color.green) ///long price trailing stop plot (trailingShortPrice , color = color.red) /// short price trailing stop plot (startTrail , color = color.yellow) plot (probab , color = color.white) ////probability