এই কৌশলটি মূলত বাজারের প্রবণতা এবং অস্থিরতা ক্যাপচার করার জন্য চলমান গড় এবং বোলিংজার ব্যান্ড ব্যবহার করে। এটি তিনটি ভিন্ন ধরণের চলমান গড় ব্যবহার করেঃ সহজ চলমান গড় (এসএমএ), ওজনযুক্ত চলমান গড় (ডাব্লুএমএ), এবং এক্সপোনেনশিয়াল চলমান গড় (ইএমএ) । একই সময়ে, এটি মূল্য চ্যানেল সেট করতে বোলিংজার ব্যান্ড ব্যবহার করে, উপরের এবং নীচের ব্যান্ডগুলি খোলার এবং বন্ধের অবস্থানের জন্য সংকেত হিসাবে কাজ করে। যখন দামটি উপরের বোলিংজার ব্যান্ডটি ভেঙে যায়, তখন এটি একটি শর্ট পজিশন খোলে; যখন এটি নীচের ব্যান্ডটি ভেঙে যায়, তখন এটি একটি দীর্ঘ অবস্থান খোলে। এটি স্টপ-লস স্তর হিসাবে বৃহত্তর বোলিংজার ব্যান্ডগুলিও সেট করে, যখন দাম এই ব্যান্ডগুলি লঙ্ঘন করে তখন অবস্থানগুলি বন্ধ করে দেয়। সামগ্রিকভাবে, এই কৌশলটি প্রবণতা উদ্ভূত হলে অবিলম্বে অবস্থান স্থাপন করার চেষ্টা করে এবং স্থিতিশীল রিটার্নের লক্ষ্যে
মেরিনা পারফেনোভা স্কুল প্রকল্প বট হল চলমান গড় এবং বলিংজার ব্যান্ডের উপর ভিত্তি করে একটি পরিমাণগত ট্রেডিং কৌশল। এটি বলিংজার ব্যান্ড স্টপ-লস লাইনের মাধ্যমে ড্রডাউনগুলি নিয়ন্ত্রণ করার সময় বাজার প্রবণতা ক্যাপচার করে মুনাফা অর্জনের চেষ্টা করে। কৌশল যুক্তি সহজ এবং সরল, বিস্তৃত অ্যাপ্লিকেশন সহ এবং প্যারামিটারগুলি বাজারের বৈশিষ্ট্য অনুসারে নমনীয়ভাবে সামঞ্জস্য করা যেতে পারে। তবে, ব্যবহারিক প্রয়োগে, এখনও পার্শ্ববর্তী বাজার, চরম শর্ত, প্যারামিটার অপ্টিমাইজেশান ইত্যাদির মতো বিষয়গুলিতে মনোযোগ দেওয়ার প্রয়োজন এবং মূলধন এবং অবস্থান পরিচালনার নিয়মগুলির আরও পরিমার্জন প্রয়োজন। সামগ্রিকভাবে, এই কৌশলটি একটি মৌলিক পরিমাণগত ট্রেডিং ফ্রেমওয়ার্ক হিসাবে কাজ করতে পারে, যা আরও শক্তিশালী ট্রেডিং ফলাফল অর্জনের জন্য ক্রমাগত অনুকূলিত এবং উন্নত করা যেতে পারে।
/*backtest start: 2024-03-01 00:00:00 end: 2024-03-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy ("Marina Parfenova School Project Bot", overlay = true) sma(price, n) => result = 0.0 for i = 0 to n - 1 result := result + price [i] / n result wma(price, n) => result = 0.0 sum_weight = 0.0 weight = 0.0 for i = 0 to n - 1 weight := n - 1 result := result + price [i]*weight sum_weight := sum_weight + weight result/sum_weight ema(price, n) => result = 0.0 alpha = 2/(n + 1) prevResult = price if (na(result[1]) == false) prevResult := result[1] result := alpha * price + (1 - alpha) * prevResult /// Настройки n_slow = input.int(50, "Период медленной скользящей средней", step=5) n_fast = input.int(4, "Период быстрой скользящей средней") n_deviation = input.int(30, "Период среднеквадратического отклонения", step=5) k_deviation_open = input.float(1.2, "Коэффициент ширины коридора покупки", step=0.1) k_deviation_close = input.float(1.6, "Коэффициент ширины коридора продажи", step=0.1) // ----- Линии индикаторов ----- // Медленная скользящая sma = sma(close, n_slow) plot(sma, color=#d3d3d3) // Линии Боллинджера, обозначающие коридор цены bollinger_open = k_deviation_open * ta.stdev(close, n_deviation) open_short_line = sma + bollinger_open plot(open_short_line, color=#ec8383) open_long_line = sma - bollinger_open plot(open_long_line, color=#6dd86d) bollinger_close = k_deviation_close * ta.stdev(close, n_deviation) close_short_line = sma + bollinger_close plot(close_short_line, color=#e3e3e3) close_long_line = sma - bollinger_close plot(close_long_line, color=#e3e3e3) // Быстрая скользящая ema = ema(close, n_fast) plot(ema, color = color.aqua, linewidth = 2) // ----- Сигналы для запуска стратегии ----- // если ema пересекает линию open_short сверху вниз - сигнал на создание ордера в short if(ema[1] >= open_short_line[1] and ema < open_short_line) strategy.entry("short", strategy.short) // если ema пересекает линию open_long снизу вверх - сигнал на создание ордера в long if(ema[1] <= open_long_line[1] and ema > open_long_line) strategy.entry("long", strategy.long) // если свеча пересекает верхнюю линию коридора продажи - закрываем все long-ордера if (high >= close_short_line) strategy.close("long") // если свеча пересекает нижнюю линию коридора продажи - закрываем все short-ордера if (low <= close_long_line) strategy.close("short")