
La estrategia CCI+ es una estrategia de comercio cuantitativa que combina el indicador de avance (CCI) y la señal de cruce de la línea de avance. La estrategia espera la formación de un horno de la línea de avance para que el precio retroceda cerca de la línea rápida y se venda al mismo tiempo que el indicador CCI. La estrategia se vende cuando el precio rebota cerca de la línea rápida y se vende al mismo tiempo que el indicador CCI.
La estrategia de compra y compra de retiro cruzado de CCI + es una estrategia de negociación cuantitativa que combina el seguimiento de la tendencia y los beneficios de la entrada en contra. La estrategia de captura de la tendencia a través de la dirección de la tendencia a través de la línea de paridad y el uso del indicador CCI para distinguir el intervalo de sobreventa, mientras se espera que los precios se retiren y reboten para obtener un precio de entrada más óptimo, puede mejorar en cierta medida el potencial de ganancia de la estrategia y la rentabilidad del riesgo.
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tradedots
//@version=5
strategy("CCI + MA Crossover Pullback Buy Strategy [TradeDots]", overlay=true)
ma(source, length, type) =>
type == "SMA" ? ta.sma(source[1], length) :
type == "EMA" ? ta.ema(source[1], length) :
type == "SMMA (RMA)" ? ta.rma(source[1], length) :
type == "WMA" ? ta.wma(source[1], length) :
type == "VWMA" ? ta.vwma(source[1], length) :
na
//CCI settings
cci_coloring = input.bool(true, "CCI Background Color", group = "Commodity channel index")
cci_length = input.int(20,"CCI Length", group = "Commodity channel index")
cci_ma_type = input.string("EMA","CCI MA Type", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group = "Commodity channel index")
cci_soruce = input(hlc3, "CCI Source", group = "Commodity channel index")
cci_threshold = input.int(100, "CCI Threshold", group = "Commodity channel index")
cci_ma = ma(cci_soruce, cci_length, cci_ma_type)
cci = (cci_soruce - cci_ma) / (0.015 * ta.dev(cci_soruce, cci_length))
bgcolor(cci > cci_threshold and cci_coloring ? color.new(#f9396a, 80) : cci < -cci_threshold and cci_coloring? color.new(#9cff87, 80) : na, title = "CCI Overbought / Oversold")
//ma crossover settings
input_crossover_labels = input.bool(true, "Show Crossover Labels", group="Moving average")
fastma_type = input.string("EMA","", inline="fastma", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Moving average")
fastma_source = input(close, "", inline="fastma", group="Moving average")
fastma_length = input.int(10, "", inline="fastma", minval=1,group="Moving average")
fastma_color = input(#e2fdff, "", inline="fastma",group="Moving average")
fastma = ma(fastma_source, fastma_length, fastma_type)
fastmaPlot = plot(fastma, color = #b7e4c7, linewidth = 2, title = "Fast MA")
slowma_type = input.string("EMA","", inline="slowma", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Moving average")
slowma_source = input(close, "", inline="slowma", group="Moving average")
slowma_length = input.int(30, "", inline="slowma", minval=1,group="Moving average")
slowma_color = input(#e2fdff, "", inline="slowma",group="Moving average")
slowma = ma(slowma_source, slowma_length, slowma_type)
slowmaPlot = plot(slowma, color = #2d6a4f, linewidth = 2, title = "Slow MA")
bullish_crossover = ta.crossover(fastma, slowma)
bearish_crossover = ta.crossunder(fastma, slowma)
// // strategy
// if bullish_crossover and input_crossover_labels
// line.new(bar_index, close, bar_index, close * 1.01, extend = extend.both, color = color.new(#9cff87, 30), style = line.style_dotted, width = 3)
// label.new(bar_index,low, "Bullish Crossover", style = label.style_label_up, color = #9cff87)
// else if bearish_crossover and input_crossover_labels
// line.new(bar_index, close, bar_index, close * 1.01, extend = extend.both, color = color.new(#f9396a, 30), style = line.style_dotted, width = 3)
// label.new(bar_index, high, "Bearish Crossover", style = label.style_label_down, color = #f9396a, textcolor = color.white)
if fastma > slowma and close[1] < fastma and close > open and cci < -cci_threshold
strategy.entry("Long", strategy.long)
// if strategy.opentrades == 0 or strategy.opentrades.size(strategy.opentrades -1) < 0
// label.new(bar_index,low, "🟢 Long", style = label.style_label_up, color = #9cff87)
if fastma < slowma and close[1] > fastma and close < open and cci > cci_threshold
strategy.entry("Short", strategy.short)
// if strategy.opentrades == 0 or strategy.opentrades.size(strategy.opentrades -1) > 0
// label.new(bar_index, high, "🔴 Short", style = label.style_label_down, color = #f9396a, textcolor = color.white)