Chiến lược mua thoái lui giao cắt đường trung bình động kép CCI +

CCI MA
Ngày tạo: 2024-05-24 17:45:49 sửa đổi lần cuối: 2024-05-24 17:45:49
sao chép: 3 Số nhấp chuột: 680
1
tập trung vào
1617
Người theo dõi

Chiến lược mua thoái lui giao cắt đường trung bình động kép CCI +

Tổng quan

CCI + Binary Equilibrium Crossover Buyback là một chiến lược giao dịch định lượng sử dụng tổng hợp các chỉ số thuận lợi (CCI) và tín hiệu giao dịch Binary Equilibrium. Chiến lược này được hình thành sau khi Bi-equilibrium Fork hình thành, chờ đợi giá rút lui đến gần đường nhanh cùng lúc với CCI chỉ số oversell mua, sau khi hình thành giá chết, giá bật lên gần đường nhanh cùng lúc với CCI chỉ số oversell bán. Bằng cách kết hợp CCI và Binary Equilibrium Crossover, chiến lược này có thể nắm bắt tốt hơn các cơ hội xu hướng, đồng thời có được các cơ hội vào và ra tốt hơn bằng cách chờ đợi mua và bán tháo gỡ.

Nguyên tắc chiến lược

  1. Tính toán chỉ số CCI, tính toán giá trị CCI hiện tại dựa trên các tham số CCI mà người dùng đã đặt (dữ liệu nguồn, chu kỳ, loại trung bình di chuyển, thềm mua bán quá mức).
  2. Để đánh giá CCI quá mua quá bán, khi CCI lớn hơn ngưỡng mua quá bán, hãy đặt màu nền là màu đỏ, và khi nhỏ hơn ngưỡng bán quá giá, hãy đặt màu nền là màu xanh lá cây.
  3. Tính toán đường trung bình nhanh chậm, dựa trên các tham số đường trung bình nhanh nhanh do người dùng thiết lập (dữ liệu nguồn, chu kỳ, loại trung bình di chuyển) tính toán đường trung bình nhanh nhanh hiện tại.
  4. Xác định gai vàng, vẽ tín hiệu đa đầu khi đường nhanh xuyên qua đường chậm để tạo ra gai vàng, vẽ tín hiệu đầu trống khi đường nhanh xuyên qua đường chậm để tạo ra gai chết.
  5. Quyết định giao dịch:
    • Bắt đầu nhiều đầu: mua nhiều khi đường nhanh nằm trên đường chậm và giá đóng cửa đường K trước đó nằm dưới đường nhanh, đường K hiện tại là đường dương và CCI nhỏ hơn ngưỡng bán tháo
    • Bước vào đầu trống: Khi đường nhanh nằm dưới đường chậm và giá đóng cửa của đường K trước đó nằm trên đường nhanh, đường K hiện tại là đường âm, và CCI lớn hơn ngưỡng mua bán khi bán vị trí trống

Lợi thế chiến lược

  1. Theo dõi xu hướng: Xác định hướng xu hướng bằng tín hiệu chéo hai đường bằng nhau, có thể tuân theo xu hướng thị trường tốt hơn.
  2. Tham gia ngược: chờ đợi giá quay trở lại mua hoặc bán tháo sau khi xu hướng được thiết lập, có thể có được giá nhập cảnh tương đối tốt hơn, tăng tỷ lệ lợi nhuận rủi ro.
  3. Giảm tín hiệu giả: Kết hợp chỉ số CCI với tín hiệu chéo đường trung bình, có thể giảm hiệu quả tín hiệu giả do chỉ số đơn lẻ tạo ra.
  4. Tính năng linh hoạt: Người dùng có thể tùy chỉnh CCI và đường trung bình tùy theo sở thích của mình để tối ưu hóa hiệu suất chiến lược.

Rủi ro chiến lược

  1. Rủi ro của thị trường chấn động: Trong thị trường chấn động, các giao dịch bị mất giá thường xuyên có thể dẫn đến chiến lược gây ra nhiều giao dịch thua lỗ.
  2. Rủi ro tham số: Thiết lập tham số không phù hợp có thể dẫn đến hiệu suất chiến lược kém, cần phản hồi và phân tích đầy đủ về sự kết hợp tham số tối ưu trong các điều kiện thị trường khác nhau.
  3. Rủi ro xu hướng: Khi xu hướng thị trường đảo ngược, chiến lược có thể trì hoãn ra mắt và chịu rủi ro rút lui lớn hơn.

Hướng tối ưu hóa chiến lược

  1. Tiếp tục quản lý vị trí, động điều chỉnh vị trí của mỗi giao dịch theo cường độ và biến động của xu hướng thị trường hiện tại để kiểm soát rủi ro tốt hơn.
  2. Tối ưu hóa các điều kiện nhập, chẳng hạn như thêm các chỉ số khối lượng giao dịch hoặc các chỉ số phán đoán hỗ trợ khác, để tăng độ tin cậy của tín hiệu nhập.
  3. Tối ưu hóa các điều kiện ra ngoài, chẳng hạn như thiết lập dừng di chuyển hoặc dừng thời gian, giảm tổn thất tối đa cho một giao dịch.
  4. Tối ưu hóa các tham số cho các thị trường và giống khác nhau, nâng cao khả năng thích ứng và sự ổn định của chiến lược.

Tóm tắt

Chiến lược mua lại mua lại chéo chéo CCI + là một chiến lược giao dịch định lượng có lợi thế của theo dõi xu hướng và nhập cảnh ngược. Bằng cách nắm bắt hướng xu hướng bằng hai đường trung bình và sử dụng chỉ số CCI để phân biệt khoảng mua quá mức, trong khi chờ đợi giá rút lại và hồi phục để có được giá nhập cảnh ưu hơn, có thể nâng cao tiềm năng lợi nhuận và lợi nhuận rủi ro của chiến lược đến một mức độ nhất định. Tuy nhiên, chiến lược này cũng phải đối mặt với các rủi ro như tối ưu hóa tham số, biến động thị trường và xu hướng đột biến, cần phải tăng cường sức khỏe và khả năng lợi nhuận của chiến lược bằng cách tối ưu hóa và cải tiến hơn nữa.

Mã nguồn chiến lược
/*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)