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


সৃষ্টির তারিখ: 2024-01-25 15:31:21 অবশেষে সংশোধন করুন: 2024-01-25 15:31:21
অনুলিপি: 2 ক্লিকের সংখ্যা: 691
1
ফোকাস
1617
অনুসারী

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

ওভারভিউ

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

কৌশল নীতি

এই কৌশলটির কেন্দ্রীয় সূচক হল nRes, যা নিম্নলিখিত সূত্রের মাধ্যমে গণনা করা হয়ঃ

xMAVolPrice = ema(volume * close, length) 
xMAVol = ema(volume, length)
nRes = xMAVolPrice / xMAVol

এর মধ্যে, xMAVolPrice হল ক্লোজিং প্রাইস ও লেনদেনের পরিমাণের গুণিতক সূচকীয় চলমান গড়, যা মূল্য ও লেনদেনের পরিমাণের সমন্বিত তথ্য প্রতিফলিত করে; xMAVol হল লেনদেনের পরিমাণের সূচকীয় চলমান গড়; nRes হল দুটি সূচকের চলমান গড়ের অনুপাত, যা সমন্বিত মূল্যের তথ্য প্রতিফলিত করে।

এই কৌশলটি nRes এবং সর্বশেষ বন্ধের মূল্যের মধ্যে বড়ো-বড়ো সম্পর্কের বিচার করে সিদ্ধান্ত নেয় যে, কোন দিকে বেশি shorting করা উচিতঃ

if (nRes < close[1]) 
    做多
if (nRes > close[1])
    做空

যদি nRes সর্বশেষ বন্ধের দামের চেয়ে কম হয়, তবে লেনদেনের পরিমাণের পরে দামটি সর্বশেষ দামের চেয়ে কম এবং এটি একটি কেনার সংকেত; যদি nRes সর্বশেষ বন্ধের দামের চেয়ে বেশি হয়, তবে লেনদেনের পরিমাণের পরে দামটি সর্বশেষ দামের চেয়ে বেশি এবং এটি একটি বিক্রয় সংকেত।

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

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

এই কৌশলটির প্রধান সুবিধাগুলো হল:

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

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

  3. এই কৌশলটির সূচকীয় চলমান গড়গুলি সহজ চলমান গড়ের মতো সূচকগুলির তুলনায় সর্বশেষ তথ্যের প্রতি আরও সংবেদনশীল এবং সাম্প্রতিক বাজার পরিবর্তনগুলিকে আরও দ্রুত ধরতে পারে।

  4. সহজেই বাস্তবায়নযোগ্য। কৌশলটি সহজ এবং স্পষ্ট, সহজেই বোঝা যায় এবং বাস্তবায়ন করা যায়, যা পরিমাণগত লেনদেনের প্রয়োজনীয়তার জন্য উপযুক্ত।

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

এই কৌশলটির কিছু সুবিধা থাকলেও, এর কিছু ঝুঁকিও রয়েছেঃ

  1. ☞ ☞ ☞ ☞ ☞ ☞ ☞

  2. ট্রেডিংয়ে কম ট্রেডিংয়ের সম্ভাবনা রয়েছে, কারণ ট্রেডিংয়ে কম ট্রেডিংয়ের সম্ভাবনা রয়েছে।

  3. প্যারামিটার বাছাই করা কঠিন। চলমান দৈনিক গড় দৈর্ঘ্যের মতো প্যারামিটারগুলির পছন্দগুলি কৌশলটির কার্যকারিতার উপর ব্যাপক প্রভাব ফেলতে পারে, এবং ভুল পছন্দগুলি আয়কে উল্লেখযোগ্যভাবে হ্রাস করতে পারে।

  4. দ্রুত চলমান পরিস্থিতিতে, সূচক গণনা সর্বশেষ মূল্যের সাথে প্রতিক্রিয়া জানাতে পারে না, যার ফলে সর্বোত্তম ব্যবসায়ের সময় মিস করার ঝুঁকি থাকে।

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

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

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

  1. আরও নমনীয় পজিশন খোলার লজিক। আপনি যখন nRes এবং বন্ধের মূল্যের পার্থক্যটি কোনও হ্রাসের চেয়ে বড় হয় তখন পজিশন খুলতে পারেন, কেবলমাত্র দ্বি-শ্রেণিবদ্ধ সিদ্ধান্তের পরিবর্তে, আরও সুযোগগুলি দখল করতে পারেন।

  2. পজিশন ম্যানেজমেন্ট ম্যানেজমেন্ট ম্যানেজমেন্ট বাড়ানো হয়েছে। আপনি বাজারের অস্থিরতার উপর ভিত্তি করে প্রতিটি লেনদেনের অবস্থানের আকারকে গতিশীলভাবে সামঞ্জস্য করতে পারেন এবং ঝুঁকিগুলি কার্যকরভাবে নিয়ন্ত্রণ করতে পারেন।

  3. অন্যান্য কারণের সাথে মিলিত হওয়া। আরও কিছু কারণ যুক্ত করা যেতে পারে, যেমন আবেগের সূচক, মৌলিক কারণ ইত্যাদি, যাতে কৌশলগত বিচার আরও ব্যাপক হয়।

  4. প্যারামিটার স্বনির্ধারণ অপ্টিমাইজেশান: অ্যালগরিদম স্বয়ংক্রিয়ভাবে অপ্টিমাইজেশান দৈর্ঘ্যের মতো প্যারামিটার তৈরি করতে পারে, যাতে এটি বিভিন্ন সময়কালের পরিস্থিতির বৈশিষ্ট্য অনুসারে স্বনির্ধারণ করতে পারে।

  5. মেশিন লার্নিং মডেল ব্যবহার করে। ডিপ লার্নিং মডেল যেমন আরএনএন ব্যবহার করে মাল্টি-ডাইমেনশনাল বৈশিষ্ট্যের মডেলিং করা যেতে পারে, যার ফলে এন্ড-টু-এন্ড নন-লাইন কৌশল বাস্তবায়িত হতে পারে।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 06/03/2017
// The related article is copyrighted material from Stocks & Commodities 2009 Oct 
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Combining Exponential And Volume Weighting", overlay=true)
length = input(22, minval=1)
reverse = input(false, title="Trade reverse")
xMAVolPrice = ema(volume * close, length)
xMAVol = ema(volume, length)
nRes = xMAVolPrice / xMAVol
pos = iff(nRes < close[1], 1,
	     iff(nRes > close[1], -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1 )
    strategy.entry("Long", strategy.long)
if (possig == -1 )
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nRes, color=blue)