এই কৌশলটি বিভিন্ন প্যারামিটার সেটিং সহ দুটি চলমান গড় গণনা করে এবং তাদের ক্রসওভার পরিস্থিতি তুলনা করে দামের প্রবণতার দিক নির্ধারণ করে, যাতে ট্রেডিংয়ের পরে প্রবণতা বাস্তবায়ন করা যায়। যখন দ্রুত চলমান গড় নীচে থেকে ধীর চলমান গড়টি ভেঙে যায়, তখন এটি একটি উত্থান সংকেত হিসাবে বিচার করা হয়। যখন দ্রুত চলমান গড়টি উপরে থেকে ধীর চলমান গড়টি ভেঙে যায়, তখন এটি একটি হ্রাস সংকেত হিসাবে বিচার করা হয়। এই কৌশলটি প্যারামিটারগুলি সামঞ্জস্য করে বিভিন্ন চক্রের প্রবণতার বিচার অর্জন করতে পারে।
এই কৌশলটি তুলনা করার জন্য বিভিন্ন পরামিতি সেটিং সহ চলমান গড়ের দুটি সেট ব্যবহার করে। প্রথম চলমান গড় প্যারামিটারটি len1 এবং type1 দ্বারা সেট করা হয় এবং দ্বিতীয় চলমান গড় প্যারামিটারটি len2 এবং type2 দ্বারা সেট করা হয়। যেখানে len1 এবং len2 যথাক্রমে দুটি চলমান গড়ের চক্র দৈর্ঘ্য প্রতিনিধিত্ব করে এবং type1 এবং type2 চলমান গড়ের অ্যালগরিদম প্রকারকে প্রতিনিধিত্ব করে।
যখন দ্রুত চলমান গড়টি স্বর্ণের ক্রস গঠনের জন্য ধীর চলমান গড়ের উপরে অতিক্রম করে, তখন এটি একটি উত্থান সংকেত হিসাবে বিচার করা হয়। যখন দ্রুত চলমান গড়টি ধীর চলমান গড়ের নীচে অতিক্রম করে একটি মৃত ক্রস গঠনের জন্য, এটি একটি হ্রাস সংকেত হিসাবে বিচার করা হয়।
ক্রসওভার সিগন্যালের দিক অনুযায়ী, লং বা শর্ট পজিশনগুলি কার্যকর করা হবে। যখন একটি উত্থান সংকেত ট্রিগার করা হয়, যদি প্রয়োজনে দীর্ঘ প্যারামিটারটি সত্য হয়, তখন একটি দীর্ঘ অবস্থান ডিফল্ট_কিউটি_ভ্যালু বা শতাংশ_অফ_ইকুইটি পরিমাণের সাথে খোলা হবে। যখন একটি হ্রাস সংকেত ট্রিগার করা হয়, যদি প্রয়োজনে সংক্ষিপ্ত প্যারামিটারটি সত্য হয়, তখন একটি শর্ট অবস্থান ডিফল্ট_কিউটি_ভ্যালু বা শতাংশ_অফ_ইকুইটি পরিমাণের সাথে খোলা হবে।
মুভিং গড়গুলির বিলম্বিত বৈশিষ্ট্য রয়েছে এবং মূল্য বিপরীত পয়েন্টগুলি মিস করতে পারে
সমাধানঃ চলমান গড়ের চক্রগুলি যথাযথভাবে সংক্ষিপ্ত করুন, অথবা অন্যান্য সূচকের সাথে ব্যবহার করুন
উচ্চ অস্থিরতা এবং ঘন ঘন বিপরীতমুখী বাজারগুলির জন্য উপযুক্ত নয়
সমাধানঃ ওসিলেটিং মার্কেটে ট্রেডিং এড়াতে ফিল্টারিং শর্ত যুক্ত করুন
মিথ্যা সংকেতগুলির কিছু ঝুঁকি রয়েছে
সমাধানঃ সংকেত নির্ভরযোগ্যতা উন্নত করার জন্য সংমিশ্রণের জন্য অন্যান্য ফিল্টারিং সূচক যোগ করুন
এই কৌশলটি দুটি চলমান গড়ের ক্রসওভারের তুলনা করে মূল্যের প্রবণতা বিচার করে এবং প্রবণতা ক্যাপচার এবং মুনাফা অর্জনের জন্য সংশ্লিষ্ট দীর্ঘ এবং সংক্ষিপ্ত অপারেশন করে। সুবিধাটি হ'ল সিগন্যাল নিয়মগুলি সহজ এবং পরিষ্কার, পরামিতিগুলি সামঞ্জস্যযোগ্য, প্রয়োগযোগ্যতা শক্তিশালী এবং এটি বিভিন্ন বাজারের পরিবেশের জন্য অনুকূলিত এবং সামঞ্জস্য করা যায়। চলমান গড় এবং অস্থির বাজারগুলির পিছনের ঝুঁকিগুলি রোধে মনোযোগ দিন, যা সিগন্যালের গুণমান উন্নত করতে ফিল্টারিংয়ের জন্য অন্যান্য সূচক যুক্ত করে হ্রাস করা যেতে পারে।
/*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=2 strategy(title = "Noro's MAs Cross Tests v1.0", shorttitle = "MAs Cross tests 1.0", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 0) needlong = input(true, "long") needshort = input(true, "short") len2 = input(15, defval = 15, minval = 2, maxval = 1000, title = "Fast MA length") type2 = input(1, defval = 1, minval = 1, maxval = 7, title = "Fast MA Type") src2 = input(close, defval = close, title = "Fast MA Source") len1 = input(30, defval = 30, minval = 2, maxval = 1000, title = "Slow MA length") type1 = input(1, defval = 1, minval = 1, maxval = 7, title = "Slow MA Type") src1 = input(close, defval = close, title = "Slow MA Source") col = input(false, defval = false, title = "Color of bar") o = input(false, title = "1 SMA, 2 EMA, 3 VWMA, 4 DEMA, 5 TEMA, 6 KAMA, 7 Price Channel") //DEMA 1 dema1 = 2 * ema(src1, len1) - ema(ema(close, len1), len1) //TEMA 1 xEMA1 = ema(src1, len1) xEMA2 = ema(xEMA1, len1) xEMA3 = ema(xEMA2, len1) tema1 = 3 * xEMA1 - 3 * xEMA2 + xEMA3 //KAMA 1 xvnoise = abs(src1 - src1[1]) nfastend = 0.20 nslowend = 0.05 nsignal = abs(src1 - src1[len1]) nnoise = sum(xvnoise, len1) nefratio = iff(nnoise != 0, nsignal / nnoise, 0) nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2) kama1 = nz(kama1[1]) + nsmooth * (src1 - nz(kama1[1])) //PriceChannel 1 lasthigh1 = highest(src1, len1) lastlow1 = lowest(src1, len1) center1 = (lasthigh1 + lastlow1) / 2 //DEMA 2 dema2 = 2 * ema(src2, len2) - ema(ema(close, len2), len2) //TEMA 2 xEMA12 = ema(src2, len2) xEMA22 = ema(xEMA12, len2) xEMA32 = ema(xEMA22, len2) tema2 = 3 * xEMA12 - 3 * xEMA22 + xEMA32 //KAMA 2 xvnoise2 = abs(src2 - src2[1]) nfastend2 = 0.20 nslowend2 = 0.05 nsignal2 = abs(src2 - src2[len2]) nnoise2 = sum(xvnoise2, len2) nefratio2 = iff(nnoise2 != 0, nsignal2 / nnoise2, 0) nsmooth2 = pow(nefratio2 * (nfastend2 - nslowend2) + nslowend2, 2) kama2 = nz(kama2[1]) + nsmooth2 * (src2 - nz(kama2[1])) //PriceChannel 2 lasthigh2 = highest(src2, len2) lastlow2 = lowest(src2, len2) center2 = (lasthigh2 + lastlow2) / 2 //MAs ma1 = type1 == 1 ? sma(src1, len1) : type1 == 2 ? ema(src1, len1) : type1 == 3 ? vwma(src1, len1) : type1 == 4 ? dema1 : type1 == 5 ? tema1 : type1 == 6 ? kama1 : type1 == 7 ? center1 : 0 ma2 = type2 == 1 ? sma(src2, len2) : type2 == 2 ? ema(src2, len2) : type2 == 3 ? vwma(src2, len2) : type2 == 4 ? dema2 : type2 == 5 ? tema2 : type2 == 6 ? kama2 : type2 == 7 ? center2 : 0 plot(ma1, color = blue, linewidth = 3, transp = 0) plot(ma2, color = red, linewidth = 3, transp = 0) //Signals trend = ma2 > ma1 ? 1 : ma2 < ma1 ? -1 : trend[1] up = trend == 1 and ((close < open and close[1] < open[1]) or col == false) dn = trend == -1 and ((close > open and close[1] > open[1]) or col == false) if up strategy.entry("Long", strategy.long, needlong == false ? 0 : na) if dn strategy.entry("Short", strategy.short, needshort == false ? 0 : na)