
यह रणनीति स्टीव कार्निश द्वारा विकसित सीसीटी बॉलिंगर बैंड ऑसिलेटर पर आधारित है, जो कीमतों के माध्यम से औसत रेखा को तोड़ने की पहचान करके और एक वापसी तंत्र के साथ एक वापसी व्यापार को सक्षम करता है।
यह रणनीति उच्च कीमतों को स्रोत डेटा के रूप में उपयोग करती है और फिर सीसीटी वेव-बैंड ऑस्केलेटर के मानों की गणना करती है। ऑस्केलेटर का मान 200 और 200 के बीच में उतार-चढ़ाव करता है, 0 का मतलब है कि औसत मूल्य में 2 गुना मानक अंतर घटाया गया है, और 100 का मतलब है कि औसत मूल्य में 2 गुना मानक अंतर जोड़ा गया है। यह एक ट्रेडिंग सिग्नल उत्पन्न करता है जब ऑस्केलेटर अपने ईएमए औसत को पार करता है या नीचे से गुजरता है। विशेष रूप से, यदि ऑस्केलेटर अपने ईएमए औसत को पार करता है और दोनों के बीच की दूरी एक निर्धारित सीमा से अधिक है, तो अधिक करें; यदि ऑस्केलेटर अपनी ईएमए औसत को पार करता है और दोनों के बीच की दूरी एक निर्धारित सीमा से कम है, तो खाली करें।
जोखिम नियंत्रण विधि:
इस रणनीति को निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः
इस रणनीति के लिए कुल मिलाकर एक मात्रात्मक व्यापार रणनीति है जो कीमतों के उलटफेर को निर्धारित करने के लिए CCT उतार-चढ़ाव के संकेतकों पर आधारित है। इसके कुछ फायदे हैं, लेकिन इसमें सुधार की गुंजाइश भी है। इस रणनीति की स्थिरता और लाभप्रदता को पैरामीटर अनुकूलन, फ़िल्टरिंग संकेतकों को जोड़ने, फीचर इंजीनियरिंग का उपयोग करने और मशीन सीखने की शुरूआत आदि के माध्यम से और बढ़ाया जा सकता है।
/*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)