এক্সপোনেন্সিয়াল মুভিং এভারেজ ক্রসওভার কৌশল

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

img

সারসংক্ষেপ

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

নীতি

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

বিশেষ করে, কৌশলটি প্রথমে দুটি EMA পরামিতি নির্ধারণ করেঃ

  1. tf - বৃহত্তর সময় ফ্রেম, ডিফল্ট দৈনিক.
  2. len - EMA সময়ের দৈর্ঘ্য, ডিফল্ট 3.

তারপর এটি দুটি EMA গণনা করেঃ

  1. ma1 - দৈনিক সময়সীমার উপর 3-দিনের EMA।
  2. ma2 - বর্তমান সময়রেখায় 3-দিনের EMA।

অবশেষে, এটি নিম্নলিখিত ভিত্তিতে ব্যবসা শুরু করেঃ

  • যখন ma2 > ma1 হয়, তখন এটি দীর্ঘ হয়।
  • যখন ma2 < ma1, এটা ছোট হয়ে যায়।

বিভিন্ন সময়ের দুটি EMA-এর মধ্যে ক্রসওভারের মাধ্যমে প্রবণতার দিকনির্দেশনা বিচার করে এটি ট্রেডিংকে স্বয়ংক্রিয় করে।

সুবিধা

এই কৌশলটির নিম্নলিখিত সুবিধা রয়েছে:

  1. সহজ নীতি, সহজেই বোঝা যায় এবং বাস্তবায়ন করা যায়, নতুনদের জন্য খুবই উপযুক্ত।
  2. প্রবণতা অনুসরণ করা, প্রবণতা মেনে চলা, ভালো লাভ করতে পারে।
  3. দামের পরিবর্তনের প্রতি আরো সংবেদনশীল ইএমএ ব্যবহার করে প্রবণতা বিপরীতমুখী সময়মত ধরা যায়।
  4. বিভিন্ন সময়কালের ইএমএগুলির সংমিশ্রণ তাদের নিজ নিজ শক্তি ব্যবহার করতে পারে এবং সিস্টেমের স্থিতিশীলতা উন্নত করতে পারে।
  5. খুব বেশি পরামিতির প্রয়োজন নেই, পরীক্ষা করা এবং অপ্টিমাইজ করা সহজ, লাইভ ট্রেডিংয়ের জন্য সুবিধাজনক।

ঝুঁকি

এই কৌশলের কিছু ঝুঁকিও রয়েছে:

  1. সামর্থ্য অনুযায়ী দুর্বল প্রবণতা, বিভিন্ন বাজারে হ্রাস পেতে পারে।
  2. ডাবল ইএমএ ক্রসওভারে পিছিয়ে পড়লে, কিছু সুযোগ মিস করতে পারেন।
  3. দুটি EMA এর মধ্যে বিশৃঙ্খল ক্রসওভার কার্যকরভাবে ফিল্টার করতে পারে না।
  4. এটি কেবলমাত্র সহজ EMA-র উপর নির্ভর করে, যা জটিল বাজারের সাথে মানিয়ে নেওয়া কঠিন।

স্টপ লস সেট করে, প্যারামিটারগুলি অপ্টিমাইজ করে, অন্যান্য সূচক যোগ করে ইত্যাদি ঝুঁকি হ্রাস করা যায়।

অপ্টিমাইজেশন

কৌশলটি নিম্নলিখিত দিকগুলিতে অপ্টিমাইজ করা যেতে পারেঃ

  1. সর্বোত্তম সমন্বয় খুঁজে পেতে বিভিন্ন বড় সময়সীমার ইএমএ পরামিতি পরীক্ষা করুন।
  2. মিথ্যা সংকেত এড়াতে ভলিউম ফিল্টার যুক্ত করুন।
  3. পজিশনের আকার এবং কার্যকারিতা বাড়ানোর জন্য প্রবণতা সূচক অন্তর্ভুক্ত করুন।
  4. একক ট্রেড লস নিয়ন্ত্রণের জন্য অভিযোজিত স্টপ লস সেট করুন।
  5. বাজারের অবস্থার উপর ভিত্তি করে পজিশন সাইজিং অপ্টিমাইজ করা।
  6. মেশিন লার্নিং মডেল যোগ করুন কৌশলকে আরো বুদ্ধিমান করার জন্য।

সিদ্ধান্ত

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


/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Noro's Singapore Strategy", shorttitle = "Singapore str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
tf = input("D", title = "Big Timeframe")
len = input(3, minval = 1, title = "MA length")
src = input(close, title = "MA Source")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//MAs
ma1 = request.security(syminfo.tickerid, tf, sma(src, len))
ma2 = sma(src, len)
plot(ma1, linewidth = 2, color = blue, title = "Big TF MA")
plot(ma2, linewidth = 2, color = red, title = "MA")

//Trading
size = strategy.position_size
lot = 0.0
lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1]

if ma2 > ma1
    strategy.entry("L", strategy.long, needlong ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if ma2 < ma1
    strategy.entry("S", strategy.short, needshort ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()

আরো