यह रणनीति स्टीव कार्निश द्वारा विकसित CCT बोलिंगर बैंड ऑसिलेटर (CCTBO) संकेतक पर आधारित है। यह ट्रेलिंग स्टॉप तंत्र के साथ संयुक्त चलती औसत के मूल्य ब्रेकआउट का पता लगाकर मूल्य उलटों की पहचान करता है।
रणनीति CCTBBO के मूल्य की गणना करने के लिए स्रोत डेटा के रूप में उच्च मूल्य का उपयोग करती है। ऑसिलेटर -200 और 200 के बीच उतार-चढ़ाव करता है, जहां 0 औसत मूल्य माइनस 2 मानक विचलन और 100 औसत मूल्य प्लस 2 मानक विचलन का प्रतिनिधित्व करता है। ट्रेडिंग सिग्नल तब उत्पन्न होते हैं जब ऑसिलेटर अपनी ईएमए लाइन को पार करता है या नीचे गिरता है। विशेष रूप से, जब ऑसिलेटर अपनी ईएमए लाइन से ऊपर पार करता है और उनके बीच की दूरी सेट मार्जिन मूल्य से अधिक होती है, तो एक लंबी स्थिति खोली जाती है। जब ऑसिलेटर अपनी ईएमए लाइन से नीचे गिरता है और दूरी नकारात्मक सेट मूल्य से कम होती है, तो एक छोटी स्थिति खोली जाती है। स्थिति मार्जिन आकार सेट प्रतिशत के अनुसार गणना की जाती है। इसके अलावा, रणनीति स्थिति से बाहर निकलने के लिए प्रतिशत मूल्य परिवर्तन या टिक आंदोलनों की संख्या के आधार पर एक ट्रेलिंग स्टॉप लॉस का उपयोग करती है।
जोखिम प्रबंधन:
इस रणनीति को निम्नलिखित पहलुओं में अनुकूलित किया जा सकता हैः
संक्षेप में, यह सीसीटी बोलिंगर बैंड संकेतक का उपयोग करके मूल्य उलटों की पहचान करने के लिए एक मात्रात्मक ट्रेडिंग रणनीति है। इसके कुछ फायदे हैं लेकिन सुधार के लिए भी जगह है। मापदंडों का अनुकूलन करके, फ़िल्टर जोड़कर, फीचर इंजीनियरिंग का उपयोग करके, मशीन लर्निंग आदि की शुरुआत करके, इस रणनीति की स्थिरता और लाभप्रदता को और बढ़ाया जा सकता है।
/*backtest start: 2023-11-15 00:00:00 end: 2023-11-17 11:00:00 period: 45m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 // This strategy is based on the CCT Bollinger Band Oscillator (CCTBO) // developed by Steve Karnish of Cedar Creek Trading and coded by LazyBear. // Indicator is available here https://www.tradingview.com/v/iA4XGCJW/ strategy("Strategy CCTBBO v2 | Fadior", shorttitle="Strategy CCTBBO v2", pyramiding=0, precision=2, calc_on_order_fills=false, initial_capital=1000, default_qty_type=strategy.percent_of_equity, currency="USD", default_qty_value=100, overlay=false) length_stddev=input(title="Stddev loopback period",defval=20) length_ema=input(title="EMA period", defval=2) margin=input(title="Margin", defval=0, type=float, step=0.1) price = input(title="Source", defval=high) digits= input(title="Number of digits",defval=2,step=1,minval=2,maxval=6) offset = input(title="Trailing offset (0.01 = 1%) :", defval=0.013, type=float, step=0.01) pips= input(title="Offset in ticks ?",defval=false,type=bool) src=request.security(syminfo.tickerid, "1440", price) cctbbo=100 * ( src + 2*stdev( src, length_stddev) - sma( src, length_stddev ) ) / ( 4 * stdev( src, length_stddev ) ) ul=hline(150, color=gray, editable=true) ll=hline(-50, color=gray) hline(50, color=gray) fill(ul,ll, color=green, transp=90) plot(style=line, series=cctbbo, color=blue, linewidth=2) plot(ema(cctbbo, length_ema), color=red) d = digits == 2 ? 100 : digits == 3 ? 1000 : digits == 4 ? 10000 : digits == 5 ? 100000 : digits == 6 ? 1000000 : na TS = 1 TO = pips ? offset : close*offset*d CQ = 100 TSP = TS TOP = (TO > 0) ? TO : na longCondition = crossover(cctbbo, ema(cctbbo, length_ema)) and cctbbo - ema(cctbbo, length_ema) > margin if (longCondition) strategy.entry("Long", strategy.long) strategy.exit("Close Long", "Long", qty_percent=CQ, trail_points=TSP, trail_offset=TOP) shortCondition = crossunder(cctbbo, ema(cctbbo, length_ema)) and cctbbo - ema(cctbbo, length_ema) < -margin if (shortCondition) strategy.entry("Short", strategy.short) strategy.exit("Close Short", "Short", qty_percent=CQ, trail_points=TSP, trail_offset=TOP)