ইএমএ ক্রসওভার ট্রেডিং কৌশলটি বিভিন্ন সময়ের ইএমএ লাইন গণনা করে এবং তাদের ক্রসওভার পরিস্থিতি সনাক্ত করে ক্রয় এবং বিক্রয় সংকেত উত্পন্ন করে। যখন দ্রুততম ইএমএ ধীরতম ইএমএর উপরে অতিক্রম করে, তখন একটি ক্রয় সংকেত উত্পন্ন হয়। যখন দ্রুততম ইএমএ ধীরতম ইএমএর নীচে অতিক্রম করে, তখন একটি বিক্রয় সংকেত উত্পন্ন হয়।
এই কৌশলটির মূল বিষয় হল বিভিন্ন সময়ের সাথে দুটি ইএমএ লাইন গণনা করা, যার মধ্যে একটি দ্রুততম ইএমএ 9 এর ডিফল্ট সময়ের সাথে এবং একটি ধীরতম ইএমএ 20 এর ডিফল্ট সময়ের সাথে। কোডটি পাইন স্ক্রিপ্টে অন্তর্নির্মিত ইএমএ ফাংশনটি কল করে এই দুটি লাইন গণনা করে। এটি তারপরে দুটি ইএমএ লাইন ক্রস করে কিনা তা সনাক্ত করে ট্রেডিং সংকেত উত্পন্ন করে। বিশেষত, যদি দ্রুততম ইএমএ ধীরতম ইএমএর উপরে অতিক্রম করে তবে একটি ক্রয় সংকেত ট্রিগার হয়। যদি দ্রুততম ইএমএ ধীরতম ইএমএর নীচে অতিক্রম করে তবে একটি বিক্রয় সংকেত ট্রিগার হয়।
ক্রসওভার পরিস্থিতিগুলি পাইন স্ক্রিপ্টে অন্তর্নির্মিত ক্রসওভার এবং ক্রসওন্ডার ফাংশনগুলি ব্যবহার করে সনাক্ত করা হয়। ক্রসওভার ফাংশনটি দ্রুততম ইএমএ ধীরতম ইএমএর উপরে অতিক্রম করে কিনা তা পরীক্ষা করে এবং একটি বুলিয়ান মান প্রদান করে। ক্রসওভার ফাংশনটি দ্রুততম ইএমএ ধীরতম ইএমএর নীচে অতিক্রম করে কিনা তা পরীক্ষা করে এবং একটি বুলিয়ান মান প্রদান করে। এই দুটি ফাংশনের রিটার্ন মানের উপর ভিত্তি করে কোডটি সংশ্লিষ্ট ক্রয় বা বিক্রয় অর্ডার জমা দেয়।
উপরন্তু, কোডটি কিছু সহায়ক শর্ত সরবরাহ করে যেমন শুরু / শেষ তারিখগুলি সেট করা, কেবল দীর্ঘ বা সংক্ষিপ্ত ব্যবসায় সীমাবদ্ধ করা ইত্যাদি। এই বৈশিষ্ট্যগুলি আরও পরিশীলিত ব্যাকটেস্ট বা অপ্টিমাইজেশন পরিচালনা করতে সহায়তা করে।
এই কৌশলটির সবচেয়ে বড় সুবিধা হ'ল এটি খুব সহজ এবং সরল, সহজেই বোঝা এবং বাস্তবায়ন করা যায়, যা এটি শিক্ষানবিশদের জন্য শিখতে উপযুক্ত করে তোলে। এছাড়াও, একটি প্রবণতা অনুসরণকারী সূচক হিসাবে, চলমান গড়গুলি কার্যকরভাবে বাজারের প্রবণতা ট্র্যাক করতে পারে এবং গতির শোষণ করে অতিরিক্ত মুনাফা অর্জন করতে পারে। অবশেষে, এই কৌশলটির কয়েকটি পরামিতি রয়েছে, যা এটিকে সহজেই টিউন এবং অনুকূল করে তোলে।
এই কৌশলটির প্রধান ঝুঁকিগুলি হ'ল হুইপসা ট্রেড এবং ট্রেন্ড বিপরীতমুখী। ইএমএ লাইনগুলি স্বল্পমেয়াদী বাজারের ওঠানামাতে সংবেদনশীল, যা মিথ্যা সংকেত তৈরি করতে পারে এবং অপ্রয়োজনীয় ট্রেডগুলি ট্রিগার করতে পারে, ট্রেডিং ফ্রিকোয়েন্সি এবং ব্যয় বাড়িয়ে তুলতে পারে। অন্যদিকে, যখন ক্রসওভার সংকেতগুলি ট্রিগার হয়, প্রবণতা তার বিপরীতমুখী পয়েন্টের কাছাকাছি হতে পারে, ট্রেডগুলিকে ঝুঁকিপূর্ণ করে তোলে। অনুপযুক্ত প্যারামিটার সেটিংস কৌশল কর্মক্ষমতাকেও প্রভাবিত করতে পারে।
ইএমএ সময়কাল সামঞ্জস্য করার মতো পদ্ধতি, ফিল্টার যুক্ত করা হুইপসকে হ্রাস করতে সহায়তা করতে পারে। স্টপ লস অর্ডার একক বাণিজ্য ক্ষতি নিয়ন্ত্রণ করে। পরামিতি অপ্টিমাইজেশান স্থিতিশীলতা উন্নত করে। তবে, কোনও ট্রেডিং কৌশল সম্পূর্ণরূপে ক্ষতি এড়াতে পারে না, তাই ঝুঁকি নিতে প্রস্তুত হতে হবে।
এই কৌশল নিম্নলিখিত দিকগুলিতে উন্নত করা যেতে পারেঃ
ইএমএ ক্রসওভার একটি সহজ কিন্তু কার্যকর প্রবণতা অনুসরণকারী কৌশল। এটি স্বয়ংক্রিয়ভাবে মূল্য প্রবণতা ক্যাপচার, ট্রেডিং সংকেত উত্পন্ন EMA ক্রস ব্যবহার করে। এই সহজ বুঝতে এবং সামঞ্জস্যযোগ্য কৌশল শিখতে নতুনদের জন্য নিখুঁত। এটি আরো জটিল কৌশল মধ্যে একীভূত করা যেতে পারে। যাইহোক, সব কৌশল ঝুঁকি বহন এবং সতর্ক ব্যবস্থাপনা প্রয়োজন। অপ্টিমাইজেশান এবং সমৃদ্ধ বাজার অবস্থার পরিপ্রেক্ষিতে ক্রমাগত উন্নতি এই কৌশল আরো শক্তিশালী করতে পারেন।
/*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"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // This strategy has been created for illustration purposes only and should not be relied upon as a basis for buying, selling, or holding any asset or security. // © kirilov //@version=4 strategy( "EMA Cross Strategy", overlay=true, calc_on_every_tick=true, currency=currency.USD ) // INPUT: // Options to enter fast and slow Exponential Moving Average (EMA) values emaFast = input(title="Fast EMA", type=input.integer, defval=9, minval=1, maxval=9999) emaSlow = input(title="Slow EMA", type=input.integer, defval=20, 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 1970 00:00")) endDate = input(title="End Date", type=input.time, defval=timestamp("31 Dec 2170 23:59")) // CALCULATIONS: // Use the built-in function to calculate two EMA lines fastEMA = ema(close, emaFast) slowEMA = ema(close, emaSlow) // PLOT: // Draw the EMA lines on the chart plot(series=fastEMA, color=color.black, linewidth=2) plot(series=slowEMA, color=color.red, linewidth=2) // CONDITIONS: // Check if the close time of the current bar falls inside the date range inDateRange = true // Translate input into trading conditions longOK = (tradeDirection == "Long") or (tradeDirection == "Both") shortOK = (tradeDirection == "Short") or (tradeDirection == "Both") // Decide if we should go long or short using the built-in functions longCondition = crossover(fastEMA, slowEMA) shortCondition = crossunder(fastEMA, slowEMA) // ORDERS: // Submit entry (or reverse) orders if (longCondition and inDateRange) strategy.entry(id="long", long=true, when = longOK) if (shortCondition and inDateRange) strategy.entry(id="short", long=false, when = shortOK) // Submit exit orders in the cases where we trade only long or only short if (strategy.position_size > 0 and shortCondition) strategy.exit(id="exit long", stop=close) if (strategy.position_size < 0 and longCondition) strategy.exit(id="exit short", stop=close)