मल्टी-टाइम फ़्रेम ट्रेंड फ़ॉलोइंग रणनीति


निर्माण तिथि: 2024-01-26 15:54:45 अंत में संशोधित करें: 2024-01-26 15:54:45
कॉपी: 0 क्लिक्स: 614
1
ध्यान केंद्रित करना
1617
समर्थक

मल्टी-टाइम फ़्रेम ट्रेंड फ़ॉलोइंग रणनीति

अवलोकन

यह रणनीति विभिन्न समय अवधि के भीतर उच्चतम और निम्नतम कीमतों की गणना करके (50bar और 200bar) मुख्य मूल्य चैनल का गठन करती है, जो लंबी अवधि के रुझान की दिशा का प्रतिनिधित्व करती है। साथ ही, यह त्वरित संकेत रेखा और धीमी संकेत रेखा के संयोजन के साथ अल्पकालिक रुझान की दिशा का आकलन करती है। यह रणनीति लंबे समय तक चलने वाले रुझान की दिशा के अनुरूप होने पर प्रवेश के लिए संकेत देती है।

रणनीति सिद्धांत

सबसे पहले, हम दो मूल्य चैनल बनाते हैं जो दीर्घकालिक रुझान की दिशा को दर्शाते हैं, अंतिम 50 बार के भीतर उच्चतम और निम्नतम कीमतों और अंतिम 200 बार के भीतर उच्चतम और निम्नतम कीमतों की गणना करके।

दूसरा, अंतिम 7 बार की उच्चतम और निम्नतम कीमतों की गणना करें और त्वरित संकेत चैनल का निर्धारण करें अल्पकालिक प्रवृत्ति की गणना करें; अंतिम 20 बार के भीतर उच्चतम और निम्नतम कीमतों की गणना करें और धीमी गति संकेत चैनल का निर्धारण करें।

अंत में, प्रवेश संकेत संकेत जब तेजी से संकेत चैनल, धीमी गति से संकेत चैनल और लंबे समय तक कीमत चैनल की दिशा में एकजुट है. उदाहरण के लिए, सभी चैनलों में एक वृद्धि की प्रवृत्ति में हैं, खरीदने के लिए संकेत; सभी चैनलों में एक गिरावट की प्रवृत्ति में हैं, बेचने के लिए संकेत.

श्रेष्ठता विश्लेषण

इस रणनीति का सबसे बड़ा लाभ यह है कि यह लंबी अवधि के एकजुट प्रवृत्ति की दिशा की पहचान करने में सक्षम है। विभिन्न समय चक्रों में मूल्य चैनल की पुष्टि करके, यह प्रभावी रूप से अल्पकालिक बाजार के शोर से भ्रमित होने से बचा जा सकता है।

इसके अलावा, रणनीति बहु-समय सीमा निर्णय का उपयोग करती है, जो संकेत की स्थिरता को सुनिश्चित करती है, भले ही अल्पकालिक मूल्य में उलटफेर हो, सिग्नल को आसानी से नहीं बदलेगा।

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

इस रणनीति का मुख्य जोखिम यह है कि जब दीर्घकालिक या अल्पकालिक रुझान पलटता है, तो सिग्नल उत्पन्न करने में कुछ देरी होती है क्योंकि कई समय चक्रों के माध्यम से पुष्टि की आवश्यकता होती है। इस मामले में, यदि अंधाधुंध पालन किया जाता है, तो नुकसान बढ़ सकता है।

इसके अलावा, यह उच्च आवृत्ति वाले व्यापार के लिए अनुकूल नहीं है और अल्पकालिक मूल्य में उतार-चढ़ाव के लिए त्वरित प्रतिक्रिया करने में असमर्थ है। यदि यह एक तीव्र स्थिति है, तो स्टॉप लॉस की स्थिति को गलत तरीके से सेट करना भी अधिक नुकसान का कारण बन सकता है।

अनुकूलन दिशा

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

इसके अलावा, विभिन्न लंबाई के अधिक मूल्य चैनल जोड़े जा सकते हैं, जो मतदान के माध्यम से अंतिम संकेतों को निर्धारित करते हैं, जिससे निर्णय की सटीकता में सुधार होता है।

या मशीन लर्निंग एल्गोरिदम का उपयोग करके स्वचालित रूप से प्रत्येक चैनल पैरामीटर का अनुकूलन करें ताकि वे वर्तमान बाजार की स्थिति के अनुरूप हों।

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-25 00:00:00
period: 1h
basePeriod: 15m
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/
// © ZoomerXeus

//@version=4
strategy("Swing High Low Price Channel V.1", overlay=true)

