ডাবল মুভিং এভারেজ ক্রসওভার অ্যারো কৌশল

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

img

সারসংক্ষেপ

এই কৌশলটি MACD সূচকের দ্বৈত চলমান গড়ের ক্রসওভার গণনা করে ক্রয় এবং বিক্রয় সংকেত সনাক্ত করে। এটি ট্রেডিং সংকেত নির্দেশ করতে চার্টটিতে তীরগুলি গ্রাফ করে।

নীতিমালা

কৌশলটি প্রথমে দ্রুত রেখা (12 পিরিয়ড ইএমএ), ধীর রেখা (26 পিরিয়ড ইএমএ) এবং এমএসিডি পার্থক্য গণনা করে। এটি দ্রুত এবং ধীর রেখাগুলির ক্রসওভারের উপর ভিত্তি করে দীর্ঘ এবং সংক্ষিপ্ত সংকেতগুলি নির্ধারণ করে, পাশাপাশি এমএসিডি পার্থক্যের ইতিবাচক / নেতিবাচক মানঃ

  1. যখন দ্রুত রেখা ধীর রেখার উপরে অতিক্রম করে (গোল্ডেন ক্রস) এবং MACD পার্থক্য 0 এর উপরে অতিক্রম করে, এটি একটি ক্রয় সংকেত
  2. যখন দ্রুত রেখা ধীর রেখার নিচে অতিক্রম করে (মৃত্যু ক্রস) এবং MACD পার্থক্য 0 এর নিচে অতিক্রম করে, এটি একটি বিক্রয় সংকেত

মিথ্যা সংকেতগুলি ফিল্টার করতে, কোডটি পূর্ববর্তী মোমবাতিগুলির সংকেতগুলিও পরীক্ষা করে। বর্তমান সংকেতটি কেবলমাত্র যদি পূর্ববর্তী মোমবাতিগুলির বিপরীত সংকেত থাকে (ক্রয় বনাম বিক্রয় বা বিপরীতভাবে) তখনই ট্রিগার হয়।

উপরন্তু, ক্রয় এবং বিক্রয় সংকেত নির্দেশ করার জন্য চার্টে তীরের আকারগুলি চিহ্নিত করা হয়।

সুবিধা

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

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

ঝুঁকি এবং সমাধান

এই কৌশলটির কিছু ঝুঁকিঃ

  1. ক্রসওভারগুলি মিথ্যা সংকেত তৈরি করতে পারে এবং অতিরিক্ত ট্রেডিংয়ের কারণ হতে পারে। মিথ্যা সংকেতগুলি হ্রাস করার জন্য পরামিতিগুলি সামঞ্জস্য করা বা অতিরিক্ত ফিল্টার যুক্ত করা যেতে পারে।
  2. একটি প্রবণতা মধ্যে ব্যাপ্তি পার্থক্য করতে অক্ষম, সম্ভাব্য ক্ষতির দিকে পরিচালিত। ADX মত প্রবণতা সূচক যোগ এই এড়াতে পারেন।
  3. স্থির নিয়ম পরিবর্তনশীল বাজারের সাথে মানিয়ে নিতে পারে না। মেশিন লার্নিং সম্ভাব্যভাবে এটি অপ্টিমাইজ করতে পারে।

উন্নতির সুযোগ

কৌশল উন্নত করার কিছু উপায়:

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

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

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


/*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
//Daniels stolen code
strategy(shorttitle="Daniels Stolen Code", title="Daniels Stolen Code", overlay=true, calc_on_order_fills=true, pyramiding=0)

//Define MACD Variables
fast = 12, slow = 26
fastMACD = ema(hlc3, fast)
slowMACD = ema(hlc3, slow)
macd = fastMACD - slowMACD
signal = sma(macd, 9)
hist = macd - signal
currMacd = hist[0]
prevMacd = hist[1]
currPrice = hl2[0]
prevPrice = hl2[1]

buy = currPrice > prevPrice and currMacd > prevMacd
sell = currPrice < prevPrice and currMacd < prevMacd
neutral = (currPrice < prevPrice and currMacd > prevMacd) or (currPrice > prevPrice and currMacd < prevMacd)
//Plot Arrows

timetobuy = buy==1 and (sell[1]==1 or (neutral[1]==1 and sell[2]==1) or (neutral[1]==1 and neutral[2]==1 and sell[3]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and sell[4]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and neutral[4]==1 and sell[5]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and neutral[4]==1 and neutral[5]==1 and sell[6]==1))
timetosell = sell==1 and (buy[1]==1 or (neutral[1]==1 and buy[2]==1) or (neutral[1]==1 and neutral[2]==1 and buy[3]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and buy[4]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and neutral[4]==1 and buy[5]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and neutral[4]==1 and neutral[5]==1 and buy[6]==1))

plotshape(timetobuy, color=blue, location=location.belowbar, style=shape.arrowup)
plotshape(timetosell, color=red, location=location.abovebar, style=shape.arrowdown)
//plotshape(neutral, color=black, location=location.belowbar, style=shape.circle)


//Test Strategy
// strategy.entry("long", true, 1, when = timetobuy and time > timestamp(2017, 01, 01, 01, 01)) // buy by market if current open great then previous high
// strategy.close("long", when = timetosell and time > timestamp(2017, 01, 01, 01, 01))

strategy.order("buy", true, 1, when=timetobuy==1 and time > timestamp(2019, 01, 01, 01, 01))
strategy.order("sell", false, 1, when=timetosell==1 and time > timestamp(2019, 01, 01, 01, 01))



// strategy.entry(id = "Short", long = false, when = enterShort())
// strategy.close(id = "Short", when = exitShort())

//strategy.entry("long", true, 1, when = open > high[1]) // enter long by market if current open great then previous high
// strategy.exit("exit", "long", profit = 10, loss = 5) // ge

আরো