ডাবল ইএমএ ক্রসওভারের উপর ভিত্তি করে পরিমাণগত ট্রেডিং কৌশল

লেখক:চাওঝাং, তারিখঃ ২০২৩-১১-২১ ১১ঃ৪১ঃ৪০
ট্যাগঃ

img

সারসংক্ষেপ

এই কৌশলটি বাজারের প্রবণতা নির্ধারণের জন্য বিভিন্ন সময়কালের দুটি ইএমএ লাইনের মধ্যে ক্রসওভার গণনা করে ট্রেডিং সংকেত তৈরি করে। এটি দীর্ঘ সময়ের ইএমএ দীর্ঘ সময়ের ইএমএ অতিক্রম করার সময় দীর্ঘ অবস্থান খুলবে, এটি একটি আপট্রেন্ড নির্দেশ করে এবং এটি একটি ডাউনট্রেন্ড নির্দেশ করে, যখন সংক্ষিপ্ত সময়ের ইএমএ দীর্ঘ সময়ের ইএমএ অতিক্রম করে তখন এটি অবস্থান বন্ধ করবে।

নীতিমালা

কৌশলটি মূলত ডাবল ইএমএ লাইনের সোনার ক্রস এবং ডেথ ক্রস তত্ত্ব প্রয়োগ করে। ডাবল ইএমএ লাইনে একটি দীর্ঘ ইএমএ এবং একটি সংক্ষিপ্ত ইএমএ রয়েছে। সংক্ষিপ্ত ইএমএ প্যারামিটারটি 10 দিনের জন্য এবং দীর্ঘ ইএমএ প্যারামিটারটি 21 দিনের জন্য সেট করা হয়েছে।

যখন সংক্ষিপ্ত ইএমএ দীর্ঘ ইএমএ অতিক্রম করে, তখন একটি ক্রয় সংকেত উত্পন্ন হয়। যখন সংক্ষিপ্ত ইএমএ দীর্ঘ ইএমএর নীচে অতিক্রম করে, তখন একটি বিক্রয় সংকেত উত্পন্ন হয়। কৌশলটি বৃদ্ধির হারের থ্রেশহোল্ডগুলিও সেট করে, যখন বৃদ্ধি একটি ইতিবাচক থ্রেশহোল্ড অতিক্রম করে তখনই দীর্ঘ অবস্থানগুলি খুলবে এবং যখন হ্রাস নেতিবাচক থ্রেশহোল্ড অতিক্রম করে তখনই অবস্থানগুলি বন্ধ করবে।

বিশেষ করে, ক্রয় শর্ত হল যখন সংক্ষিপ্ত EMA দীর্ঘ EMA এর চেয়ে বেশি হয় এবং স্টক বৃদ্ধির হার ইতিবাচক প্রান্তিক সীমা অতিক্রম করে। বন্ধ অবস্থানের শর্ত হল যখন সংক্ষিপ্ত EMA দীর্ঘ EMA এর চেয়ে কম হয় এবং স্টক বৃদ্ধির হার নেতিবাচক প্রান্তিকের নীচে পড়ে।

সুবিধা

  • সরলতা এবং নির্ভরযোগ্যতার জন্য ডাবল ইএমএ লাইনগুলির সোনার ক্রস এবং মৃত্যুর ক্রস তত্ত্ব ব্যবহার করে
  • দুর্বল প্রবৃদ্ধির সময় ভুল লেনদেন এড়াতে বৃদ্ধির হারের থ্রেশহোল্ড যোগ করা হয়েছে
  • সর্বাধিক ক্ষতির হার কঠোরভাবে নিয়ন্ত্রণ করতে পারে
  • EMA সময়ের পরামিতিগুলি বিভিন্ন চক্রের জন্য নমনীয়ভাবে সামঞ্জস্য করা যেতে পারে

ঝুঁকি বিশ্লেষণ

  • ইএমএ লাইনগুলির বিলম্বিত প্রভাব রয়েছে, সম্ভবত মূল্য বিপরীত পয়েন্টগুলি অনুপস্থিত
  • লাইন ক্রসওভারে কিছু বিলম্ব রয়েছে, সম্ভবত সেরা প্রবেশের পয়েন্টগুলি অনুপস্থিত
  • প্যারামিটার অপ্টিমাইজেশনের উপর নির্ভর করে, ভুল সেটিংগুলি ওভারট্রেডিং বা অপর্যাপ্ত সংকেতগুলির কারণ হতে পারে

অপ্টিমাইজেশান নির্দেশাবলী

  • সিগন্যালের নির্ভুলতা উন্নত করতে MACD, KD ইত্যাদির মতো অন্যান্য সূচকগুলির সাথে একত্রিত করুন
  • মুনাফা সর্বাধিকীকরণের জন্য স্টপ লস কৌশল যুক্ত করুন
  • বিভিন্ন পণ্য জুড়ে সেরা সেটিংসের জন্য EMA সময়ের পরামিতিগুলি অপ্টিমাইজ করুন
  • ডায়নামিক প্যারামিটার সমন্বয় এবং অপ্টিমাইজেশনের জন্য রিয়েল-টাইম ডেটা এবং মেশিন লার্নিং পদ্ধতি অন্তর্ভুক্ত করুন

সংক্ষিপ্তসার

সামগ্রিক কৌশলটি তুলনামূলকভাবে সহজ এবং নির্ভরযোগ্য, দামের প্রবণতা নির্ধারণ করতে ডাবল ইএমএ ক্রসওভার ব্যবহার করে এবং ট্রেডিং সিগন্যাল তৈরির জন্য বৃদ্ধি হারের প্রান্তিককরণ সেট করে। একক লাইন ক্রসওভারের তুলনায় এটি কিছু মিথ্যা সংকেত ফিল্টার করতে পারে। তবে ইএমএ লাইনের নিজস্ব পিছনে সমস্যা রয়েছে। অন্যান্য সূচক বা গতিশীল পরামিতি সমন্বয়কে একত্রিত করা কৌশল কর্মক্ষমতা আরও উন্নত করতে পারে।


/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title="ema(ema10-21)", overlay=true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital = 15000, commission_type = strategy.commission.percent, commission_value = 0.2)

useTimeLimit    = input(defval = false, title = "Use Start Time Limiter?")
startYear       = input(defval = 2016, title = "Start From Year",  minval = 0, step = 1)
startMonth      = input(defval = 05, title = "Start From Month",  minval = 0,step = 1)
startDay        = input(defval = 01, title = "Start From Day",  minval = 0,step = 1)
startHour       = input(defval = 00, title = "Start From Hour",  minval = 0,step = 1)
startMinute     = input(defval = 00, title = "Start From Minute",  minval = 0,step = 1)

startTimeOk() => true

lenght0 = input(10)
lenght1 = input(21)

source = close

EmaShort = ema(ema(source, lenght0), lenght0)
EmaLong = ema(ema(source, lenght1),lenght1)
plot(EmaShort, color=red)
plot(EmaLong, color=purple)

growth = ((EmaShort-EmaLong)*100)/((EmaShort+EmaLong)/2)
thresholdUp = input(defval=0.05, title="Threshold Up", type=float, step=0.01)
thresholdDown = input(defval=-0.165, title="Threshold Down", type=float, step=0.001)

if( startTimeOk() )
    buy_condition = EmaShort > EmaLong and growth > thresholdUp
    buy_exit_condition = EmaShort < EmaLong and growth < thresholdDown
    strategy.entry("buy", strategy.long, comment="buy", when=buy_condition)
    strategy.close(id='buy', when=buy_exit_condition)

আরো