//========================= variable =================================//
dead_channel_source = input(title="Main swing channel source", defval="H/L", options=["H/L"])
fast_signal_length = input(title="Fast Slow Length", type=input.integer, defval=7, maxval=49, minval=1)
slow_signal_length = input(title="Slow Slow Length", type=input.integer, defval=20, maxval=49, minval=1)
is_show_only_dead_channel = input(title="Show main channel only", defval=true)
main_channel_width = input(title="Main line width", defval=2, minval=1)
signal_channel_width = input(title="Signal line width", defval=1, minval=1)

//========================= indicator function =================================//
dead_cross_high_50 = highest(high, 50) 
dead_cross_high_200 = highest(high, 200) 
//========================================
dead_cross_low_50 = lowest(low, 50) 
dead_cross_low_200 = lowest(low, 200) 
//========================================
medain_dead_cross_50 = ((dead_cross_high_50-dead_cross_low_50)*0.5)+dead_cross_low_50
medain_dead_cross_200 = ((dead_cross_high_200-dead_cross_low_200)*0.5)+dead_cross_low_200


//========================================
fasthighest = highest(high, fast_signal_length)
fastlowest = lowest(low, fast_signal_length)
//========================================
slowhighest = highest(high, slow_signal_length)
slowlowest = lowest(low, slow_signal_length)
//========================================

    
//========================= plot =================================//
plot(dead_channel_source == "H/L" ? dead_cross_high_50 : na,title="50 bar highest", color=color.red, linewidth=main_channel_width)
plot(dead_channel_source == "H/L" ? dead_cross_high_200 : na,title="200 bar highest", color=color.aqua, linewidth=main_channel_width)
plot(dead_channel_source == "H/L" ? dead_cross_low_50 : na,title="50 bar lowest", color=color.red, linewidth=main_channel_width)
plot(dead_channel_source == "H/L" ? dead_cross_low_200 : na,title="200 bar lowest", color=color.aqua, linewidth=main_channel_width)
plot(dead_channel_source == "H/L" ? medain_dead_cross_200 : na,title="200 bar middle lowest", color=color.orange, linewidth=main_channel_width)
plot(dead_channel_source == "H/L" ? medain_dead_cross_50 : na,title="50 bar middle lowest", color=color.lime, linewidth=main_channel_width)
//===========================================
plot(is_show_only_dead_channel == false ? fasthighest : na,title="fast signal highest", color=#ff00f9, linewidth=signal_channel_width)
plot(is_show_only_dead_channel == false ? fastlowest : na,title="fast signal lowest", color=#ff00f9, linewidth=signal_channel_width)
plot(is_show_only_dead_channel == false ? slowhighest : na,title="slow signal highest", color=color.white, linewidth=signal_channel_width)
plot(is_show_only_dead_channel == false ? slowlowest : na,title="slow signal lowest", color=color.white, linewidth=signal_channel_width)
//===========================================
plot(crossover(medain_dead_cross_50, medain_dead_cross_200) ? medain_dead_cross_200 : na, title="Dead cross buy plot", style=plot.style_circles, linewidth=6, color=color.lime)
plot(crossunder(medain_dead_cross_50, medain_dead_cross_200) ? medain_dead_cross_200 : na, title="Dead cross sell plot", style=plot.style_circles, linewidth=6, color=color.red)
plot(is_show_only_dead_channel and (medain_dead_cross_50 < medain_dead_cross_200) and high == slowhighest ? high : na, title="Follow trend short term  sell plot zone", style=plot.style_circles, linewidth=3, color=color.orange)
plot(is_show_only_dead_channel and (medain_dead_cross_50 > medain_dead_cross_200) and low == slowlowest ? low : na, title="Follow trend short term buy plot zone", style=plot.style_circles, linewidth=3, color=color.green)
plot(is_show_only_dead_channel and high == slowhighest and (high == dead_cross_high_200) ? high : na, title="Not follow trend short term  sell plot zone", style=plot.style_circles, linewidth=3, color=color.orange)
plot(is_show_only_dead_channel and low == slowlowest and (low == dead_cross_low_200) ? low : na, title="Not follow trend short term buy plot zone", style=plot.style_circles, linewidth=3, color=color.green)

//===================== open close order condition =========================================================//
strategy.entry("strong buy", true, 1, when=low == dead_cross_low_200)
strategy.exit("close strong buy 50%", "strong buy", qty_percent=50, when=high==slowhighest)
strategy.entry("strong sell", false, 1, when=high == dead_cross_high_200)
strategy.exit("close strong sell 50%", "strong sell", qty_percent=50, when=low==slowlowest)