यह बिटकॉइन के लिए एक कस्टम मल्टी हेड ट्रेडिंग रणनीति है। यह आपको सप्ताह के विभिन्न ट्रेडिंग दिनों के आधार पर अधिक या कम करने की अनुमति देता है। कीमतें सप्ताह के विभिन्न ट्रेडिंग दिनों में एक दिशा या दूसरी दिशा में जाने की प्रवृत्ति हो सकती हैं, यह रणनीति आपको विभिन्न ट्रेडिंग दिनों का परीक्षण करने की अनुमति देती है।
कृपया सुनिश्चित करें कि आप प्रदर्शन और ट्रेडिंग इतिहास रिकॉर्ड को देखने के लिए डेटमैप का उपयोग करते हैं ताकि यह सुनिश्चित किया जा सके कि स्क्रिप्ट अपेक्षित रूप से काम कर रही है और आप ट्रेडिंग दृश्य से जितना संभव हो उतना ऐतिहासिक डेटा प्राप्त कर रहे हैं।
इस रणनीति का मूल तर्क यह है कि उपयोगकर्ता को सप्ताह के प्रत्येक दिन बहु-खरीद, शून्य-खरीद या कोई भी लेनदेन नहीं करने का विकल्प दिया जाता है।
सबसे पहले, यह उपयोगकर्ता को महीने, दिनांक, वर्ष और महीने, दिनांक, वर्ष को समाप्त करने के लिए तारीखों की सीमा निर्धारित करने की अनुमति देता है।
इसके बाद, यह सप्ताह के प्रत्येक दिन के लिए संख्यात्मक प्रतिनिधित्व को संग्रहीत करने के लिए समय-सीमाओं की एक सरणी का उपयोग करता है, रविवार को 0 से शनिवार को 6 तक।
timeframes_options का एक और सेट हर दिन ट्रेड करने के लिए विकल्पों को संग्रहीत करने के लिए उपयोग किया जाता है। यह एक इनपुट विकल्प द्वारा सेट किया जाता है।
For चक्र में, यह रणनीति जांचती है कि क्या वर्तमान ट्रेडिंग दिन किसी समय-सीमा के सरणी में किसी दिन के साथ मेल खाता है। यदि मेल खाता है, और विकल्प पिछले दिन से अलग है, तो पहले सभी अपर्याप्त पदों को बंद कर दें।
यदि विकल्प एकतरफा नहीं है, तो चयनित मल्टीहेड या खाली हेड के अनुसार संबंधित दिशा में स्थिति खोलें।
इस प्रकार, यह रणनीति सेट की गई तारीखों के भीतर, सप्ताह के प्रत्येक दिन की सेटिंग के आधार पर मल्टी हेड ट्रेडिंग कर सकती है।
इस रणनीति का मुख्य लाभ यह है कि यह अत्यधिक अनुकूलित मल्टी हेड ट्रेडिंग प्रदान करता है। उपयोगकर्ता सप्ताह के प्रत्येक दिन किस दिशा में व्यापार करने के लिए स्वतंत्र हैं।
एक निश्चित साप्ताहिक ट्रेडिंग रणनीति के विपरीत, यह एक लचीली समायोजन रणनीति है। यदि कुछ दिन खराब होते हैं, तो आप आसानी से केवल अन्य दिनों में व्यापार कर सकते हैं।
डेट रेंज का पता लगाना भी बहुत ही लचीला है, आप किसी भी उपयोगकर्ता द्वारा निर्दिष्ट समय अवधि का परीक्षण कर सकते हैं, यह देखने के लिए कि कौन सी तिथि संयोजन सबसे अच्छा काम करता है।
लेनदेन तर्क स्पष्ट और सरल है, इसे समझना और संशोधित करना आसान है। उपयोगकर्ता को प्रोग्रामिंग की आवश्यकता नहीं है और पैरामीटर को समायोजित कर सकता है।
इस रणनीति में अनावश्यक जोखिमों से बचने के लिए प्रत्येक दिन की दिशा में परिवर्तन के साथ अनावश्यक पदों को स्वचालित रूप से समाप्त कर दिया जाता है।
इस रणनीति का मुख्य जोखिम यह है कि उपयोगकर्ता द्वारा सेट किए गए दैनिक ट्रेडिंग विकल्प सभी तिथि क्षेत्रों के लिए उपयुक्त नहीं हो सकते हैं।
उदाहरण के लिए, एक कार्यदिवस से अधिक सप्ताहांत का समय कुछ समय के लिए प्रभावी साबित हो सकता है, लेकिन अन्य समय के लिए असफल हो सकता है।
इसलिए, विभिन्न दिनांक सीमाओं का परीक्षण सावधानी से किया जाना चाहिए, किसी एक बार के परिणामों पर भरोसा न करें। पैरामीटर को विशिष्ट बाजार स्थितियों के अनुरूप समायोजित किया जाना चाहिए।
एक अन्य जोखिम यह है कि दैनिक दिशा में बदलाव के साथ समय पर पतन को रोकना असंभव है। इससे नुकसान बढ़ सकता है। लेकिन रणनीति स्वचालित पतन के माध्यम से इस समस्या को कम करने की कोशिश करती है।
कुल मिलाकर, यह रणनीति पैरामीटर अनुकूलन पर निर्भर करती है और विभिन्न बाजार स्थितियों के लिए उपयुक्त पैरामीटर संयोजन खोजने के लिए पर्याप्त परीक्षण की आवश्यकता होती है।
इस रणनीति को निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः
दैनिक दिशा में परिवर्तन के साथ, स्टॉप लॉजिक को बढ़ाएं, जब स्थिति लाभदायक हो तो चलती रोक को सेट करें, और वापसी को कम करें।
एक फ़िल्टर जो एक दिन के उच्च या निम्न स्तर को तोड़ने के लिए संकेत देता है, ताकि कोई प्रवृत्ति नहीं होने पर बार-बार व्यापार करने से बचा जा सके
उच्च उतार-चढ़ाव के दौरान स्थिति के आकार को कम करें, कम उतार-चढ़ाव के दौरान स्थिति बढ़ाएं, जिससे जोखिम नियंत्रित हो सके।
ट्रेडिंग के दिन के लिए चुनने के लिए मशीन लर्निंग को शामिल करें, ऐतिहासिक डेटा के आधार पर प्रत्येक दिन के व्यापार की संभावना का आकलन करें, गतिशीलता की दैनिक दिशा उत्पन्न करें।
बड़ी वित्तीय घटनाओं की स्थिति में लेन-देन को निलंबित करने के लिए, और किसी भी तरह की धोखाधड़ी से बचने के लिए, आकस्मिक घटनाओं के लिए तर्क को जोड़ना।
यह रणनीति दैनिक दिशा चयन के माध्यम से अत्यधिक लचीली बहुमुखी ट्रेडिंग क्षमता प्रदान करती है। उपयोगकर्ता को सबसे अच्छा पैरामीटर खोजने के लिए परीक्षणों का संयोजन करने की स्वतंत्रता है। हालांकि, इस रणनीति में उच्च अनुकूलन आवश्यकताएं हैं, विभिन्न बाजारों के लिए उपयुक्त सेटिंग्स खोजने के लिए बड़े पैमाने पर परीक्षण की आवश्यकता होती है। स्टॉपलॉस, फिल्टर, गतिशील समायोजन और अन्य अनुकूलन साधनों को जोड़ने से जोखिम कम हो सकता है और स्थिरता बढ़ सकती है। सावधानीपूर्वक पैरामीटर अनुकूलन की शर्त पर, यह रणनीति एक कुशल दैनिक दिशा ट्रेडिंग उपकरण बन सकती है।
/*backtest
start: 2022-09-19 00:00:00
end: 2023-09-25 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/
//@version=4
// strategy("Day of Week Custom Buy/Sell Strategy", overlay=true, currency=currency.USD, default_qty_value=1.0,initial_capital=30000.00,default_qty_type=strategy.percent_of_equity)
frommonth = input(defval = 6, minval = 01, maxval = 12, title = "From Month")
fromday = input(defval = 14, minval = 01, maxval = 31, title = "From day")
fromyear = input(defval = 2021, minval = 1900, maxval = 2100, title = "From Year")
tomonth = input(defval = 12, minval = 01, maxval = 12, title = "To Month")
today = input(defval = 31, minval = 01, maxval = 31, title = "To day")
toyear = input(defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
timeframes = array.new_int(7, 1)
timeframes_options = array.new_string(7, 'None')
array.set(timeframes,0,7)
array.set(timeframes_options,0, input(defval='None', options=['Long','Short','None'], title='sunday'))
array.set(timeframes,1,1)
array.set(timeframes_options,1, input(defval='Long', options=['Long','Short','None'], title='monday'))
array.set(timeframes,2,2)
array.set(timeframes_options,2, input(defval='Long', options=['Long','Short','None'], title='tuesday'))
array.set(timeframes,3,3)
array.set(timeframes_options,3, input(defval='Long', options=['Long','Short','None'], title='wednesday'))
array.set(timeframes,4,4)
array.set(timeframes_options,4, input(defval='None', options=['Long','Short','None'], title='thursday'))
array.set(timeframes,5,5)
array.set(timeframes_options,5, input(defval='None', options=['Long','Short','None'], title='friday'))
array.set(timeframes,6,6)
array.set(timeframes_options,6, input(defval='None', options=['Long','Short','None'], title='saturday'))
for i = 0 to array.size(timeframes) - 1
if dayofweek == array.get(timeframes, i) and array.get(timeframes_options, i) != array.get(timeframes_options, i==0?6:i-1)
strategy.close_all()
if dayofweek == array.get(timeframes, i) and array.get(timeframes_options, i)!='None' and array.get(timeframes_options, i) != array.get(timeframes_options, i==0?6:i-1)
if array.get(timeframes_options, i) == 'Long'
strategy.entry("Long", strategy.long, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))
else if array.get(timeframes_options, i) == 'Short'
strategy.entry("Short", strategy.short, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))