উল্লম্ব অনুভূমিক ফিল্টার ব্যাকটেস্ট কৌশল

লেখক:চাওঝাং, তারিখঃ 2024-01-08 10:20:25
ট্যাগঃ

img

সংক্ষিপ্ত বিবরণঃ এই কৌশলটি একটি নির্দিষ্ট সময়ের মধ্যে সর্বোচ্চ এবং সর্বনিম্ন মূল্যের মধ্যে পার্থক্য এবং বন্ধের মূল্যের বিস্তৃতির মধ্যে অনুপাত গণনা করে দামগুলি একটি প্রবণতা অবস্থায় রয়েছে কিনা তা বিচার করে এবং এটি একটি ট্রেডিং সিগন্যাল সূচক হিসাবে ব্যবহার করে।

কৌশল নীতিঃ এই কৌশলটির মূল সূচক হল উল্লম্ব অনুভূমিক ফিল্টার (ভিএইচএফ) । এটি নিম্নলিখিত সূত্র দ্বারা গণনা করা হয়ঃ

ভিএইচএফ = (সর্বোচ্চ ((দৈর্ঘ্য) - সর্বনিম্ন ((দৈর্ঘ্য)) / যোগফল ((এবিএস ((ক্লোজ-ক্লোজ [1]), দৈর্ঘ্য)

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

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

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

  1. স্বজ্ঞাত প্রবণতা বিচার সূচক, সহজ এবং কার্যকর।
  2. দামের বৈশিষ্ট্য বিবেচনা করুন, কোন বাঁক ফিটিং উপর নির্ভর করে না।
  3. কনফিগারযোগ্য প্যারামিটারগুলি বিচারের সংবেদনশীলতা সামঞ্জস্য করে।
  4. বিভিন্ন ট্রেডিং কৌশল সহজেই একত্রিত করা যায়।

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

  1. প্যারামিটারগুলির জন্য সংবেদনশীল, ভুল সেটিং অনেক ভুল ট্রেডের কারণ হতে পারে।
  2. যখন দামের পরিবর্তন হয় তখন ছদ্ম প্রবণতা আলাদা করতে পারে না।
  3. বড় চক্রের অধীনে স্বল্পমেয়াদী দামের শকগুলির প্রতি সংবেদনশীল নয়।
  4. একক ক্ষতি নিয়ন্ত্রণ করতে স্টপ লস ব্যবহার করতে হবে।

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

  1. প্রবণতা মূল্যায়নের সংবেদনশীলতা ভারসাম্য বজায় রাখার জন্য দৈর্ঘ্য পরামিতি অপ্টিমাইজ করুন।
  2. ভিএইচএফ সংকেতগুলি ফিল্টার করতে অন্যান্য সূচকগুলিকে একত্রিত করুন। উদাহরণস্বরূপ, এমএসিডি inflection পয়েন্টগুলি নির্ধারণ করতে পারে।
  3. মেশিন লার্নিং পদ্ধতি ব্যবহার করে VHF কার্ভের সাথে মানিয়ে নিন।
  4. একাধিক স্তরের কৌশল সংকেত তৈরি করতে বিভিন্ন চক্রের সেটিং সহ সমান্তরাল কৌশল স্থাপন করুন।

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


/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 27/04/2018
// Vertical Horizontal Filter was initiated by Adam White. It was first published 
// in a magazine called “Issues of Futures” in August, 1991. The Vertical Horizontal 
// Filter (VHF) is a very common Indicator used by traders to find out the Phase of 
// a Price Trend. Normally, a price trend can be in a Trending Phase or a Congestion 
// Phase/Choppy Movement Phase. Adam White created this particular Technical Indicator 
// to determine whether prices are trending in a particular direction or are they going 
// through a transitional period. He used it to measure the range of Futures available
// in the market.
//
// You can change long to short in the Input Settings
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Vertical Horizontal Filter Backtest")
Length = input(28, minval=1)
Signal = input(0.4, step=0.01)
reverse = input(false, title="Trade reverse")
hline(Signal, color=blue, linestyle=line)
xHH = highest(high, Length)
xLL = lowest(low, Length)
xNumerator = abs(xHH - xLL)
xDenominator = sum(abs(close - close[1]), Length)
xVHF = xNumerator / xDenominator 
pos = iff(xVHF > Signal, 1,
       iff(xVHF < Signal, -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(xVHF, color=blue, title="VHF")

আরো