ऊर्ध्वाधर क्षैतिज फ़िल्टर बैकटेस्ट रणनीति

लेखक:चाओझांग, दिनांकः 2024-01-08 10:20:25
टैगः

img

अवलोकन: यह रणनीति एक निश्चित अवधि के दौरान उच्चतम और निम्नतम कीमतों के बीच अंतर और समापन मूल्य के आयाम के बीच अनुपात की गणना करके यह आकलन करती है कि क्या कीमतें एक प्रवृत्ति स्थिति में हैं और इसका उपयोग ट्रेडिंग सिग्नल संकेतक के रूप में करती है।

रणनीति सिद्धांत: इस रणनीति का मुख्य सूचक ऊर्ध्वाधर क्षैतिज फ़िल्टर (वीएचएफ) है। यह निम्नलिखित सूत्र द्वारा गणना की जाती हैः

वीएचएफ = (उच्चतम ((लंबाई) - निम्नतम ((लंबाई)) / SUM ((एबीएस ((करीब-करीब[1]), लंबाई)

जहां उच्चतम ((लंबाई) और निम्नतम ((लंबाई) क्रमशः लंबाई चक्र के भीतर उच्चतम और निम्नतम कीमतें हैं। संख्याकार कीमतों के आयाम रेंज को दर्शाता है, और भाजक कीमतों के वास्तविक उतार-चढ़ाव को दर्शाता है। उनका अनुपात कीमतों के आंदोलनों के रुझान का न्याय कर सकता है। जब वीएचएफ एक दिए गए सिग्नल की सीमा से अधिक होता है, तो यह माना जाता है कि कीमतें एक प्रवृत्ति की स्थिति में हैं। जब दिए गए सिग्नल की सीमा से कम होती है, तो यह माना जाता है कि कीमतें एक सदमे की स्थिति में हैं। तदनुसार ट्रेडिंग सिग्नल उत्पन्न होते हैं।

यह रणनीति सरल और सहज है। प्रवृत्ति का न्याय करने के लिए वास्तविक उतार-चढ़ाव के साथ मूल्य उतार-चढ़ाव रेंज की तुलना करके, यह मूल्य की विशेषताओं को नजरअंदाज करते हुए केवल एसएमए, ईएमए और अन्य संकेतकों पर भरोसा करने की समस्या से बचता है। लेकिन यह रणनीति पैरामीटर अनुकूलन के लिए संवेदनशील है, लंबाई और संकेत मापदंडों को विभिन्न चक्रों और बाजार की स्थितियों के अनुकूल करने के लिए समायोजित करने की आवश्यकता है।

लाभ विश्लेषण:

  1. सहज ज्ञान युक्त ट्रेंड जजमेंट सूचक, सरल और प्रभावी।
  2. मूल्य की विशेषताओं पर विचार करें, किसी भी वक्र फिटिंग पर निर्भर नहीं करता है।
  3. कॉन्फ़िगर करने योग्य मापदंड निर्णय की संवेदनशीलता को समायोजित करते हैं।
  4. विभिन्न व्यापारिक रणनीतियों में आसानी से एकीकृत किया जा सकता है।

जोखिम विश्लेषणः

  1. मापदंडों के प्रति संवेदनशील, अनुचित सेटिंग बहुत अधिक गलत ट्रेडों का कारण बन सकती है।
  2. जब कीमतें उतार-चढ़ाव के बिंदु पर होती हैं तो छद्म रुझानों को अलग करने में असमर्थ।
  3. बड़े चक्र के तहत अल्पकालिक मूल्य झटकों के प्रति संवेदनशील नहीं।
  4. एकल हानि को नियंत्रित करने के लिए स्टॉप लॉस का उपयोग करने की आवश्यकता है।

अनुकूलन दिशाएंः

  1. प्रवृत्ति निर्णय की संवेदनशीलता को संतुलित करने के लिए लंबाई पैरामीटर को अनुकूलित करें।
  2. वीएचएफ संकेतों को फ़िल्टर करने के लिए अन्य संकेतकों को मिलाएं। उदाहरण के लिए, एमएसीडी मोड़ बिंदुओं को निर्धारित कर सकता है।
  3. वीएचएफ वक्र के अनुरूप मशीन लर्निंग विधियों का प्रयास करें।
  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")

अधिक