इस आलेख में एक प्रवृत्ति-अनुसंधान रणनीति के बारे में विस्तार से बताया गया है, जो मूल्य प्रतिस्थापन अनुपात के आधार पर प्रवृत्ति-अनुसंधान के लिए है। यह रणनीति स्थानीय उच्च बिंदुओं की पहचान करके एक निश्चित प्रतिस्थापन अनुपात के साथ प्रवेश करने के लिए है।
रणनीति सिद्धांत
इस रणनीति का मुख्य तर्क यह है कि किसी विशेष अवधि के भीतर उच्चतम मूल्य की पहचान की जाती है, और उसके बाद एक निश्चित अनुपात में रिवर्स पोजीशन पर ट्रेडों को ट्रैक किया जाता है। इसके लिए निम्नलिखित चरणों का पालन करना आवश्यक हैः
सबसे पहले, 90 K लाइनों के सबसे हाल के उच्चतम मूल्य की गणना करें, जो एक स्थानीय उच्च बिंदु के रूप में है;
जब कीमत उस उच्च बिंदु से एक निश्चित अनुपात (जैसे 3%) के साथ वापस आ जाती है, तो खरीद-खरीद को ट्रैक करें;
स्टॉपबॉक्स को प्रवेश मूल्य से एक निश्चित अनुपात (जैसे 6%) के रूप में सेट किया जाता है, जब कीमत स्टॉपबॉक्स तक पहुंच जाती है तो स्थिति को बंद कर दिया जाता है;
स्टॉप लॉस सेट न करें, ट्रेंड को ट्रैक करें।
इस प्रकार, स्थानीय उच्च बिंदु रिडंडेंसी के अनुपात के आधार पर प्रवेश समय का न्याय करने के लिए, आप प्रभावी रूप से झटके को फ़िल्टर कर सकते हैं, केवल प्रवृत्ति की पुष्टि के बाद प्रवेश करें। स्टॉप सेटिंग भी प्रत्येक लाभ के लिए कुछ अपेक्षित प्रबंधन प्रदान करती है।
इस रणनीति का सबसे बड़ा लाभ यह है कि यह प्रवृत्ति का आकलन करने के लिए रिड्यूस अनुपात का उपयोग करता है, जो बहुत सारे शोर को फ़िल्टर करता है। यह सीधे मोड़ बिंदु पर प्रवेश करने की तुलना में कम होने की संभावना को कम कर सकता है।
एक और लाभ यह है कि एक स्टॉप लॉजिक सेट किया गया है। यह सकारात्मक धन प्रबंधन के सिद्धांतों के अनुसार प्रत्येक लेनदेन के लिए नियंत्रण में लाभ और हानि देता है।
अंत में, स्टॉप को ट्रैक करने के लिए रिड्यूस अनुपात से अधिक होने के कारण रणनीति में कुछ जोखिम-फायदा तंत्र हैं।
हालांकि इस रणनीति के कुछ फायदे हैं, लेकिन वास्तविक उपयोग में निम्नलिखित जोखिमों के बारे में भी ध्यान दिया जाना चाहिएः
सबसे पहले, रिटर्न अनुपात को सावधानीपूर्वक सेट किया जाना चाहिए। बहुत गहरी या बहुत कम रिटर्न रिटर्न लाभ कमाने की जगह को प्रभावित कर सकता है।
दूसरा, कोई स्टॉप लॉस सेटिंग नहीं है जो रणनीति को अधिक एकल जोखिम के लिए छोड़ देता है। एक मजबूत प्रवृत्ति में बदलाव से अधिक नुकसान हो सकता है।
अंत में, गलत पैरामीटर अनुकूलन भी ओवरफिट समस्या पैदा कर सकता है, जिससे सिग्नल की गुणवत्ता में गिरावट आती है।
चार बातें, सारांश
इस आलेख में एक प्रकार की मात्रात्मक रणनीति का विस्तार से वर्णन किया गया है जो मूल्य प्रतिगमन अनुपात के आधार पर प्रवृत्ति का पालन करती है। यह प्रवृत्ति की दिशा को प्रभावी ढंग से पहचान सकती है और प्रतिगमन का उपयोग करके प्रवेश कर सकती है। साथ ही रोकथाम प्रबंधन की स्थापना भी रणनीति को एक निश्चित जोखिम नियंत्रण तंत्र प्रदान करती है। कुल मिलाकर, यह रणनीति स्थानीय उच्च बिंदु प्रतिगमन के आधार पर व्यापार नियमों के निर्माण के लिए एक विकल्प विकल्पों में से एक हो सकती है।
/*backtest
start: 2022-09-07 00:00:00
end: 2023-09-13 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/
// © luboremenar
//@version=4
strategy("test_%_down_up", overlay = false, initial_capital = 1000, pyramiding = 0, default_qty_value = 1000,
default_qty_type = strategy.cash, precision = 8, commission_type = strategy.commission.percent, commission_value = 0.1)
// inputs
range_of_tops = input(title="Range of candles to find highest value from.", defval=90, type=input.integer, minval=1 )
basis_points = input(title="Basis points, if asset has two decimals use 100, three decimals 1000, etc.", defval=100, type=input.integer, minval=1)
retrace_percent = input(title="Percent value retrace from the top.", type=input.integer, defval=3, minval = 1, maxval=99)
take_profit_percent = input(title="Percent value of take profit from entry price.", type=input.integer, defval=6, minval=1)
// strategy definition
three_months_top = highest(range_of_tops)
longCondition1 = (close <= float((three_months_top*(1-(take_profit_percent/100)))) and strategy.position_size == 0)
if (longCondition1)
strategy.entry("Long1", strategy.long, qty = strategy.equity/close)
strategy.exit(id="TP1", from_entry="Long1", profit=((close*(1 + take_profit_percent/100)-close)*basis_points),
when= crossover(strategy.position_size, 0))
// plot
plot(strategy.equity)
// for testing, debugging
//test=0.0
//if(crossover(strategy.position_size, 0))
// test := (close*1.06-close)*basis_points
//plot(test)