এই কৌশলটি ইএমএ ক্রসওভারের উপর ভিত্তি করে স্বয়ংক্রিয় ট্রেডিং বাস্তবায়নের জন্য দ্রুত ইএমএ এবং ধীর ইএমএ লাইনের ক্রসওভার ব্যবহার করে। দ্রুত ইএমএ লাইন দামের ক্রিয়াকলাপকে নিবিড়ভাবে অনুসরণ করে যখন ধীর ইএমএ লাইন দামের ক্রিয়াকলাপকে মসৃণ করে। যখন দ্রুত ইএমএ লাইন নীচে থেকে ধীর ইএমএ লাইনের উপরে অতিক্রম করে, তখন একটি ক্রয় সংকেত উত্পন্ন হয়। যখন দ্রুত ইএমএ লাইন উপরে থেকে ধীর ইএমএ লাইনের নীচে অতিক্রম করে, তখন একটি বিক্রয় সংকেত উত্পন্ন হয়। কৌশলটি প্রবেশ এবং প্রস্থানগুলির জন্য কাস্টম সংকেত পয়েন্টগুলি সংজ্ঞায়িত করতে দ্রুত এবং ধীর ইএমএগুলির পরামিতিগুলি সামঞ্জস্য করে নমনীয় এবং কাস্টমাইজযোগ্য।
কৌশলটি মূলত দ্রুত এবং ধীর EMA লাইন গণনা করে এবং তাদের সম্পর্ক তুলনা করে ট্রেডিং সংকেত তৈরি করে।
প্রথমত, দ্রুত EMA emaFast এর সময়কাল ইনপুট প্যারামিটারে 1 এ সেট করা হয় যাতে এটি মূল্যের পরিবর্তনগুলি ঘনিষ্ঠভাবে অনুসরণ করতে পারে। একই সময়ে, ধীর EMA এর সময়কাল সেট করা হয় - কিনতে সংকেত তৈরির জন্য emaSlowBuy এবং বিক্রয় সংকেতগুলির জন্য emaSlowSell।
তারপর, দ্রুত EMA এবং ধীর EMA ইনপুট সময় অনুযায়ী গণনা করা হয়। দ্রুত EMA একটি নির্দিষ্ট সময়কাল আছে 1 দাম ঘনিষ্ঠভাবে অনুসরণ করার জন্য যখন ধীর EMAs মসৃণ মূল্য তথ্য জন্য নিয়মিত পরামিতি হয়।
পরবর্তী, দ্রুত EMA এবং ধীর EMA এর মধ্যে সম্পর্ক ক্রসওভারগুলি নির্ধারণের জন্য তুলনা করা হয়। যদি দ্রুত EMA ধীর EMA এর উপরে ক্রস করে, একটি সোনার ক্রস গঠন করে, ক্রয় শর্ত পূরণ হয়। যদি দ্রুত EMA ধীর EMA এর নীচে ক্রস করে, একটি মৃত্যু ক্রস গঠন করে, বিক্রয় শর্ত পূরণ হয়।
অবশেষে, প্রবেশ এবং প্রস্থান আদেশগুলি ক্রয় এবং বিক্রয় শর্তগুলি পূরণ করার সময় কার্যকর হয়। এদিকে, এটি পরীক্ষা করে যে বর্তমান সময়টি তারিখের ব্যাপ্তির বাইরে ভুল ব্যবসায় এড়াতে ব্যাকটেস্টের তারিখের ব্যাপ্তির মধ্যে রয়েছে।
ঝুঁকি কমাতে সম্ভাব্য উন্নতিঃ
EMA ক্রসওভার সংকেতগুলি যাচাই করতে এবং মিথ্যা সংকেতগুলি এড়াতে অন্যান্য সূচক ব্যবহার করে ফিল্টার যুক্ত করুন
ট্রেডিং ফ্রিকোয়েন্সি হ্রাস করার জন্য বাজারের অস্থিরতার ভিত্তিতে EMA সময়কাল সামঞ্জস্য করুন
ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ লস এবং লাভ গ্রহণ অন্তর্ভুক্ত করুন
নির্দিষ্ট বাজারের অবস্থার মধ্যে আরও ভাল পারফরম্যান্সের জন্য দ্রুত EMA সময়কাল অপ্টিমাইজ করুন
বিভিন্ন বাজারে অত্যধিক ট্রেডিং এড়ানোর জন্য ট্রেন্ড নির্ধারণ যোগ করুন
কৌশলটি আরও উন্নত করার কিছু উপায়ঃ
সর্বোত্তম সেটিং খুঁজে পেতে বিভিন্ন সময়কালের সমন্বয় পরীক্ষা করে EMA পরামিতি অপ্টিমাইজ করুন
সিগন্যাল যাচাই করার জন্য MACD, KDJ, Bollinger Bands এর মত অন্যান্য সূচক ব্যবহার করে ফিল্টার যোগ করুন
ট্রেন্ড মেট্রিক্স যেমন ATR অন্তর্ভুক্ত করুন বাজারের ব্যাপ্তি এড়াতে
আরও ভাল ঝুঁকি এবং লাভজনকতার জন্য স্টপ লস এবং লাভের কৌশলগুলি অপ্টিমাইজ করুন
আরও ভাল পরামিতি খুঁজে পেতে ডাবল বা ট্রিপল ইএমএ এর মতো অন্যান্য ইএমএ সংমিশ্রণ পরীক্ষা করুন
বিভিন্ন বাজার চক্রের জন্য গতিশীলভাবে প্যারামিটারগুলি সামঞ্জস্য করুন যেমন ট্রেন্ডিংয়ের জন্য দ্রুততম ইএমএ এবং অস্থির বাজারগুলির জন্য ধীরতম ইএমএ
ইএমএ ক্রসওভার কৌশলটিতে প্রবেশ এবং প্রস্থান নির্ধারণের জন্য প্রতিষ্ঠিত প্রযুক্তিগত সূচকগুলি ব্যবহার করে পরিষ্কার, সহজেই বোঝা যায় এমন যুক্তি রয়েছে। এটি বিভিন্ন বাজারের অবস্থার মধ্যে অপ্টিমাইজেশনের জন্য ইএমএ পরামিতি টিউনিংয়ের মাধ্যমে অত্যন্ত কাস্টমাইজযোগ্য। তবে, ইএমএ সংকেতগুলির বিলম্ব রয়েছে এবং সেরা পরামিতিগুলি খুঁজে পেতে বিস্তৃত পরীক্ষার প্রয়োজন। এছাড়াও, সংকেত ফিল্টার যুক্ত করে, স্টপগুলি অনুকূল করে এবং ব্যাপ্তিযুক্ত বাজারগুলি এড়িয়ে ঝুঁকিগুলি প্রশমিত করার জন্য আরও উন্নতি প্রয়োজন। অবিচ্ছিন্ন অপ্টিমাইজেশন এবং পরীক্ষার সাথে, এই কৌশলটির শক্তিশালী ট্রেডিং পারফরম্যান্সের সম্ভাবনা রয়েছে।
/*backtest start: 2023-10-10 00:00:00 end: 2023-11-09 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy( "EMA Cross Strategy with Custom Buy/Sell Conditions", overlay=true ) // INPUT: // Options to enter fast Exponential Moving Average (EMA) value emaFast = 1 // Options to enter slow EMAs for buy and sell signals slowEMABuy = input(title="Slow EMA for Buy Signals", defval=20, minval=1, maxval=9999) slowEMASell = input(title="Slow EMA for Sell Signals", defval=30, minval=1, maxval=9999) // Option to select trade directions tradeDirection = input(title="Trade Direction", options=["Long", "Short", "Both"], defval="Both") // Options that configure the backtest date range startDate = input(title="Start Date", type=input.time, defval=timestamp("01 Jan 2018 00:00")) endDate = input(title="End Date", type=input.time, defval=timestamp("31 Dec 2025 23:59")) // CALCULATIONS: // Use a fixed fast EMA of 1 and calculate slow EMAs for buy and sell signals fastEMA = ema(close, emaFast) slowEMABuyValue = ema(close, slowEMABuy) slowEMASellValue = ema(close, slowEMASell) // PLOT: // Draw the EMA lines on the chart plot(series=fastEMA, color=color.orange, linewidth=2) plot(series=slowEMABuyValue, color=color.blue, linewidth=2, title="Slow EMA for Buy Signals") plot(series=slowEMASellValue, color=color.red, linewidth=2, title="Slow EMA for Sell Signals") // CONDITIONS: // Check if the close time of the current bar falls inside the date range inDateRange = true // Translate input into trading conditions for buy and sell signals buyCondition = crossunder(slowEMABuyValue, fastEMA) sellCondition = crossover(slowEMASellValue, fastEMA) // Translate input into overall trading conditions longOK = (tradeDirection == "Long") or (tradeDirection == "Both") shortOK = (tradeDirection == "Short") or (tradeDirection == "Both") // ORDERS: // Submit entry (or reverse) orders based on buy and sell conditions if (buyCondition and inDateRange) strategy.entry("Buy", strategy.long) if (sellCondition and inDateRange) strategy.close("Buy") // Submit exit orders based on opposite trade conditions if (strategy.position_size > 0 and sellCondition) strategy.close("Sell") if (strategy.position_size < 0 and buyCondition) strategy.close("Sell")