Chiến lược phá vỡ hỗ trợ và kháng cự trung bình di chuyển

Tác giả:ChaoZhang, Ngày: 2023-09-28 15:20:47
Tags:

Tổng quan

Chiến lược này xác định các mức hỗ trợ và kháng cự chính dựa trên đường trung bình động, và thực hiện giao dịch khi giá vượt qua các mức này.

Chiến lược logic

Chiến lược này sử dụng Mức trung bình di chuyển đơn giản (SMA) với khoảng thời gian 50 để xác định các vùng hỗ trợ và kháng cự.

  • Khi giá đóng vượt qua trên SMA từ dưới, mức cao nhất trong 50 giai đoạn qua được coi là kháng cự R
  • Khi giá đóng vượt qua dưới SMA từ trên, mức thấp nhất trong 50 giai đoạn qua được coi là hỗ trợ S
  • Đi dài khi gần vượt quá kháng cự R
  • Đi ngắn khi gần phá vỡ hỗ trợ S

Nói cách khác, chiến lược này sử dụng SMA 50 giai đoạn để chia các vùng giá, và thực hiện giao dịch khi giá vượt qua các vùng này.

Phân tích lợi thế

Chiến lược có những lợi thế sau:

  1. Sử dụng các đường trung bình động để xác định hỗ trợ / kháng cự là đáng tin cậy và có thể lọc hiệu quả các đột phá sai.
  2. Một khoảng thời gian 50 năm không quá dài cũng không quá ngắn và có thể phát hiện ra mức trung hạn có ý nghĩa.
  3. Nó chỉ sử dụng một chỉ số SMA duy nhất, dẫn đến chi phí hệ thống thấp và dễ thực hiện.
  4. Các chiến lược giao dịch đột phá rất đơn giản và hiệu quả.
  5. Có một số tham số có thể điều chỉnh, tránh tối ưu hóa quá mức.

Phân tích rủi ro

Chiến lược này cũng có những rủi ro sau:

  1. Vẫn có một số nguy cơ đột quỵ sai mà SMA không thể lọc hoàn toàn.
  2. Thời gian cố định không thể thích nghi với các chu kỳ thị trường khác nhau, có khả năng bỏ lỡ các cơ hội ngắn hạn.
  3. Có thể có sự rút lui và thử nghiệm lại sau khi đột phá ban đầu, đòi hỏi các kỹ thuật dừng lỗ thận trọng.
  4. Xu hướng xu hướng lớn hơn cần được theo dõi cho các giao dịch dài hạn.

Những rủi ro này có thể được giải quyết thông qua các tối ưu hóa như điều chỉnh thời gian SMA, thêm các chỉ số lọc xu hướng, v.v. Quản lý dừng lỗ thích hợp cũng rất quan trọng.

Hướng dẫn tối ưu hóa

Một số cách để tăng cường chiến lược:

  1. Thêm các chỉ số như MACD để giúp đánh giá hướng xu hướng và động lực.
  2. Thực hiện tối ưu hóa thích nghi của thời gian MA để điều chỉnh năng động.
  3. Cải thiện phát hiện đột phá, ví dụ như yêu cầu phá vỡ đồng thời của MA và Bollinger Bands.
  4. Bao gồm các cơ chế dừng lỗ để kiểm soát lỗ giao dịch duy nhất.
  5. Kiểm tra các tham số thời gian MA khác nhau để tìm kết hợp tối ưu.

Những cải tiến này có thể làm cho chiến lược mạnh mẽ hơn trong các chu kỳ thị trường khác nhau.

Tóm lại

Nhìn chung, chiến lược xác định hỗ trợ / kháng cự với SMAs và các giao dịch đột phá, giữ cho mọi thứ đơn giản và hiệu quả. Ngoài ra còn có một không gian đáng kể để tối ưu hóa trên nhiều chiều. Trong khi đột phá sai vẫn là một rủi ro, việc sử dụng dừng lỗ thận trọng có thể kiểm soát hiệu quả điều này. Chiến lược dễ hiểu cho người mới bắt đầu và tuyệt vời để có được kinh nghiệm thực tế.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-09-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//--------------------------*
//-- This source code is subject to the terms of the Mozilla Public License 2.0
//-- 開源代碼受Mozilla公眾授權條款2.0版規範, 網址是https://mozilla.org/MPL/2.0/
//
//@version=4
//
//  作品: [LunaOwl] 支撐壓力策略第4版
//  英文: [LunaOwl] Support Resistance Strategy V4
//
////////////////////////////////
//     ~~!!*(๑╹◡╹๑) **       //
//  製作:  @LunaOwl 彭彭      //
//  日期:  2019年03月05日     //
//  修改:  2019年04月22日     //
//  四版:  2020年06月16日     //
//  發表:  2020年06月17日     //
////////////////////////////////

//==設定策略==//

strategy("[LunaOwl] 支撐壓力策略 [回測]",
     shorttitle          = "支撐壓力策略 [回測]",
     overlay             = true,
     calc_on_order_fills = false,
     calc_on_every_tick  = false,
     pyramiding          = 0,
     currency            = currency.NONE,
     initial_capital     = 10000,
     slippage            = 5,
     default_qty_value   = 100,
     default_qty_type    = strategy.percent_of_equity,
     commission_type     = strategy.commission.percent,
     commission_value    = 0.05
     )

LB = input(50, title = "回溯期數", type = input.integer)
R = valuewhen(cross(sma(close, LB),close), highest(high, LB), 1)
S = valuewhen(cross(close,sma(close, LB)),  lowest( low, LB), 1)

plot(R, title = "壓力", color = color.green)
plot(S, title = "支撐", color = color.red)

//==定義輸出結果==//

Trend_up = crossover(close, R) ? 1 : 0
Trend_dn = crossunder(close, S) ? -1 : 0

//==設定出場規則==//

Enter = Trend_up ==  1 and Trend_up[1] == 0 ? Trend_up : na
Exit  = Trend_dn == -1 and Trend_dn[1] == 0 ? Trend_dn : na
strategy.entry("多", strategy.long, when = Enter)
strategy.entry("空", strategy.short, when = Exit)

Thêm nữa