Tài nguyên đang được tải lên... tải...

CCI + MA Crossover Pullback Buy Chiến lược

Tác giả:ChaoZhang, Ngày: 2024-05-24 17:45:49
Tags:CCIMA

img

Tổng quan

CCI + MA Crossover Pullback Buy Strategy là một chiến lược giao dịch định lượng kết hợp Chỉ số kênh hàng hóa (CCI) và tín hiệu chéo trung bình động kép. Chiến lược mua khi giá kéo trở lại mức trung bình di chuyển nhanh và CCI chỉ ra điều kiện bán quá mức sau khi chéo tăng. Nó bán khi giá tăng lên mức trung bình di chuyển nhanh và CCI chỉ ra điều kiện mua quá mức sau khi chéo giảm. Bằng cách kết hợp CCI và tín hiệu chéo trung bình di chuyển kép, chiến lược này có thể nắm bắt tốt hơn các cơ hội xu hướng trong khi đạt được các điểm vào và ra tốt hơn thông qua mua lại và bán tăng, do đó cải thiện tỷ lệ rủi ro-lợi nhuận.

Chiến lược logic

  1. Tính toán chỉ số CCI dựa trên các thông số CCI được xác định bởi người dùng (nguồn, thời gian, loại trung bình động, ngưỡng mua quá mức / bán quá mức).
  2. Xác định các điều kiện mua quá mức / bán quá mức CCI. Đặt màu nền màu đỏ khi CCI vượt quá ngưỡng mua quá mức và màu xanh lá cây khi dưới ngưỡng bán quá mức.
  3. Tính toán các đường trung bình động nhanh và chậm dựa trên các thông số được xác định bởi người dùng (nguồn, thời gian, loại đường trung bình động).
  4. Xác định giao thoa tăng và giảm. Chụp một tín hiệu tăng khi MA nhanh vượt qua trên MA chậm, và một tín hiệu giảm khi MA nhanh vượt qua dưới MA chậm.
  5. Hãy đưa ra quyết định giao dịch:
    • Nhập dài: Khi MA nhanh vượt quá MA chậm, nến trước đóng dưới MA nhanh, nến hiện tại tăng và CCI dưới ngưỡng bán quá mức, mua để mở vị trí dài.
    • Nhập ngắn: Khi MA nhanh nằm dưới MA chậm, nến trước đóng trên MA nhanh, nến hiện tại giảm và CCI nằm trên ngưỡng mua quá mức, bán để mở một vị trí ngắn.

Ưu điểm chiến lược

  1. Theo dõi xu hướng: Các tín hiệu chéo trung bình động kép giúp xác định hướng xu hướng và phù hợp hơn với xu hướng thị trường.
  2. Nhập vào xu hướng ngược lại: Chờ cho giá giảm để mua hoặc tăng giá để bán sau khi xác nhận xu hướng có thể dẫn đến giá nhập tốt hơn và cải thiện tỷ lệ rủi ro-lợi nhuận.
  3. Giảm tín hiệu sai: Kết hợp CCI với tín hiệu chéo trung bình động có thể giảm hiệu quả các tín hiệu sai được tạo ra bởi một chỉ số duy nhất.
  4. Các tham số linh hoạt: Người dùng có thể linh hoạt thiết lập các tham số CCI và trung bình động theo sở thích của họ để tối ưu hóa hiệu suất chiến lược.

Rủi ro chiến lược

  1. Nguy cơ thị trường hỗn loạn: Trong một thị trường hỗn loạn, giao dịch tăng và giảm thường xuyên có thể dẫn đến nhiều giao dịch thua lỗ hơn.
  2. Rủi ro tham số: Cài đặt tham số không phù hợp có thể dẫn đến hiệu suất chiến lược kém.
  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 việc ra khỏi và bị rút lớn hơn.

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

  1. Thiết lập kích thước vị trí để điều chỉnh động kích thước vị trí của mỗi giao dịch dựa trên sức mạnh xu hướng và biến động hiện tại để kiểm soát rủi ro tốt hơn.
  2. Tối ưu hóa điều kiện nhập bằng cách kết hợp các chỉ số âm lượng hoặc các chỉ số xác nhận phụ khác để cải thiện độ tin cậy của tín hiệu nhập.
  3. Tối ưu hóa điều kiện thoát bằng cách thiết lập dừng lại hoặc dừng thời gian để giảm lỗ tối đa cho mỗi giao dịch.
  4. Thực hiện tối ưu hóa tham số cho các thị trường và công cụ khác nhau riêng biệt để tăng khả năng thích nghi và độ bền của chiến lược.

Tóm lại

CCI + MA Crossover Pullback Buy Strategy là một chiến lược giao dịch định lượng kết hợp các lợi thế của việc theo xu hướng và bước vào xu hướng ngược. Bằng cách nắm bắt hướng xu hướng với các đường trung bình động kép và xác định các khu vực mua quá mức / bán quá mức với chỉ số CCI, trong khi chờ đợi giá giảm và tăng giá để đạt được giá nhập tốt hơn, chiến lược có khả năng cải thiện lợi nhuận và tỷ lệ rủi ro-lợi nhuận đến một mức độ nhất định. Tuy nhiên, chiến lược cũng phải đối mặt với các rủi ro như tối ưu hóa tham số, thị trường hỗn loạn và thay đổi xu hướng đột ngột.


/*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)

Có liên quan

Thêm nữa