এই কৌশলটি ট্রেডিং সিগন্যাল হিসাবে চলমান গড় ক্রসওভার ব্যবহার করে, যা অস্থিরতা সূচক বিবি এবং ফিল্টারিংয়ের জন্য একটি কাস্টম গতির সূচকের সাথে মিলিত হয়, যার লক্ষ্য এমএ ক্রসওভার সংকেতগুলির নির্ভরযোগ্যতা উন্নত করা এবং মিথ্যা সংকেত হ্রাস করা।
গোল্ডেন ক্রস এবং ডেথ ক্রস সিগন্যাল তৈরি করতে ৫০ পেরিওড ইএমএ এবং ২০০ পেরিওড এসএমএ ব্যবহার করুন।
যখন মূল্য একটি আপট্রেন্ডে থাকে, তখন ক্রয় সংকেত তৈরি করতে 200 দিনের লাইনের উপরে মূল্য এবং 25 এর নীচে কাস্টম গতির সূচক মানের প্রয়োজন।
যখন মূল্য নিম্নমুখী হয়, তখন বিক্রয় সংকেত তৈরি করতে 200 দিনের লাইনের নিচে মূল্য এবং 75 এর উপরে কাস্টম গতির সূচক মানের প্রয়োজন।
ঐতিহাসিক সর্বোচ্চ এবং সর্বনিম্নের উপর ভিত্তি করে কাস্টম ইম্পোমেন্ট ইনডিকেটর বিবি মিডলাইন এবং ব্যান্ড দূরত্বকে 0-100 পরিসরে ম্যাপ করে।
গতির সূচকটি দামের আপেক্ষিক অস্থিরতা প্রতিফলিত করে, প্রান্তিক ফিল্টারিং মিথ্যা ক্রসওভার হ্রাস করতে সহায়তা করে।
মাঝারি ও দীর্ঘমেয়াদী প্রবণতা চিহ্নিত করতে EMA এবং SMA এর শক্তি ব্যবহার করুন।
গতির সূচক সহ ফিল্টারিং বৃদ্ধি নির্ভরযোগ্যতা উন্নত করে এবং মিথ্যা সংকেত হ্রাস করে।
বিবি ব্যান্ড দূরত্ব ভোল্টেবিলিটি তীব্রতা প্রতিফলিত করে, ঐতিহাসিক স্বাভাবিককরণ পরামিতি নির্ভরতা এড়ায়।
বিভিন্ন বাজারের পরিবেশে অভিযোজিত ইএমএ, এসএমএ সময়কাল এবং গতির থ্রেশহোল্ড।
অপ্টিমাইজেশান নমনীয়তা সঙ্গে সহজ যুক্তি, শক্তিশালী ব্যবহারিকতা.
ইএমএ এবং এসএমএ-র প্রভাব পিছিয়ে থাকে, স্বল্পমেয়াদী সুযোগগুলি মিস করতে পারে।
এই প্রবণতা পরিসীমা-বদ্ধ বাজারের জন্য অনুপযুক্ত।
ইম্পোমেন্ট থ্রেশহোল্ডের জন্য অপ্টিমাম প্যারামিটারের জন্য পুনরাবৃত্তিমূলক ব্যাকটেস্টিং প্রয়োজন, ওভারফিটিং ঝুঁকি।
দীর্ঘমেয়াদী সিস্টেমগুলি স্থিতিশীল কিন্তু সম্ভাব্য সীমাবদ্ধ পরম রিটার্ন প্রদান করে।
এমএ সময়কাল সংক্ষিপ্ত করতে পারে বা অভিযোজনযোগ্যতা উন্নত করতে পরিপূরক সূচক যুক্ত করতে পারে।
সর্বোত্তম পরামিতিগুলির জন্য বিভিন্ন এমএ সংমিশ্রণ পরীক্ষা করুন।
অতিরিক্ত যাচাইকরণের জন্য MACD, KD এর মতো পরিপূরক সূচক যুক্ত করুন।
গতির সূচক প্যারামিটারগুলিকে অপ্টিমাইজ করুন, যেমন পিরিয়ড, ম্যাপিং রেঞ্জ।
ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ লস অন্তর্ভুক্ত করুন।
মেশিন লার্নিং ফিচার এক্সট্রাকশন ব্যবহার করে প্রতীক-নির্দিষ্ট পরামিতিগুলির জন্য সামঞ্জস্য করুন।
অযৌক্তিক ক্রসওভার সংকেত এড়াতে ভলিউম সূচক যুক্ত করুন।
এই কৌশলটি উচ্চ নির্ভরযোগ্যতা এবং ব্যবহারিক মূল্যের জন্য দীর্ঘমেয়াদী প্রবণতা অনুসরণ এবং দ্বৈত গতির থ্রেশহোল্ড ফিল্টারিংয়ের শক্তিকে একত্রিত করে। পরামিতি অপ্টিমাইজেশন এবং পরিপূরক কৌশলগুলির মাধ্যমে আরও উন্নতি সম্ভব। উদ্ভাবনী ধারণাটি অন্যান্য প্রবণতা সিস্টেমের জন্য মূল্যবান অন্তর্দৃষ্টি সরবরাহ করে। অ্যালগরিদমিক ট্রেডিং কৌশল লাইব্রেরির একটি মূল্যবান সংযোজন।
/*backtest start: 2023-10-26 00:00:00 end: 2023-10-27 13:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="EMA Difference Mapping with Trades", shorttitle="EMA Diff Map", overlay=false) // Inputs emaLength = input(20, "EMA Length") stdDevLength = input(2, "Standard Deviation Length") priceSource = close takeProfitPoints = input(1000, title="Take Profit (in Points)") stopLossPoints = input(2500, title="Stop Loss (in Points)") // Calculate EMA ema = ema(priceSource, emaLength) // Calculate Standard Deviation stdDev = stdev(priceSource, stdDevLength) // Calculate differences diff1 = (ema + stdDev) - ema diff2 = ema - (ema - stdDev) // Calculate min and max differences from last year lookbackPeriod = 504 // Number of trading days in a year minDiff1 = lowest(diff1, lookbackPeriod) maxDiff1 = highest(diff1, lookbackPeriod) minDiff2 = lowest(diff2, lookbackPeriod) maxDiff2 = highest(diff2, lookbackPeriod) // Map differences based on requirements mappedDiff1 = 50 + 50 * ((diff1 - minDiff1) / (maxDiff1 - minDiff1)) mappedDiff2 = 50 - 50 * ((diff2 - minDiff2) / (maxDiff2 - minDiff2)) // Combine mapped differences into a single line mappedLine = if close > ema mappedDiff1 else mappedDiff2 // Plot 'mappedLine' in the main chart area conditionally plot(mappedLine, title="EMA Difference Mapping", color=(close > ema ? color.blue : na), style=plot.style_line, linewidth=2) // Calculate the 50EMA and 200SMA ema50 = ema(close, 50) sma200 = sma(close, 200) // Plot the 50EMA and 200SMA on the main chart plot(ema50, color=color.blue, title="50 SMA", linewidth=2) plot(sma200, color=color.red, title="200 SMA", linewidth=2) // Initialize trade variables var bool waitingForBuy = na var bool waitingForSell = na var bool buyConditionMet = false var bool sellConditionMet = false if not sellConditionMet and crossunder(ema50, sma200) sellConditionMet := true waitingForBuy := false if sellConditionMet waitingForSell := true sellConditionMet := false if waitingForSell and close < sma200 and mappedLine > 75 strategy.entry("Sell", strategy.short) strategy.exit("Sell Exit", "Sell", profit=takeProfitPoints, loss=stopLossPoints) waitingForSell := false // Define the strategy conditions and execute trades if not buyConditionMet and crossover(ema50, sma200) buyConditionMet := true waitingForSell := false if buyConditionMet waitingForBuy := true buyConditionMet := false if waitingForBuy and close > sma200 and mappedLine < 25 strategy.entry("Buy", strategy.long) strategy.exit("Buy Exit", "Buy", profit=takeProfitPoints, loss=stopLossPoints) waitingForBuy := false