হাল মুভিং এভারেজ অসিলেটর ট্রেডিং কৌশল


সৃষ্টির তারিখ: 2023-10-07 15:24:31 অবশেষে সংশোধন করুন: 2023-10-07 15:24:31
অনুলিপি: 0 ক্লিকের সংখ্যা: 1028
1
ফোকাস
1617
অনুসারী

ওভারভিউ

এই কৌশলটি হল চলমান গড়ের উপর ভিত্তি করে একটি সংক্ষিপ্ত লাইন ট্রেডিং কৌশল। এই কৌশলটি হল চলমান গড়ের গোল্ডেন ফোর্স-ডেড ফোর্স ব্যবহার করে একটি ক্রয়-বিক্রয় সংকেত তৈরি করে এবং এটি একটি প্রবণতা-অনুসরণ কৌশল।

কৌশল নীতি

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

কিছু ভুয়া সংকেত ফিল্টার করার জন্য, কৌশলটি একটি হাল লাইন (Hull_Line) প্রবর্তন করে। হাল লাইনটি nma এবং n2ma এর মধ্যে পার্থক্যের জন্য একটি রৈখিক প্রত্যাবর্তনের ফলাফল। যখন দাম হাল লাইন থেকে বিচ্যুত হয়, তখন কৌশলটি একটি ক্রয় বা বিক্রয় সংকেতকে এড়িয়ে যায়।

