यह रणनीति चैनल ब्रेकआउट सिद्धांत के आधार पर डिज़ाइन की गई एक ट्रेंड ट्रैकिंग रणनीति है। यह एक निश्चित अवधि में उच्चतम मूल्य और सबसे कम मूल्य का उपयोग करके एक चैनल का निर्माण करती है और जब मूल्य चैनल से बाहर निकलता है तो ट्रेडिंग सिग्नल उत्पन्न करती है। यह रणनीति ट्रेंडिंग बाजारों के लिए उपयुक्त है और ट्रेंड ट्रैकिंग के लिए कीमत की ट्रेंड दिशा को पकड़ सकती है।
रणनीति पहले चैनल के ऊपरी बैंड और निचले बैंड का निर्माण करने के लिए एक लंबाई अवधि में उच्चतम मूल्य और सबसे कम मूल्य की गणना करती है। जब समापन मूल्य ऊपरी बैंड को तोड़ता है, तो एक लंबी स्थिति खोली जाती है। जब समापन मूल्य निचले बैंड को तोड़ता है, तो एक छोटी स्थिति खोली जाती है। जब कीमत चैनल में वापस गिरती है तो स्थिति बंद हो जाएगी।
यह रणनीति प्रवृत्ति की दिशा निर्धारित करने के लिए लंबाई *2 के साथ एक ईएमए संकेतक को भी ग्राफ करती है। जब कीमत ऊपरी बैंड को तोड़ती है, यदि ईएमए ऊपर की ओर प्रवृत्ति में है, तो लंबे निर्णय को मजबूत किया जाता है।
संक्षेप में, यह रुझानों को पकड़ने के लिए चैनल ब्रेकआउट पर आधारित एक सरल ट्रेंड ट्रैकिंग रणनीति है। इसमें मजबूत ट्रेंड ट्रैकिंग क्षमता है और ट्रेंडिंग बाजारों में अच्छा रिटर्न प्राप्त कर सकता है। लेकिन इसमें कुछ जोखिम भी हैं और स्थिरता में सुधार के लिए आगे अनुकूलन की आवश्यकता है। पैरामीटर ट्यूनिंग, स्टॉप लॉस सेटिंग और अन्य संकेतकों के साथ संयोजन के माध्यम से, इस रणनीति को लाइव ट्रेडिंग पर लागू किया जा सकता है।
/*backtest start: 2023-11-15 00:00:00 end: 2023-11-22 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 initial_capital = 1000, default_qty_value = 90, default_qty_type = strategy.percent_of_equity, pyramiding = 0, commission_value = 0.002, commission_type = strategy.commission.percent, calc_on_every_tick = true length_val = 2 max_bars_back = 1440 risk_max_drawdown = 9 strategy("Channel Break",max_bars_back=max_bars_back,initial_capital = initial_capital,default_qty_value = default_qty_value,default_qty_type = default_qty_type,pyramiding = pyramiding,commission_value = commission_value,commission_type = commission_type,calc_on_every_tick = calc_on_every_tick) // strategy.risk.max_drawdown(risk_max_drawdown, strategy.percent_of_equity) length = input(title="Length", minval=1, maxval=1000, defval=length_val) upBound = highest(high, length) downBound = lowest(low, length) //plot (upBound) //plot (downBound) //plot (close, color=red) //plot (ema(close,length * 2), color=green) // if (not na(close[length]) and time>timestamp(2018, 02, 24, 0, 00) ) strategy.entry("Buy", strategy.long, stop=upBound + syminfo.mintick, comment="Buy") strategy.entry("Short", strategy.short, stop=downBound - syminfo.mintick, comment="Short") position = strategy.position_size //plot(position , title="equity", color=red,style=cross,linewidth=4) plot(variance(position,2)>0?1:0,style=circles,linewidth=4) message = "" if (position > 0) message = "BTCUSD L: " + tostring(strategy.position_size) na(position) if (position < 0) message = "BTCUSD S: " + tostring(strategy.position_size) na(position) alertcondition(variance(strategy.position_size,2) > 0, "test", message )