ডাবল মুভিং এভারেজ গোল্ডেন ক্রস এবং ডেড ক্রস কৌশলের উপর ভিত্তি করে


সৃষ্টির তারিখ: 2024-02-27 16:21:02 অবশেষে সংশোধন করুন: 2024-02-27 16:21:02
অনুলিপি: 0 ক্লিকের সংখ্যা: 686
1
ফোকাস
1617
অনুসারী

ডাবল মুভিং এভারেজ গোল্ডেন ক্রস এবং ডেড ক্রস কৌশলের উপর ভিত্তি করে

ওভারভিউ

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

কৌশল নীতি

এই কৌশলটির মূল যুক্তি হল, দুইটি ধীর ও দ্রুত গড়রেখার সংমিশ্রণের উপর ভিত্তি করে খেলার সময় নির্ধারণ করা।

প্রথমত, ধীর গড়ের দুটি সেট গণনা করা যাকঃ

  • প্রথম ধাপের দ্রুত ইএমএ, আট দিনের জন্য
  • দ্বিতীয় ধাপের দ্রুত ইএমএ, ২১ দিন
  • প্রথম ধীর গতির এসএমএ, ৫০ দিন
  • দ্বিতীয় ধীর গতির এসএমএ, ২০০ দিন

তারপর, বিচার করুন যে দ্রুত ইএমএ হল গোল্ডফোর্ক বা ধীর গতির এসএমএ হল ডেডফোর্কঃ

  • যদি 8 ইএমএ 50 দিনের এসএমএ অতিক্রম করে তবে এটি একটি গোল্ডফোর্ক সিগন্যাল
  • যদি 8 দিনের EMA এর নিচে 50 দিনের SMA অতিক্রম করে, তাহলে এটি একটি মৃত ফর্কের সংকেত

দ্বিতীয় সেট ইএমএ এবং এসএমএ নিশ্চিতকরণ যুক্ত করা হয়েছে, যাতে ভুয়া সংকেতগুলি ফিল্টার করা যায়ঃ

  • ট্রেডিং সিগন্যাল তখনই দেওয়া হয় যখন ২১ তারিখের ইএমএ ৫০ দিনের এসএমএ অতিক্রম করে বা অতিক্রম করে

এইভাবে, দুটি ধীরে ধীরে সমান্তরাল নিশ্চিতকরণের মাধ্যমে, অনেকগুলি মিথ্যা সংকেতগুলি ফিল্টার করা যায়, যার ফলে সংকেতের নির্ভরযোগ্যতা বৃদ্ধি পায়।

যখন সিদ্ধান্তটি ক্রয় সংকেত দেয়, তখন আরও প্রবেশ করুন; যখন সিদ্ধান্তটি বিক্রয় সংকেত দেয়, তখন খালি প্রবেশ করুন।

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

সামর্থ্য বিশ্লেষণ

এই কৌশলটির বেশ কিছু সুবিধা রয়েছেঃ

  1. দ্বৈত সমান্তরাল সংমিশ্রণ ব্যবহার করে, কার্যকরভাবে মিথ্যা সংকেত ফিল্টার করে, সংকেত নির্ভুলতা উন্নত করে
  2. ইএমএ এবং এসএমএর সমন্বয় ব্যবহার করে, ইএমএর সাম্প্রতিক মূল্য পরিবর্তনগুলির সংবেদনশীলতা এবং এসএমএর মসৃণতা
  3. স্টপ লস সেট করুন, লভ্যাংশ লক করুন, ঝুঁকি নিয়ন্ত্রণ করুন
  4. সহজ এবং সুস্পষ্ট নীতি, সহজে বোঝা এবং পরিবর্তন করা যায়
  5. বিভিন্ন বাজারের পরিবেশের জন্য কাস্টমাইজযোগ্য প্যারামিটার

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

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

  1. সমান্তরাল কৌশলগুলি ছোট লাভ এবং ক্ষুদ্র ক্ষতির জন্য বেশি ঝাঁকুনি তৈরি করতে পারে
  2. প্রবণতার তীব্র পরিবর্তনের সময় বড় ক্ষতি হতে পারে
  3. ভুল প্যারামিটার সেট করাও মুনাফা অর্জনের জন্য ক্ষতিকর

ঝুঁকি কমানোর জন্য, পরামর্শ দেওয়া হচ্ছেঃ

  1. বিভিন্ন বাজারের অবস্থার সাথে সামঞ্জস্য রেখে প্যারামিটার প্যাকেজগুলি যথাযথভাবে সামঞ্জস্য করুন
  2. রিটার্নিং ফলাফলের উপর ভিত্তি করে প্যারামিটারগুলিকে অপ্টিমাইজ করুন, যাতে কৌশলগুলি লক্ষ্য বাজারের জন্য আরও উপযুক্ত হয়
  3. একক ক্ষতির আকার নিয়ন্ত্রণ করতে স্টপ লস সেট করুন

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