বিশেষ করে, কৌশলগত নিয়মগুলি হলঃ

  1. গণনা nma, সময়কাল hullperiod

  2. n2ma গণনা করুন, nma চক্রের অর্ধেক

  3. n2ma এবং nma এর পার্থক্য গণনা করুন

  4. Hull_Line হল Hull_Line একটি চলমান গড় যা sqrt{\displaystyle \sqrt{{\mathrm {hull} }

  5. যখন দাম হাল লাইন অতিক্রম করে তখন একটি ক্রয় সংকেত দেওয়া হয়

  6. যখন দাম হুল লাইন অতিক্রম করে তখন বিক্রির সংকেত দিন

  7. যদি দাম হাল লাইন থেকে বিচ্যুত হয়, সিগন্যালটি এড়িয়ে যান

  8. একটি নির্দিষ্ট অনুপাত পজিশনে প্রবেশ করুন, একটি আউটপুট ক্ষতি বন্ধ করুন

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

এই কৌশলটির সুবিধাগুলো হলঃ

  1. Hull Moving Average-এর উপর ভিত্তি করে, ট্রেন্ডগুলি দ্রুত ধরা যায়, যার অর্থ হল যে ট্রেন্ডগুলি দ্রুত গতিতে চলতে থাকে।

  2. হুল লাইন ব্যবহার করে মিথ্যা সংকেত ফিল্টার করুন এবং সংকেতের গুণমান উন্নত করুন

  3. স্বল্প পরিসরে অপারেশনের জন্য উত্তম প্রত্যাহার ও ক্ষতির অনুপাত

  4. বিভিন্ন বাজারের অবস্থার সাথে সামঞ্জস্য রেখে প্যারামিটারগুলিকে নমনীয়ভাবে সামঞ্জস্য করা যায়

  5. রিভার্সাল স্টপ ব্যবহার করে, সময়মতো স্টপ করা যায় এবং ঝুঁকি নিয়ন্ত্রণ করা যায়

  6. মৌসুমের সাথে যুক্ত, নির্দিষ্ট সময়ের মধ্যে এড়ানো যায় এমন সিস্টেমিক ঝুঁকি

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

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

  1. ট্রেন্ড ট্র্যাকিং কৌশল, সারাদিন ট্রেড করা সম্ভব নয়

  2. ট্রেন্ডের বিপরীতমুখী প্রবণতা, বড় ক্ষতির কারণ হতে পারে

  3. মোবাইল এভারেজ সিস্টেম বিলম্বিত, সময়মত টার্নিং পয়েন্ট ধরতে ব্যর্থ

  4. অনেক সময়ই শর্ট লাইন ট্রেডিং হয়, যার ফলে লেনদেনের খরচ বেশি হয়।

  5. ভুল প্যারামিটার সেট করলে বাজারে আয় কমে যেতে পারে

উপরের ঝুঁকির জন্য, নিম্নলিখিত পদক্ষেপগুলি গ্রহণ করা যেতে পারেঃ

  1. মার্টিনগেল স্টপ লস কৌশল ব্যবহার করে একক ক্ষতি নিয়ন্ত্রণ করুন

  2. অপ্টিমাইজেশান প্যারামিটার, বিভিন্ন বাজার পরিবেশে প্যারামিটার দৃঢ়তা পরীক্ষা

  3. প্রবণতা নির্ণয়কারী সূচকগুলির সাথে মিলিত হয়ে বিপরীতমুখী পতন এড়াতে

  4. ট্রেডিং ফ্রিকোয়েন্সি কমানোর জন্য পজিশনের সময় বাড়ানো

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

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

  1. গতিশীলতার সূচকগুলির সাথে মিলিত হয়ে, প্রবণতার সূচনা পয়েন্টটি নির্ধারণ করুন এবং আরও ভালভাবে প্রবেশ করুন

  2. মেশিন লার্নিং মডেল যুক্ত করা, যা ট্রেন্ডের দিকনির্দেশনা এবং শক্তি নির্ধারণে সহায়তা করে

  3. রিয়েল-টাইম মার্কেটের উপর ভিত্তি করে প্যারামিটারগুলিকে সামঞ্জস্য করার জন্য স্বনির্ধারিত প্যারামিটার সেটিং ব্যবহার করে

  4. একাধিক সময়কালের জন্য হুল সিস্টেম কনফিগার করুন, বিভিন্ন সময়কালের জন্য বিভিন্ন অবস্থান কনফিগার করুন

  5. ট্রেডিং ভলিউম এনার্জি ইন্ডিকেটরের সাথে যুক্ত হয়ে কম ভলিউম এনার্জিতে ভুয়া ব্রেকডাউন এড়ানো

  6. পজিশন ম্যানেজমেন্ট মডিউল যোগ করা হয়েছে যা অস্থিরতার উপর ভিত্তি করে পজিশনগুলিকে গতিশীলভাবে সামঞ্জস্য করে

সারসংক্ষেপ

Hull Moving Average Oscillating Trading Strategy সামগ্রিকভাবে একটি খুব ব্যবহারিক সংক্ষিপ্ত লাইন ট্র্যাকিং কৌশল। এটি Hull Moving Average সিস্টেম ব্যবহার করে ট্রেন্ডের দিক নির্ধারণের জন্য এবং সুবিধার জন্য। এটি একটি একক মুভিং এভারেজ সিস্টেমের তুলনায় উচ্চতর সংকেত গুণমান এবং প্যারামিটারগুলির নমনীয়তা রয়েছে। এই কৌশলটির সুবিধাটি হ’ল দ্রুত ট্রেন্ডের রূপান্তরকে ক্যাপচার করা এবং কম প্রত্যাহারের সাথে লাভ করা; অসুবিধাটি হ’ল প্রবণতা বিপরীত হওয়ার সাথে মোকাবিলা করতে অক্ষম। আমরা প্যারামিটার অপ্টিমাইজেশন, স্টপ লস কৌশলটি উন্নত করা, সহায়ক মডেল যুক্ত করা ইত্যাদির মাধ্যমে ঝুঁকি নিয়ন্ত্রণ করতে পারি, যাতে কৌশলটি আরও স্থিতিশীল বাজারে চলতে পারে।

কৌশল সোর্স কোড
/*backtest
start: 2023-09-06 00:00:00
end: 2023-10-06 00:00:00
period: 6h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//                               Hull Moving Average Swing Trader by SEASIDE420
strategy("Hull Moving Average Swing Trader", shorttitle="HMA_Swing_Trader", default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=true, calc_on_every_tick=true, pyramiding=0)
hullperiod = input(title="HullMA Period", type=input.integer, defval=210, minval=1)
price = input(open, type=input.source, title="Price data")
FromMonth = input(defval=1, title="From Month", minval=1, maxval=12)
FromDay = input(defval=1, title="From Day", minval=1, maxval=31)
FromYear = input(defval=2020, title="From Year", minval=2017)
ToMonth = input(defval=1, title="To Month", minval=1, maxval=12)
ToDay = input(defval=1, title="To Day", minval=1, maxval=31)
ToYear = input(defval=9999, title="To Year", minval=2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
window() => true
n2ma = 2 * wma(price, round(hullperiod / 2))
nma = wma(price, hullperiod)
diff = n2ma - nma
sqn = round(sqrt(hullperiod))
n2ma1 = 2 * wma(price[1], round(hullperiod / 2))
nma1 = wma(price[1], hullperiod)
diff1 = n2ma1 - nma1
n1 = wma(diff, sqn)
n2 = wma(diff1, sqn)
Hull_Line = n1 / n1 * n2
Hull_retracted = if n1 > n2
    Hull_retracted = Hull_Line - 2
else
    Hull_retracted = Hull_Line + 2
c1 = Hull_retracted + n1 - price
c2 = Hull_retracted - n2 + price
c4 = n1 > n2 ? color.green : color.red
c2p = plot(c2, color=color.black, linewidth=1)
c3p = plot(price, color=color.black, linewidth=1)
fill(c3p, c2p, color=c4, transp=75)
//plot(cross(c1, c2) ? c1 : na, style=plot.style_circles, color=c4, linewidth=4)
if price < c2
    strategy.close("BUY", when=window())
if price > c2
    strategy.close("SELL", when=window())
if price > c2 and price[1] > c1
    strategy.entry("BUY", strategy.long, when=window())
if price < c1 and price[1] < c2
    strategy.entry("SELL", strategy.short, when=window())  //        /L'-, 
//                               ,'-.      `   ````                 /  L '-, 
//     .                    _,--dMMMM\        `   ` ` '`..         /       '-, 
//     :             _,--,  )MMMMMMMMM),.      `     ,<>          /_      '-,' 
//     ;     ___,--. \MM(    `-'   )M//MM\          ,',.;      .-'* ;     .' 
//     |     \MMMMMM) \MM\       ,dM//MMM/     ___ < ,; `.      )`--'    / 
//     |      \MM()M   MMM)__   /MM(/MP'  ___, \  \ `  `. `.   /__,    ,' 
//     |       MMMM/   MMMMMM( /MMMMP'__, \     | /      `. `-,_\     / 
//     |       MM     /MMM---' `--'_ \     |-'  |/         `./ .\----.___ 
//     |      /MM'   `--' __,-  \""   |-'  |_,               `.__) . .F. )-. 
//     |     `--'       \   \    |-'  |_,     _,-/            J . . . J-'-. `-., 
//     |         __  \`. |   |   |         \    / _           |. . . . \   `-.  F 
//     |   ___  /  \  | `|   '      __  \   |  /-'            F . . . . \     '` 
//     |   \  \ \  /  |        __  /  \  |  |,-'        __,- J . . . . . \ 
//     |    | /  |/     __,-  \  ) \  /  |_,-     __,--'     |. .__.----,' 
//     |    |/    ___     \    |'.  |/      __,--'           `.-;;;;;;;;;\ 
//     |     ___  \  \     |   |  `   __,--'                  /;;;;;;;;;;;;. 
//     |     \  \  |-'\    '    __,--'                       /;;;;;;;;;;;;;;\ 
// \   |      | /  |      __,--'                             `--;;/     \;-'\ 
//  \  |      |/    __,--'                                   /  /         \  \ 
//   \ |      __,--'                                        /  /           \  \ 
//    \|__,--'                                          _,-;M-K,           ,;-;\ 
//                                                     <;;;;;;;;           '-;;;; 
//                                                                                  :D