এই কৌশলটি এমএসিডি ইন্ডিকেটর এবং এর এমএসিডি হিস্টোগ্রাম গণনা করে এমএসিডি হিস্টোগ্রাম এবং মূল্য আন্দোলনের মধ্যে বিচ্যুতি সংকেত সনাক্ত করতে, যার ফলে ট্রেডিং সংকেত তৈরি করে। যখন দামের নতুন উচ্চতা সনাক্ত করা হয় তবে এমএসিডি হিস্টোগ্রামের কোনও নতুন উচ্চতা সনাক্ত করা হয় না, তখন একটি bearish বিচ্যুতি সংকেত উত্পন্ন হয়। যখন দামের নতুন নিম্নতা সনাক্ত করা হয় তবে এমএসিডি হিস্টোগ্রামের কোনও নতুন নিম্নতা সনাক্ত করা হয় না, তখন একটি bullish বিচ্যুতি সংকেত উত্পন্ন হয়। স্টপ লস এবং লাভ গ্রহণের জন্য এটিআর সূচকের সাথে মিলিত, এটি ট্রেন্ড অনুসরণ করে।
এই কৌশলটির মূল নীতি হ'ল ম্যাকডি সূচক এবং এর ম্যাকডি হিস্টোগ্রামটি দামের প্রবণতার পরিবর্তনগুলি প্রতিফলিত করতে এবং ট্রেডিং সংকেতগুলির জন্য ট্রিগার শর্ত হিসাবে ম্যাকডি হিস্টোগ্রাম এবং দামের মধ্যে বিচ্যুতি সংকেতগুলি সনাক্ত করতে।
বিশেষত, কৌশলটি প্রথমে এমএসিডি লাইন, সিগন্যাল লাইন এবং এমএসিডি হিস্টোগ্রাম গণনা করে। তারপরে স্থানীয় সর্বোচ্চ এবং সর্বনিম্নগুলি বের করার জন্য এমএসিডি হিস্টোগ্রামের শিখর এবং উপত্যকা সনাক্ত করতে ফ্রেক্টাল ফাংশনটি সংজ্ঞায়িত করে। সর্বোচ্চ মূল্য এবং সর্বনিম্ন মূল্যের সাথে মিলিয়ে এটি নির্ধারণ করে যে এমএসিডি হিস্টোগ্রাম এবং দামের মধ্যে কোনও বিচ্যুতি রয়েছে কিনা।
যখন মূল্য একটি নতুন উচ্চতায় পৌঁছায় কিন্তু MACD হিস্টোগ্রাম একটি নতুন উচ্চতায় পৌঁছায় না, তখন একটি regular_bearish_div bearish divergence সংকেত উৎপন্ন হয়। যখন মূল্য একটি নতুন নিম্ন স্তরে পড়ে কিন্তু MACD হিস্টোগ্রাম একটি নতুন নিম্ন স্তরে পড়ে না, তখন একটি regular_bullish_div bullish divergence সংকেত উৎপন্ন হয়।
অবশেষে, যখন হ্রাস এবং উত্থান বিপরীত সংকেত উত্পন্ন হয়, তখন কৌশলটি যথাক্রমে সংক্ষিপ্ত এবং দীর্ঘ অর্ডার দেয় এবং এটিআর স্টপ লস এবং মুনাফা গ্রহণের সাথে অবস্থানগুলি থেকে বেরিয়ে আসে।
এই কৌশল নিম্নলিখিত সুবিধাগুলি আছেঃ
ম্যাকডি হিস্টোগ্রাম এবং মূল্যের মধ্যে পার্থক্য বৈশিষ্ট্যটি ব্যবহার করে, এটি মূল্য প্রবণতাগুলির ঘূর্ণনগুলি দ্রুত ধরতে পারে।
ATR স্টপ লস এবং লাভ নেওয়ার সেটিংস কার্যকরভাবে ট্রেড প্রতি সর্বোচ্চ ক্ষতি নিয়ন্ত্রণ করার জন্য যুক্তিসঙ্গত।
ট্রেন্ড অনুসরণ পদ্ধতি ব্যবহার করে লক মুনাফা সর্বাধিক করতে পারেন।
যুক্তিসঙ্গত প্যারামিটার সেটিংস কিছু গোলমাল ট্রেডিং সংকেত ফিল্টার করে।
কৌশল যুক্তি স্পষ্ট এবং সহজেই বোঝা যায়, লাইভ ট্রেডিংয়ে যাচাই করা সহজ।
এই কৌশলটির কিছু ঝুঁকিও রয়েছেঃ
ম্যাকডি ডিভার্জেন্সের ফলে দামের বিপরীতমুখী হয় না, কিছু ভুয়া সংকেত ঝুঁকি রয়েছে।
অযৌক্তিক স্টপ লস এবং লাভ নেওয়ার সেটিংস অতিরিক্ত ক্ষতি বা অপর্যাপ্ত লাভের দিকে পরিচালিত করতে পারে।
সংক্ষিপ্ত চক্রের সাথে ডিভার্জেন্স সংকেতগুলি গোলমালের কারণে হতে পারে এবং যথাযথভাবে ফিল্টার করা উচিত।
অসঙ্গতিপূর্ণ ট্রেডিং প্রোডাক্ট এবং প্যারামিটার সেটিংস কৌশল কার্যকারিতা প্রভাবিত করবে।
সংশ্লিষ্ট সমাধানঃ
মিথ্যা সংকেত ফিল্টার করার জন্য বিচ্যুতির দৈর্ঘ্য এবং মাত্রার প্রয়োজনীয়তা বৃদ্ধি করুন।
এটিআরকে স্টপ লস এবং লাভের রেফারেন্স হিসাবে ব্যবহার করুন, প্রতি ট্রেডের ঝুঁকি নিয়ন্ত্রণের জন্য এটিআর গুণকগুলি সামঞ্জস্য করুন।
বিভিন্ন ট্রেডিং পণ্যের জন্য বিভিন্ন পরামিতি নির্বাচন করুন। সর্বোত্তম প্যারামিটার সমন্বয় খুঁজে পেতে পরামিতি অপ্টিমাইজেশান সঞ্চালন।
এই কৌশলটি নিম্নলিখিত দিকগুলিতেও অপ্টিমাইজ করা যেতে পারেঃ
আরও জটিল বৈষম্য নিশ্চিতকরণ, যেমন ভলিউম বৈষম্য নিশ্চিতকরণ।
সেরা প্যারামিটার সমন্বয় খুঁজে পেতে MACD পরামিতি অপ্টিমাইজ করুন।
ATR স্টপ লস এবং লাভের গুণকগুলি অপ্টিমাইজ করুন।
মেশিন লার্নিং অ্যালগরিদম যোগ করুন যা ডিভার্জেন্স সিগন্যালের নির্ভরযোগ্যতা বিচার করতে সহায়তা করে।
মূল্য বিপরীত হওয়ার সম্ভাবনা নির্ধারণের জন্য মডেল পূর্বাভাস যোগ করুন।
বাজারের অবস্থার পরিবর্তন অনুযায়ী কৌশলগত পরামিতিগুলিকে গতিশীলভাবে সামঞ্জস্য করুন।
সংক্ষেপে, এই ডেমিগড ক্যান্ডেলস্টিক এমএসিডি ডিভার্জেন্স ট্রেন্ড অনুসরণকারী কৌশলটি ট্রেন্ডগুলি ক্যাপচার করার জন্য এমএসিডি হিস্টোগ্রাম এবং দামের মধ্যে পার্থক্য ব্যবহার করে। যুক্তিসঙ্গত এটিআর স্টপ লস এবং লাভ গ্রহণের সেটিংস প্রতি বাণিজ্যের ঝুঁকি নিয়ন্ত্রণ করতে পারে। কৌশল যুক্তি পরিষ্কার এবং সহজেই বোঝা যায়, লাইভ ট্রেডিংয়ে যাচাই করার মতো। আরও ভাল ফলাফল অর্জনের জন্য অনেক দিক থেকে ফলো-আপ অপ্টিমাইজেশন করা যেতে পারে।
/*backtest start: 2024-01-04 00:00:00 end: 2024-02-03 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © bigwin_sun // copyright: Tradingvue Limited //@version = 5 strategy(title = "Demigod : CDMA histogram Divergence strategy", shorttitle = "Demigod strategy", overlay = false, pyramiding = 100) //macd input fastMA = input.int(13, title = "fast Length", minval = 1, group = "CDMA") slowMA = input.int(34, title = "slow Length", minval = 1, group = "CDMA") src = input.source(title = "source", defval = close, group = "CDMA") signalSmooth = input.int(9, title="ma Length", minval = 1, group = "CDMA") //Divergenc divLength = input.int(title = "Divergenc Length", defval = 5, minval = 1, maxval = 50, inline = "ATRLength", group = "Divergence") divStren = input.float(title="Divergenc Strength", defval = 2, minval = 1.0, maxval = 5.0, inline = "ATRLength", group = "Divergence") //atr input atrLength = input.int(13, title = "ATR Length", minval = 1, inline = "ATRLength", group = "ATR") m = input.float(1.0, "ATR multyple", minval = 0.5, inline = "ATRLength", group = "ATR", step = 0.5) collong = input.color(color.teal, title = "upper color", inline = "ATR显示", group = "ATR") colshort = input.color(color.red, title = "under color", inline = "ATR显示", group = "ATR") // MACD--------------------------------------------------------------------------------------------------------------------------------- DivOffset = -2 macdLine = ta.ema(src, fastMA) - ta.ema(src, slowMA) signalLine = ta.ema(macdLine, signalSmooth) histogram = macdLine - signalLine histogramColor = if histogram > 0 histogram > histogram[1] ? color.lime : color.green else histogram < histogram[1] ? color.maroon : color.red // cdma histogram plot(histogram, title = "MACD histogram", linewidth = 2, style = plot.style_histogram, color = histogramColor) plot(0, title = "zero line", linewidth = 1, color = color.gray) // Divergenc calculation------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- //peak / valley fundation f_top_fractal(_src)=>_src[4] < _src[2] and _src[3] < _src[2] and _src[2] > _src[1] and _src[2] > _src[0] and _src > 0 f_bot_fractal(_src)=>_src[4] > _src[2] and _src[3] > _src[2] and _src[2] < _src[1] and _src[2] < _src[0] and _src < 0 f_fractalize(_src)=>f_top_fractal(_src) ? 1 : f_bot_fractal(_src) ? -1 : 0 //peak / valley value fractal_top1 = f_fractalize(histogram) > 0 ? true : false //histogram[2] : na fractal_bot1 = f_fractalize(histogram) < 0 ? true : false //histogram[2] : na //previouse peak or valley high_prev1 = ta.valuewhen(fractal_top1, histogram[2], 0)[2] high_price1 = ta.valuewhen(fractal_top1, high[2], 0)[2] low_prev1 = ta.valuewhen(fractal_bot1, histogram[2], 0)[2] low_price1 = ta.valuewhen(fractal_bot1, low[2], 0)[2] //Divergenc : cdma histogram against candle value regular_bearish_div1 = high[2] > high_price1 + divStren and histogram[2] < high_prev1 / divStren and ta.barssince(fractal_top1[1]) > divLength regular_bullish_div1 = low[2] < low_price1 - divStren and histogram[2] > low_prev1 / divStren and ta.barssince(fractal_bot1[1]) > divLength //-------------------------cdma Divergenc range------------------------------------------------ //histogramColor col1 = regular_bearish_div1 ? color.red : na col2 = regular_bullish_div1 ? #00FF00EB : na //plot plot(title='看跌背离', series= fractal_top1 ? histogram[2] : na, color=col1, linewidth=3, offset=DivOffset) plot(title='看涨背离', series= fractal_bot1 ? histogram[2] : na, color=col2, linewidth=3, offset=DivOffset) // calculate ATR -------------------------------------------------------------------------------------------------------------------------------------------------- atr = ta.ema(ta.tr(true), atrLength) * m up = atr + high dw = low - atr //stratety : enrty and exit--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- if regular_bearish_div1 and fractal_top1 //if regular_bullish_div1 and fractal_bot1 //label.new(bar_index, histogram[2], text = "Short", textcolor = color.white, color = color.gray, style = label.style_label_lower_left) strategy.entry("Short", strategy.short, qty = 1) strategy.exit("exitShort", "Short", stop = up, limit = dw - atr) if regular_bullish_div1 and fractal_bot1 //if regular_bearish_div1 and fractal_top1 //label.new(bar_index, histogram[2], text = "Long", textcolor = color.white, color = color.fuchsia, style = label.style_label_upper_left) strategy.entry("Long", strategy.long, qty = 1) strategy.exit("exitLong", "Long", stop = dw, limit = up + atr)