এই কৌশলটি নিম্নলিখিত দিকগুলি থেকেও উন্নত করা যেতে পারেঃ

  1. আরও দ্রুত এবং ধীর গড় সমন্বয় পরীক্ষা করুন, সর্বোত্তম প্যারামিটার সমন্বয় খুঁজুন
  2. মেশিন লার্নিং বা জেনেটিক্যাল অ্যালগরিদম ব্যবহার করে স্বয়ংক্রিয়ভাবে শ্রেষ্ঠত্বের প্যারামিটার খুঁজে বের করা
  3. ট্রেডিংয়ে বিপরীতমুখী ট্রেডিং এড়াতে ট্রেডিং সূচক বাড়ানো
  4. মুনাফা লক করার জন্য চলমান স্টপ বা মুভিং স্টপ বাড়ানো
  5. ট্রেডিং ভলিউম বা অস্থিরতা সূচকগুলির সাথে সংযুক্ত সংকেতের নির্ভরযোগ্যতা বাড়ান
  6. মাল্টি স্ট্র্যাটেজি/মাল্টি-প্রজাতি সমন্বয়, অপ্রাসঙ্গিকতা ব্যবহার করে ঝুঁকি ছড়িয়ে দেওয়া

সারসংক্ষেপ

সামগ্রিকভাবে, এই দ্বি সমান্তরাল ফোরক্লোজার কৌশলটি দ্রুত এবং ধীর সমান্তরালের ক্রস দ্বারা ট্রেডিং সংকেত গঠন করে, স্টপ-অফ-ক্ষতি নিয়ন্ত্রণ ঝুঁকি সেট করে, সহজ, স্বজ্ঞাত এবং সহজেই বাস্তবায়িত। এই কৌশলটি বাজার এবং চাহিদা অনুসারে প্যারামিটার অপ্টিমাইজ করা যায় এবং অন্যান্য প্রযুক্তিগত সূচক বা কৌশলগুলির সংমিশ্রণে ব্যবহার করা যেতে পারে, যা পরিমাণগত ব্যবসায়ের ক্ষেত্রে খুব কার্যকর।

কৌশল সোর্স কোড
/*backtest
start: 2023-02-20 00:00:00
end: 2024-02-26 00:00:00
period: 1d
basePeriod: 1h
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/
// © JMLSlop

//@version=4

src = close
strategy("Crossover moving averages", shorttitle="Cross MA-EMA", overlay=true, calc_on_order_fills=false)

// first fast EMA
len = input(8, "Length", type=input.integer, minval=1)
doma1 = input(true, title="EMA")
out1 = ema(src, len) 

//Second fast EMA
len2 = input(21, minval=1, title="Length")
doma2 = input(true, title="EMA")
out2 = ema(src, len2)

//First slow MA
len3 = input(50, minval=1, title="Length")
doma3 = input(true, title="SMA")
out3 = sma(src, len3)

//Second slow MA
len4 = input(200, minval=1, title="Length")
doma4 = input(true, title="SMA")
out4 = sma(src, len4)

// Profit
profit = input(8, "Profit/lost %", type=input.float, minval=1) * 0.01


plot(doma1 and out1 ? out1: na, color=color.blue, linewidth=1, title="1st EMA")
plot(doma2 and out2 ? out2: na, color=color.red, linewidth=1, title="2nd EMA")
plot(doma3 and out3 ? out3: na, color=color.green, linewidth=2, title="1st MA")
plot(doma4 and out4 ? out4: na, color=color.orange, linewidth=3, title="2nd MA")

// Orders config
takeProfitPrice =
     (strategy.position_size > 0) ? strategy.position_avg_price + open*profit : (strategy.position_size < 0) ? strategy.position_avg_price - (open*profit) : na

longStopPrice  = strategy.position_avg_price * (1 - profit)
shortStopPrice = strategy.position_avg_price * (1 + profit)

longCondition2 = (out2>out3 and (crossover(out1, out4) or crossover(out1[1], out4[1]) or crossover(out1[2], out4[2]) or (crossover(out1[3], out4[3]))) or (out2>out3 and (crossover(out1, out3) or crossover(out1[1], out3[1]) or crossover(out1[2], out3[2]) or crossover(out1[3], out3[3]))))
if (longCondition2)
    strategy.entry("Enter L", strategy.long)

shortCondition2 = (out2<out3 and (crossunder(out1, out4) or crossunder(out1[1], out4[1]) or crossunder(out1[2], out4[2]) or crossunder(out1[3], out4[3]))) or (out2<out3 and (crossunder(out1, out3) or crossunder(out1[1], out3[1]) or crossunder(out1[2], out3[2]) or crossunder(out1[3], out3[3])))
if (shortCondition2)
    strategy.entry("Enter S", strategy.short)


if (strategy.position_size > 0)
    strategy.exit("Exit L", limit=takeProfitPrice, stop=longStopPrice)

if (strategy.position_size < 0)
    strategy.exit("Exit S", limit=takeProfitPrice, stop=shortStopPrice)