ওয়েটেড মুভিং এভারেজ ক্রসওভারের উপর ভিত্তি করে পরিমাণগত ট্রেডিং কৌশল


সৃষ্টির তারিখ: 2023-12-06 12:05:01 অবশেষে সংশোধন করুন: 2023-12-06 12:05:01
অনুলিপি: 0 ক্লিকের সংখ্যা: 626
1
ফোকাস
1619
অনুসারী

ওয়েটেড মুভিং এভারেজ ক্রসওভারের উপর ভিত্তি করে পরিমাণগত ট্রেডিং কৌশল

ওভারভিউ

এই কৌশলটির নাম হচ্ছেওজনযুক্ত পরিমাণগত চলমান গড় ক্রস কৌশল(Weighted Quantitative Moving Average Crossover Strategy), এর মূল ধারণা হল দাম, লেনদেনের পরিমাণ এবং অন্যান্য একাধিক সূচককে একত্রিত করে দ্রুত লাইন এবং ধীর লাইন ডিজাইন করা এবং যখন তারা গোল্ড ফর্ক এবং ডেড ফর্ক ঘটে তখন ক্রয় এবং বিক্রয় সংকেত দেওয়া।

কৌশল নীতি

এই কৌশলটির কেন্দ্রীয় সূচকটি হল একটি পরিমাণগত চলমান গড় (QMA) । QMA একটি সময়ের জন্য একটি ওজনযুক্ত গড় মূল্য গণনা করে একটি প্রবণতা দিক পরিমাপ করে। এটি সাধারণ চলমান গড় থেকে পৃথক যেখানে দামের ওজন (ওজন = দাম)*ট্রেডিং ভলিউম) সময়ের সাথে সাথে হ্রাস পায়। এইভাবে, সাম্প্রতিক মূল্যের ওজন বেশি হয় এবং বাজারের পরিবর্তনের দ্রুত প্রতিক্রিয়া জানানো যায়।

বিশেষত, এই কৌশলটি দ্রুত QMA লাইন এবং ধীর QMA লাইন তৈরি করে। দ্রুত লাইন প্যারামিটারটি 25 দিন এবং ধীর লাইন প্যারামিটারটি 29 দিনের জন্য সেট করা হয়েছে। যখন দ্রুত লাইনটি নীচে থেকে ধীর লাইনটি অতিক্রম করে তখন একটি কেনার সংকেত উত্পন্ন হয়; যখন দ্রুত লাইনটি উপরে থেকে নীচে ধীর লাইনটি অতিক্রম করে তখন একটি বিক্রয় সংকেত উত্পন্ন হয়।

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

সাধারণ চলমান গড়ের তুলনায় এই কৌশলটির নিম্নলিখিত সুবিধাগুলি রয়েছেঃ

  1. মার্কেটে দ্রুত সাড়া দিতে পারে এবং সময়মত সংক্ষিপ্ত সুযোগ নিতে পারে
  2. দাম এবং লেনদেনের ভলিউমের একাধিক মাত্রা একত্রিত করে, যা আরও স্থিতিশীল করে তোলে
  3. প্যারামিটার সেটিং নমনীয়, বিভিন্ন বাজারের অবস্থার সাথে খাপ খাইয়ে নিতে পারে

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

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

  1. ট্রেডিং খরচ এবং স্লাইড পয়েন্ট বাড়ানোর জন্য ঘন ঘন শর্ট লাইন অপারেশন
  2. PARAMETERS অতিরিক্ত অপ্টিমাইজেশান, যা কার্ভ ফিট হতে পারে
  3. কম লেনদেনের ফলে সূচকটি হ্রাস পেতে পারে

উপরের ঝুঁকিগুলি যথাযথভাবে প্যারামিটার ফ্রিকোয়েন্সি, কঠোর ওয়াক ফরওয়ার্ড বিশ্লেষণ এবং অন্যান্য সূচকগুলির সাথে মিলিত হয়ে প্রশমিত করা যেতে পারে।

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

এই কৌশলটি আরও উন্নত করার সুযোগ রয়েছেঃ

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

সারসংক্ষেপ

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

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

//@version=3
strategy("Brad VWMACD Strategy 2233", overlay=false, max_bars_back=500,default_qty_type=strategy.percent_of_equity,commission_type=strategy.commission.percent, commission_value=0.18, default_qty_value=100)

// === INPUT BACKTEST RANGE === 
FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, 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)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"

// === INPUT SMA === 
//fastMA    = input(defval = 16, type = integer, title = "FastMA", minval = 1 )
//slowMA    = input(defval = 23, type = integer, title = "SlowMA", minval = 1)

fastMA    = input(defval = 25, title = "FastMA", minval = 1 )
slowMA    = input(defval = 29,  title = "SlowMA", minval = 1)

Long_period = slowMA
Short_period = fastMA
Smoothing_period = input(9, minval=1)
xLongMAVolPrice = ema(volume * close, Long_period) 
xLongMAVol = ema(volume, Long_period) 
xResLong = (xLongMAVolPrice * Long_period) / (xLongMAVol * Long_period)
xShortMAVolPrice = ema(volume * close, Short_period) 
xShortMAVol = ema(volume, Short_period) 
xResShort = (xShortMAVolPrice * Short_period) / (xShortMAVol * Short_period)
xVMACD = xResShort - xResLong
xVMACDSignal = ema(xVMACD, Smoothing_period)
nRes = xVMACD - xVMACDSignal
//plot(nRes*20+slowMA, color=blue, style = line )
//plot(3000, color=red, style = line )


// === SERIES SETUP ===

buy  = crossover( xVMACD,xVMACDSignal)     // buy when fastMA crosses over slowMA
sell = crossunder( xVMACD,xVMACDSignal)  // sell when fastMA crosses under slowMA


// === SERIES SETUP === 

//buy  = crossover(vwma(close, fastMA),7+vwma(close, slowMA))     // buy when fastMA crosses over slowMA
//sell = crossunder(vwma(close, fastMA),vwma(close, slowMA)-7)    // sell when fastMA crosses under slowMA

// === EXECUTION ===
strategy.entry("L", strategy.long, when = window() and buy)  // buy long when "within window of time" AND crossover
strategy.close("L", when = window() and sell)                // sell long when "within window of time" AND crossunder         

// === EXECUTION ===
strategy.entry("S", strategy.short, when = window() and sell)  // buy long when "within window of time" AND crossover
strategy.close("S", when = window() and buy)                // sell long when "within window of time" AND crossunder         

plotshape(window() and buy, style=shape.triangleup, color=green, text="up")
plotshape(window() and sell, style=shape.triangledown, color=red, text="down")
plot(xVMACD*100, title = 'FastMA', color = orange, linewidth = 2, style = line)  // plot FastMA
plot(xVMACDSignal*100, title = 'SlowMA', color = aqua, linewidth = 2, style = line)    // plot SlowMA