ট্রেডিং ভলিউমের স্ট্যান্ডার্ড ডিভিয়েশন ভিত্তিক ট্রেডিং কৌশল

লেখক:চাওঝাং, তারিখঃ ২০২৩-১১-২১ ১১ঃ১১ঃ৫১
ট্যাগঃ

img

সারসংক্ষেপ

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

কৌশলগত যুক্তি

মূল যুক্তি হল ট্রেডিং ভলিউম মডেল তৈরি করা এবং দামের প্রবণতা বিচার করা।

  1. ট্রেডিং ভলিউম মডেল তৈরি করুন
    • বেসলাইন হিসাবে ভলিউম vavg এর 40 পেরিওড চলমান গড় গণনা করুন
    • ভলিউম ভিএসডি এর ৪০ পেরিওড স্ট্যান্ডার্ড ডিভিয়েশনকে স্বাভাবিক ওঠানামা পরিসীমা হিসেবে গণনা করুন
    • সর্বশেষ ভলিউম লেভেল হিসাবে ভলিউম vavgn এর 5 পেরিওড চলমান গড় গণনা করুন
    • ভলিউমের নিম্ন সীমা নির্ধারণ করুন vavg বিয়োগ 1 বার vsd হিসাবে
    • ভলিউম আপলিমিটের উপরের সীমা vavg + 2 বার vsd হিসাবে সেট করুন
  2. বিচারকের দামের প্রবণতা
    • মূল্যের প্রবণতার সূচক হিসাবে বন্ধের মূল্যের 20 পেরিওড চলমান গড় গণনা করুন
  3. ট্রেডিং সিগন্যাল তৈরি করুন
    • যখন এমভিজি তার আগের দিনের উপরে অতিক্রম করে এবং ভিভিজিএন নিম্নসীমার উপরে থাকে, তখন লং যান
    • যখন এমভিজি তার আগের দিনের নিচে ক্রস করে এবং ভিভিজিএন নিম্নসীমার উপরে থাকে, তখন শর্ট হয়ে যায়
    • মভগ ট্রেন্ড বিপরীত হলে অবস্থান বন্ধ করুন

কৌশলটি ট্রেডিং ভলিউম মডেল এবং মূল্য প্রবণতা একত্রিত করে যখন ভলিউম অস্বাভাবিক হয় তখন মূল্য প্রবণতা অনুসরণ করা এড়াতে, যা কিছু মিথ্যা সংকেত ফিল্টার করতে পারে।

সুবিধা বিশ্লেষণ

  1. দামের প্রবণতা বিচার করার জন্য ভলিউম পরিবর্তন একত্রিত কিছু মিথ্যা সংকেত ফিল্টার করতে পারেন এবং ট্রেডিং সংকেত আরো নির্ভরযোগ্য করতে
  2. স্ট্যান্ডার্ড ডিভিয়েশন ব্যবহার করে ট্রেডিং ভলিউম মডেল তৈরি করা ভলিউমের উপর চরম প্রভাব এড়ায়
  3. চলমান গড়ের সামঞ্জস্যযোগ্য পরামিতিগুলি বিভিন্ন চক্রের মূল্য পরিবর্তনের সাথে মানিয়ে নিতে পারে

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

  1. পরিমাণ এবং মূল্য স্বল্পমেয়াদে ভিন্ন হতে পারে, যার ফলে দামের প্রবণতা অনুপস্থিত
  2. ভলিউমের অনুপযুক্ত পরামিতি সেটিং মডেল ব্যর্থতার কারণ হতে পারে
  3. কৌশলটিতে স্টপ লস না থাকলে বড় ক্ষতি হতে পারে

সমাধান:

  1. মডেল অপ্টিমাইজ করার জন্য সঠিকভাবে চলন্ত গড় পরামিতি সামঞ্জস্য করুন
  2. একক ক্ষতি নিয়ন্ত্রণের জন্য স্টপ লস লজিক যোগ করুন

অপ্টিমাইজেশান নির্দেশাবলী

  1. সিগন্যাল আরো নির্ভরযোগ্য করতে মূল্য প্রবণতা বিচার করার জন্য আরো সূচক যোগ করুন
  2. তথ্যের উপর ভিত্তি করে ভলিউম এবং মূল্য মডেলের পরামিতিগুলি প্রশিক্ষণের জন্য মেশিন লার্নিং মডিউল বৃদ্ধি করুন
  3. অতিরিক্ত একক ক্ষতি রোধ করার জন্য স্টপ লস লজিক যোগ করুন
  4. প্রবণতা ধরার উচ্চ সম্ভাবনা নিশ্চিত করার জন্য এন্ট্রি লজিক অপ্টিমাইজ করুন
  5. স্বয়ংক্রিয়ভাবে স্টপ লস দূরত্ব সামঞ্জস্য করতে ATR মত সূচক একত্রিত করুন

সংক্ষিপ্তসার

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


/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
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/
// © dongyun

//@version=4
strategy("交易量底部标准差系统", overlay=true)

options = input(1,'')
length = input(40,'')
nlow = input(5,'')
factor = input(1.0,'')

vavg = 0.0
vavgn = 0.0
vsd = 0.0
lowlimit = 0.0
uplimit = 0.0
mavg = 0.0
aror = 0.0
adjvol = 0.0
savevol = 0.0


//Find average volume, replacing bad values
adjvol := volume

if (volume != 0)
	savevol := volume
else
	savevol := savevol[1]
	adjvol := savevol


// Replace high volume days because they distort standard deviation
if (adjvol > 2 * factor * nz(vsd[1]))
	adjvol := savevol
else
	adjvol := adjvol[1]

vavg := sma(adjvol,length)
vsd := stdev(adjvol,length)
vavgn := sma(adjvol,nlow)

// Extreme volume limits
lowlimit := vavg - factor * vsd
uplimit := vavg + 2 * factor * vsd

// System rules based on moving average trend
mavg := sma(close,length/2)

// Only enter on new trend signals
if (options == 2)
	if (mavg > mavg[1] and mavg[1] <= mavg[2])
		strategy.entry("Long", strategy.long)
	if (mavg<mavg[1] and mavg[1]>=mavg[2])
		strategy.entry("Short", strategy.short)
else
	if (mavg > mavg[1] and vavgn > lowlimit)
		strategy.entry("Long", strategy.long)
	if (mavg < mavg[1] and vavgn > lowlimit)
		strategy.entry("Short", strategy.short)

// Exit on low volume
if (options != 1)
	if (mavg<mavg[1] or (strategy.position_size > 0 and vavgn<= lowlimit))
		strategy.close("Long")
	if (mavg>mavg[1] or (strategy.position_size > 0 and vavgn<= lowlimit))
		strategy.close("Short")
else
	if (mavg < mavg[1])
		strategy.close("Long")
	if (mavg > mavg[1])
		strategy.close("Short")

আরো