Chiến lược đột phá xu hướng hàng tháng

Tác giả:ChaoZhang, Ngày: 2023-10-24 16:08:33
Tags:

img

Tổng quan

Chiến lược đột phá xu hướng hàng tháng là một chỉ số TradingView dựa trên Pine Script. Nó kết hợp trung bình động thích nghi, đột phá đường xu hướng và chỉ số RSI để xác định tín hiệu đầu vào dài mỗi tháng một lần.

Chiến lược logic

  1. Định biến lastEntryMonth để theo dõi tháng nhập cuối cùng. currentMonth nhận được tháng hiện tại.

  2. Thiết lập các tham số MA thích nghi TRAMA dài = 99 để làm mượt giá và xác định xu hướng.

  3. Đặt length_trend=14 để vẽ đường xu hướng phía trên dựa trên mức cao của pivot.

  4. Tính toán chỉ số RSI với rsiLength = 14 để xác định mua quá mức / bán quá mức.

  5. Logic Entry: Đi dài nếu đóng > TRAMA và đóng các đoạn trên đường xu hướng trên, nếu không có mục nhập trong tháng trước.

  6. Logic Exit: Đóng dài nếu RSI > 70 (đã mua quá mức).

  7. Biểu đồ đường TRAMA và RSI đã mua quá mức 70.

Chiến lược kết hợp 3 chỉ số kỹ thuật chính để tìm các mục đầu tư dài có rủi ro thấp mỗi tháng một lần.

Ưu điểm

  1. Kết hợp nhiều chỉ số để phân tích thị trường mạnh mẽ và chính xác hơn.

  2. Giới hạn các mục vào khung thời gian hàng tháng, tránh giao dịch quá mức.

  3. MA thích nghi nhanh chóng thích nghi với những thay đổi xu hướng.

  4. RSI bán quá mức tránh mua ở đỉnh thị trường và kiểm soát rủi ro.

  5. Các quy tắc nhập cảnh / xuất cảnh đơn giản dễ thực hiện.

  6. Các tham số có thể tùy chỉnh cho phép tối ưu hóa chiến lược.

Rủi ro

  1. Rủi ro nếu phá vỡ thất bại, dừng lỗ nếu giá giảm xuống dưới đường xu hướng.

  2. Thời điểm không phù hợp dẫn đến những lần vào gần đỉnh.

  3. Các thông số chỉ số sai gây ra tín hiệu sai lệch.

  4. Breakouts có thể phản ánh sự biến động thị trường gần đây.

  5. Kiểm tra rủi ro / phần thưởng. Chỉ xem xét việc giao dịch rút tiền hoặc thêm các bộ lọc xác nhận khác.

  6. Sử dụng khung thời gian cao hơn để xác định xu hướng và thấp hơn cho nhập cảnh.

  7. Kiểm tra lại trên các điều kiện thị trường khác nhau. Tối ưu hóa các thông số để phù hợp với chiến lược với loại thị trường.

Tối ưu hóa

  1. Thêm chỉ số âm lượng để tránh đột phá sai với âm lượng thấp.

  2. Xem xét lợi nhuận một phần trên RSI mua quá mức thoát ra, giữ vị trí một phần.

  3. Tối ưu hóa các thông số MA để thích nghi tốt hơn với những thay đổi xu hướng.

  4. Thêm các vùng trước/sau điểm đột phá để tránh mua ngay khi đảo ngược.

  5. Thêm nhiều bộ lọc như kênh, biến động cho độ chính xác cao hơn.

  6. Tăng quy mô với các sự đột phá bổ sung ở mức kháng cự mới.

Kết luận

Chiến lược Breakout xu hướng hàng tháng phân tích xu hướng, động lực và cực đoan. Nó xác định xu hướng trên khung thời gian hàng tháng nhưng đi vào các khung thời gian ngắn hơn. RSI giám sát quản lý rủi ro. Logic đơn giản xác định các mục dài hàng tháng tối ưu hóa. Nó cân bằng theo xu hướng và kiểm soát rủi ro. Tối ưu hóa tham số điều chỉnh nó theo các điều kiện thị trường khác nhau. Nhìn chung, đây là một chiến lược đơn giản nhưng mạnh mẽ kết hợp khả năng sử dụng và quản lý rủi ro hiệu quả.


/*backtest
start: 2022-10-17 00:00:00
end: 2023-10-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('Bannos Strategy', shorttitle='Bannos', overlay=true)

//The provided script is an indicator for TradingView written in Pine Script version 5. The indicator is used to determine entry and exit points for a trading strategy. Here's a detailed breakdown of what the script does:

// Strategy Definition:

// Bannos Strategy is the full name, with a short title Bannos.
// The overlay=true option indicates that the strategy will be overlayed on the price chart.
// Tracking Entry Month:

// A variable lastEntryMonth is set up to track the month of the last entry.
// currentMonth identifies the current month.
// Trend Regularity Adaptive Moving Average (TRAMA):

// It takes an input of length 99 as default.
// It uses adaptive calculations to track trend changes.
// Trendlines with Breaks:

// Identifies local peaks over a given period (in this case, 14) and calculates a slope based on these peaks.
// Relative Strength Index (RSI):

// Uses a length of 14 (default) to calculate the RSI.
// RSI is an oscillation indicator that indicates overbought or oversold conditions.
// Strategy Logic for Long Entry:

// A long position is opened if:
// The close price is above the TRAMA.
// There's a crossover of the close price and the upper trendline.
// The position is taken only once per month.
// Strategy Logic for Long Exit:

// The long position is closed if the RSI exceeds 70, indicating an overbought condition.
// Plotting:

// The TRAMA is plotted in red on the chart.
// A horizontal line is also drawn at 70 to indicate the RSI's overbought zone.
// In summary, this strategy aims to enter a long position when certain trend and crossover conditions are met, and close the position when the market is considered overbought as per the RSI. Additionally, it ensures entries only occur once a month.
//



// Variable pour suivre le mois de la dernière entrée
var float lastEntryMonth = na
currentMonth = month(time)

// Parameters for Trend Regularity Adaptive Moving Average (TRAMA)
length_trama = input(99)
src_trama = close
ama = 0.
hh = math.max(math.sign(ta.change(ta.highest(length_trama))), 0)
ll = math.max(math.sign(ta.change(ta.lowest(length_trama)) * -1), 0)
tc = math.pow(ta.sma(hh or ll ? 1 : 0, length_trama), 2)
ama := nz(ama[1] + tc * (src_trama - ama[1]), src_trama)

// Parameters for Trendlines with Breaks
length_trend = 14
mult = 1.0
ph = ta.pivothigh(length_trend, length_trend)
upper = 0.
slope_ph = 0.
slope_ph := ph ? mult : slope_ph
upper := ph ? ph : upper - slope_ph

// Parameters for RSI
rsiLength = 14
up = ta.rma(math.max(ta.change(close), 0), rsiLength)
down = ta.rma(-math.min(ta.change(close), 0), rsiLength)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

// Strategy Logic for Long Entry
longCondition = close > ama and ta.crossover(close, upper) and (na(lastEntryMonth) or lastEntryMonth != currentMonth)
if (longCondition)
    lastEntryMonth := currentMonth
    strategy.entry('Long', strategy.long)

// Strategy Logic for Long Exit
exitCondition = rsi > 70
if (exitCondition)
    strategy.close('Long')

// Plotting
plot(ama, 'TRAMA', color=color.red)
hline(70, 'Overbought', color=color.red)


Thêm nữa