এই কৌশলটি ট্রেডিং সিগন্যাল তৈরির জন্য এক্সপোনেন্সিয়াল মুভিং মিডিয়া (ইএমএ) এবং মুভিং মিডিয়া কনভার্জেন্স ডিভার্জেন্স (এমএসিডি) সূচকগুলিকে একত্রিত করে এবং ঝুঁকি নিয়ন্ত্রণের জন্য ট্রেলিং স্টপ লস গ্রহণ করে। কৌশলটি ট্রেন্ডিং বাজারের জন্য উপযুক্ত এবং দীর্ঘমেয়াদী হোল্ডিংয়ের জন্য মাঝারি মেয়াদী প্রবণতা অনুসরণ করার লক্ষ্যে।
যখন দ্রুত ইএমএ লাইন ধীর ইএমএ লাইনের উপরে অতিক্রম করে এবং এমএসিডি হিস্টোগ্রাম bearish হয়ে যায়, তখন কৌশলটি দীর্ঘ হয়। যখন একটি দীর্ঘ অবস্থান বিদ্যমান থাকে, তখন একটি নিম্নমুখী ট্রেইলিং স্টপ লস লাইন সেট করা হয়। যদি দামটি স্টপ লস লাইনের নীচে একটি নির্দিষ্ট শতাংশে পড়ে, তবে দীর্ঘ অবস্থানটি বন্ধ হয়ে যাবে।
বিশেষত, কৌশলটি দ্রুত এবং ধীর EMA গঠনের জন্য 7 দিনের EMA এবং 14 দিনের EMA ব্যবহার করে। MACD মানটি 26 দিনের EMA কে 12 দিনের EMA থেকে বিয়োগ করে এবং সিগন্যাল লাইনটি MACD এর 9 দিনের EMA দিয়ে পাওয়া যায়। যখন 7 দিনের EMA 14 দিনের EMA এর উপরে অতিক্রম করে এবং MACD মান সিগন্যাল লাইনের উপরে অতিক্রম করে, তখন একটি দীর্ঘ অবস্থান খোলা হয়। তারপরে একটি নিম্নমুখী ট্রেইলিং স্টপ লস লাইন সেট করা হয়। যদি দাম একটি নির্দিষ্ট শতাংশে উচ্চ স্তর থেকে পড়ে, তবে দীর্ঘ অবস্থানটি বন্ধ হয়ে যাবে।
এই কৌশলটি ইএমএ এবং এমএসিডি সূচকগুলিকে একত্রিত করে, যা কার্যকরভাবে মিথ্যা ব্রেকআউটগুলি ফিল্টার করতে পারে। ইএমএ প্রবণতার দিকটি বিচার করে এবং এমএসিডি প্রবেশের পয়েন্টগুলি নির্ধারণ করে। সংকেতের গুণমান উন্নত করার সময় উভয়কে একত্রিত করা ট্রেডিং ফ্রিকোয়েন্সি হ্রাস করতে পারে। ট্রেলিং স্টপ লস বিদ্যমান মুনাফার সুরক্ষা সর্বাধিক করতে পারে এবং বড় প্রতিকূল চলাচল ঘটলে সময়মত স্টপ লস করতে পারে।
ব্যাকটেস্টগুলি দেখায় যে এই কৌশলটি ভাল বাজারগুলিতেও শালীন রিটার্ন তৈরি করতে পারে, যা একটি নির্দিষ্ট স্থিতিশীলতার ইঙ্গিত দেয়। ব্যবসায়ের ফ্রিকোয়েন্সি উচ্চ নয়, মাঝারি থেকে দীর্ঘমেয়াদী হোল্ডিংয়ের জন্য উপযুক্ত। প্রবণতা অনুসরণকারী প্রবণতাটি কাস্টমাইজ করার জন্য ইএমএ সময়ের পরামিতিগুলি সামঞ্জস্য করা যেতে পারে।
এই কৌশলটি মূলত সূচকগুলির উপর নির্ভর করে, হুইপসাউড হওয়ার ঝুঁকি নিয়ে। পরিসীমা-সীমাবদ্ধ সংহতকরণের সময়, ইএমএ এবং এমএসিডি অত্যধিক মিথ্যা সংকেত তৈরি করতে পারে, যা অত্যধিক ট্রেডিং এবং ক্ষতির দিকে পরিচালিত করে। ট্রেলিং স্টপ লস কেবল ডাউনসাইড ব্রেকআউটের জন্য কাজ করে, আপসাইড ব্রেকআউটের পরে তীব্র বিপরীতমুখী পরিচালনা করতে অক্ষম।
ইএমএ সময়কাল যথাযথভাবে প্রসারিত করা মিথ্যা সংকেত হ্রাস করতে পারে। অন্যান্য সূচকগুলি ভলিউম বা অস্থিরতার সূচকগুলির মতো ফিল্টার সংকেতগুলির সাথে একত্রিত করা যেতে পারে। এছাড়াও, স্টপ লস ঝুঁকি এবং হুইপস ঝুঁকিগুলি ভারসাম্য বজারের অবস্থার উপর ভিত্তি করে সামঞ্জস্য করা যেতে পারে।
আরও উপযুক্ত পরামিতি খুঁজে পেতে বিভিন্ন EMA সময়ের সমন্বয় পরীক্ষা করা যেতে পারে।
সিগন্যাল ফিল্টারিং এবং মানের উন্নতির জন্য আরএসআই, কেডি এর মতো অন্যান্য সূচক যুক্ত করা যেতে পারে।
স্টপ লস শতাংশ বিভিন্ন পণ্যের উপর ভিত্তি করে সামঞ্জস্য করা যেতে পারে, গতিশীল ট্রেলিং স্টপ সহ।
আরও কাস্টমাইজযোগ্য প্রবেশ এবং প্রস্থান নিয়মের জন্য ব্রেকআউট, প্যাটার্ন স্বীকৃতি এবং অন্যান্য কৌশল অন্তর্ভুক্ত করা যেতে পারে।
মেশিন লার্নিং ইএমএকে সাহায্য করার জন্য সামগ্রিক প্রবণতা দিকটি পূর্বাভাস দিতে সহায়তা করতে পারে।
সামগ্রিকভাবে, কৌশলটি বেশ শক্তিশালী, এমনকি ভালুকের বাজারেও শালীন রিটার্ন তৈরি করে। তবে কিছু হুইপস ঝুঁকি রয়েছে, যা পরামিতি টিউনিং এবং সংকেত ফিল্টারিংয়ের প্রয়োজন। অন্যান্য প্রযুক্তিগত সূচক এবং মেশিন লার্নিংয়ের সাথে আরও অপ্টিমাইজেশন এটিকে উল্লেখযোগ্যভাবে উন্নত করতে পারে। সংক্ষেপে, কৌশলটি পরিমাণগত ব্যবসায়ের জন্য একটি নির্ভরযোগ্য টেম্পলেট সরবরাহ করে।
/*backtest start: 2023-09-12 00:00:00 end: 2023-09-19 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Coinrule //@version=5 strategy('EMA and MACD with Trailing Stop Loss', overlay=true, initial_capital=1000, process_orders_on_close=true, default_qty_type=strategy.percent_of_equity, default_qty_value=30, commission_type=strategy.commission.percent, commission_value=0.1) showDate = input(defval=true, title='Show Date Range') timePeriod = time >= timestamp(syminfo.timezone, 2022, 1, 1, 0, 0) notInTrade = strategy.position_size <= 0 // EMAs fastEMA = ta.ema(close, 7) slowEMA = ta.ema(close, 14) plot(fastEMA, color = color.blue) plot(slowEMA, color = color.green) //buyCondition1 = ta.crossover(fastEMA, slowEMA) buyCondition1 = fastEMA > slowEMA // DMI and MACD inputs and calculations [macd, macd_signal, macd_histogram] = ta.macd(close, 12, 26, 9) buyCondition2 = ta.crossover(macd_signal, macd) // Configure trail stop level with input options longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01 shortTrailPerc = input.float(title='Trail Short Loss (%)', minval=0.0, step=0.1, defval=1) * 0.01 // Determine trail stop loss prices longStopPrice = 0.0 shortStopPrice = 0.0 longStopPrice := if strategy.position_size > 0 stopValue = close * (1 - longTrailPerc) math.max(stopValue, longStopPrice[1]) else 0 shortStopPrice := if strategy.position_size < 0 stopValue = close * (1 + shortTrailPerc) math.min(stopValue, shortStopPrice[1]) else 999999 if (buyCondition1 and buyCondition2 and notInTrade and timePeriod) strategy.entry(id="Long", direction = strategy.long) strategy.exit(id="Exit", stop = longStopPrice, limit = shortStopPrice) //if (sellCondition1 and sellCondition2 and notInTrade and timePeriod) //strategy.close(id="Close", when = sellCondition1 or sellCondition2)