ডাবল মুভিং এভারেজ ব্রেকআউট কোয়ান্টিটেটিভ ট্রেডিং কৌশল


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

ডাবল মুভিং এভারেজ ব্রেকআউট কোয়ান্টিটেটিভ ট্রেডিং কৌশল

ওভারভিউ

ডাবল-ইউরো লাইন ব্রেকডাউন কৌশলটি একটি পরিমাণগত ট্রেডিং কৌশল যা একটি প্রচলিত ট্রেন্ড ট্র্যাকিং কৌশল। এই কৌশলটি বিভিন্ন পিরিয়ডের সহজ চলমান গড় গণনা করে এবং ট্রেডিং সিগন্যালকে দামের ব্রেকডাউন হিসাবে নির্ধারণ করে। এই কৌশলটি 20 দিনের লাইন এবং 60 দিনের লাইনকে ট্রেডিং সিগন্যাল হিসাবে ব্যবহার করে।

কৌশল নীতি

এই কৌশলটির মূল যুক্তি হচ্ছেঃমুভিং এভারেজ ব্যবহার করে বিভিন্ন পিরিয়ডের মুভিং এভারেজ ব্যবহার করে মূল্য প্রবণতা ধরা যায় এবং মুভিং এভারেজ অতিক্রম করলে ট্রেডিং সিগন্যাল দেওয়া হয়

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

কোডে পাসta.crossoverএবংta.crossunderএকটি চলমান গড়ের ব্রেকিং বা প্যাডিংয়ের ব্যাপারে সিদ্ধান্ত নেওয়ার জন্য। যখন ব্রেকিং হয়, তখন প্যাডিং বা প্যাডিং করার নির্দেশ দেওয়া হয়।

কৌশলগত সুবিধা

ডাবল ইভ্যালিউড ব্রেক-আউট কৌশলটি নিম্নলিখিত সুবিধাগুলি নিয়ে আসেঃ

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

কৌশলগত ঝুঁকি

কিন্তু এই কৌশলটি কিছু ঝুঁকি নিয়েও কাজ করেঃ

  1. যখন বাজার একটি অস্থির প্রবণতায় থাকে, তখন বারবার ভুল সংকেত তৈরি হয়। এটি হোল্ডিং চক্র বাড়িয়ে প্রশমিত করা যেতে পারে।
  2. দ্রুত পাল্টা বাজারকে কার্যকরভাবে ধরা যায় না। ফিল্টার হিসাবে অন্যান্য সূচকগুলির সাথে মিলিত হতে পারে।
  3. মুভিং এভারেজ inherently lagging, price changes to which it cannot react in advance. ⇒ মূল্য পরিবর্তনের প্রতি প্রতিক্রিয়া জানাতে অক্ষম। যথাযথভাবে চক্রের উন্নতি করতে পারে।

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

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

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

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2024-01-04 00:00:00
end: 2024-02-03 00:00:00
period: 4h
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/
// © Astorhsu

//@version=5
strategy("Astor SMA20/60", overlay=true)
backtest_year = input(2018, title='backtest_year') //回測開始年分
backtest_month = input.int(01, title='backtest_month', minval=1, maxval=12) //回測開始月份
backtest_day = input.int(01, title='backtest_day', minval=1, maxval=31)  //回測開始日期
start_time = timestamp(backtest_year, backtest_month, backtest_day, 00, 00)  //回測開始的時間函數

//Indicators
sma10 = ta.sma(close,10)
sma20 = ta.sma(close,20)
sma60 = ta.sma(close,60)
plot(sma20, color=color.green, title="sma(20)")
plot(sma60, color=color.red, title="sma(60)")

//進場條件
// trend1 = sma60 > sma20 //假設目前趨勢為60>20
longCondition = ta.crossover(close, ta.sma(close, 20))
if (longCondition) 
    strategy.entry("open long20", strategy.long, qty=1, comment="站上m20做多")


shortCondition = ta.crossunder(close, ta.sma(close, 20))
if (shortCondition) 
    strategy.close("open long20",comment="跌破m20平倉", qty=1)     
    
longCondition1 = ta.crossover(close, ta.sma(close, 60))
if (longCondition1) 
    strategy.entry("open long60", strategy.long, qty=1, comment="站上m60做多")


shortCondition1 = ta.crossunder(close, ta.sma(close, 60))
if (shortCondition1) 
    strategy.close("open long60",comment="跌破m60平倉", qty=1)     
    
// longCondition2 = ta.crossover(close, ta.sma(close, 10))
// if (longCondition2) 
//     strategy.entry("open long10", strategy.long, qty=1, comment="站上m10做多")


// shortCondition2 = ta.crossunder(close, ta.sma(close, 10))
// if (shortCondition2)
//     strategy.close("open long10",comment="跌破m10平倉", qty=1)