
Die CCI+ Binär-Cross-Even-Line-Rücktritt-Buy-Strategie ist eine quantitative Handelsstrategie, die die Kombination aus dem Trend-Indikator ((CCI) und dem Binär-Even-Line-Cross-Signal nutzt. Die Strategie kauft nach der Bildung der Binär-Even-Line-Fork und wartet darauf, dass der Preis in der Nähe der Schnelllinie zurücktritt, während der CCI-Indikator überkauft wird, und verkauft, wenn der Preis in der Nähe der Schnelllinie aufspringt und der CCI-Indikator überkauft wird. Durch die Kombination von CCI und Binär-Even-Line-Cross-Signal kann die Strategie tendenzielle Gelegenheiten besser erfassen und gleichzeitig durch die Wartezeit von Rücktritt-Buy- und Bounce-Out-Signalen bessere Ein- und Ausstiegsmöglichkeiten erhalten, wodurch die Risikogewinnung der Strategie erhöht wird.
Die CCI+-Doppel-Gleichgewichts-Kreuz-Rücktritts-Kaufstrategie ist eine quantitative Handelsstrategie, die die Vorteile von Trendverfolgung und Gegen-Eintritt kombiniert. Durch die Doppel-Gleichgewichts-Erfassung der Trendrichtung und die Verwendung von CCI-Indikatoren, um Überkauf-Überverkauf-Bereiche zu unterscheiden, und die Wartezeit für Preisrücktritte und Rebound, um einen besseren Einstiegspreis zu erhalten, kann das Gewinnpotenzial und die Risikogewinnquote der Strategie bis zu einem gewissen Grad verbessert werden. Die Strategie ist jedoch auch mit Risiken wie Parameteroptimierung, Marktschwankungen und Trendwechseln konfrontiert und muss durch weitere Optimierungen und Verbesserungen gestärkt werden.
/*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)