গতিশীল মুভিং এভারেজ কৌশল


সৃষ্টির তারিখ: 2023-11-23 11:39:24 অবশেষে সংশোধন করুন: 2023-11-23 11:39:24
অনুলিপি: 0 ক্লিকের সংখ্যা: 657
1
ফোকাস
1621
অনুসারী

গতিশীল মুভিং এভারেজ কৌশল

ওভারভিউ

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

কৌশল নীতি

এই কৌশলটি একটি চলমান গড়ের জন্য দৈর্ঘ্যের চক্রের উত্স মূল্য ব্যবহার করে। উত্স মূল্য OHLC4, HLC3, বন্ধের মূল্য ইত্যাদি চয়ন করতে পারে। গণনা করা চলমান গড়টি sma হিসাবে সংজ্ঞায়িত করা হয়। তারপরে চলমান গড়ের মানের অনুপাত অনুসারে দীর্ঘ এবং সংক্ষিপ্ত লাইনটি আঁকা হয় এবং দীর্ঘ এবং সংক্ষিপ্ত লাইনের অবস্থানের সম্পর্কের মাধ্যমে এটি নির্ধারণ করা হয় যে এটি বর্তমানে উত্থানের প্রবণতা বা পতনের প্রবণতা রয়েছে।

সংক্ষিপ্ত রেখার জন্য, সংক্ষিপ্ত রেখার জন্য গণনা সূত্রটি হলঃ সংক্ষিপ্ত রেখা = স্ম * ((100 + সংক্ষিপ্ত স্তর) / 100), যেখানে সংক্ষিপ্ত স্তরটি ব্যবহারকারীর দ্বারা সেট করা একটি ধনাত্মক সংখ্যা, যা সংক্ষিপ্ত রেখার দূরত্বের চলমান গড়ের অনুপাতকে উপস্থাপন করে। দীর্ঘ রেখার জন্য অনুরূপ, গণনা সূত্রটি হলঃ দীর্ঘরেখা = স্ম * ((100 + দীর্ঘ স্তর) / 100), দীর্ঘ স্তরটি ব্যবহারকারীর দ্বারা সেট করা একটি নেতিবাচক সংখ্যা, যা দীর্ঘ রেখার দূরত্বের চলমান গড়ের অনুপাতকে উপস্থাপন করে।

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

ট্রেন্ডের সমাপ্তি হল যখন দামটি মুভিং ইভেনের দিকে ফিরে আসে, যা পূর্বের সমস্ত পজিশনকে সমতল করে দেয়।

এইভাবে, প্রবণতার দিকনির্দেশের বিচার করা যায় এবং প্রবেশ এবং প্রস্থানগুলিকে দীর্ঘ এবং সংক্ষিপ্ত লাইনের সাথে চলমান গড়ের গতিশীল সম্পর্কের মাধ্যমে নির্ধারণ করা যায়।

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

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

দ্বিতীয়ত, চলমান গড়ের নিজস্ব একটি তরঙ্গের প্রভাব রয়েছে, যা উচ্চ-ফ্রিকোয়েন্সি ঝাঁকুনির দ্বারা আবদ্ধ হওয়া এড়াতে পারে। চলমান গড়ের স্তরের উপর ভিত্তি করে ট্রেন্ডের সমাপ্তি নির্ধারণের জন্য সময়মতো খেলা করাও অত্যন্ত গুরুত্বপূর্ণ।

কৌশলগত ঝুঁকি

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

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

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

এই কৌশলটি আরও উন্নত করা যেতে পারে নিম্নলিখিত ক্ষেত্রেঃ

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

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2022-11-16 00:00:00
end: 2023-11-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy(title = "Noro's ShiftMA Strategy v1.1", shorttitle = "ShiftMA str 1.1", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 100)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
per = input(3, title = "Length")
src = input(ohlc4, title = "Source")
shortlevel = input(10.0, title = "Short line (red)")
longlevel = input(-5.0, title = "Long line (lime)")
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")

//SMAs
sma = sma(src, per) 
//sma = lowest(low, per)
shortline = sma * ((100 + shortlevel) / 100)
longline = sma * ((100 + longlevel) / 100)
plot(shortline, linewidth = 2, color = red, title = "Short line")
plot(sma, linewidth = 2, color = blue, title = "SMA line")
plot(longline, linewidth = 2, color = lime, title = "Long line")

//plot(round(buy * 100000000), linewidth = 2, color = lime)
//plot(round(sell * 100000000), linewidth = 2, color = red)

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

if (not na(close[per])) and size == 0 and needlong
    strategy.entry("L", strategy.long, lot, limit = longline, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if (not na(close[per])) and size == 0 and needshort
    strategy.entry("S", strategy.short, lot, limit = shortline, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if (not na(close[per])) and size > 0 
    strategy.entry("Close", strategy.short, 0, limit = sma, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if (not na(close[per])) and size < 0 
    strategy.entry("Close", strategy.long, 0, limit = sma, 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()