Chiến lược hỗ trợ và kháng cự động dựa trên dữ liệu lịch sử


Ngày tạo: 2023-11-28 17:00:13 sửa đổi lần cuối: 2023-11-28 17:04:16
sao chép: 4 Số nhấp chuột: 648
1
tập trung vào
1619
Người theo dõi

Chiến lược hỗ trợ và kháng cự động dựa trên dữ liệu lịch sử

Tổng quan

Chiến lược này dựa trên tính toán động của giá cao, giá thấp và giá đóng cửa lịch sử, được hỗ trợ bởi mức kháng cự và tạo ra tín hiệu giao dịch. Chiến lược này phù hợp với việc giữ vị trí đường dài và dài, có thể sử dụng hiệu quả kháng cự hỗ trợ trong thị trường để kiếm lợi nhuận.

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

  1. Tính trung bình của giá cao nhất, giá thấp nhất và giá đóng cửa của chu kỳ trước, để có được điểm chuẩn PP.

  2. Tính toán 3 đường dây hỗ trợ: S1 = 2PP - giá cao nhất; S2 = PP - (R1-S1); S3 = giá thấp nhất - 2(Giá cao nhất - PP)

  3. Tính 3 đường kháng lực: R1 = 2PP - Giá thấp nhất; R2 = PP + (R1-S1); R3 = Giá cao nhất + 2(PP - giá thấp nhất)

  4. Khi giá vượt qua đường kháng cự, hãy làm nhiều hơn; khi giá vượt qua đường hỗ trợ, hãy làm trống.

Phân tích lợi thế

  1. Động lực thay đổi của ngưỡng kháng cự dựa trên tính toán dữ liệu lịch sử, có thể nắm bắt cấu trúc thị trường trong thời gian thực.

  2. Thiết lập kháng cự hỗ trợ nhiều cấp, có thể tối ưu hóa quản lý rủi ro.

  3. Các tín hiệu giao dịch trực quan, đơn giản và các phương pháp dừng lỗ.

Phân tích rủi ro

  1. Trong các trường hợp biến động cao, giá tham chiếu được cung cấp bởi dữ liệu lịch sử có thể không có hiệu lực.

  2. Chuyển đổi giữa nhiều vị trí trống cần xem xét chi phí giao dịch.

  3. Cần đảm bảo chất lượng dữ liệu, tránh các lỗi tính toán.

Hướng tối ưu hóa

  1. Có thể xem xét thêm các tài liệu tham khảo lịch sử, chẳng hạn như đường 100 ngày.

  2. Tối ưu hóa quản lý vị trí, chẳng hạn như điều chỉnh tỷ lệ vị trí dựa trên biến động.

  3. Thêm các chiến lược dừng lỗ, chẳng hạn như theo dõi dừng lỗ hoặc quản lý dừng lỗ.

Tóm tắt

Chiến lược này dựa trên khái niệm kháng cự hỗ trợ lịch sử, cung cấp giá tham chiếu nhiều cấp. Chiến lược đơn giản và trực tiếp, phù hợp để giữ vị trí trung bình và dài.

Mã nguồn chiến lược
/*backtest
start: 2023-10-28 00:00:00
end: 2023-11-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 09/06/2020
// Pivot points simply took the high, low, and closing price from the previous period and 
// divided by 3 to find the pivot. From this pivot, traders would then base their 
// calculations for three support, and three resistance levels. The calculation for the most 
// basic flavor of pivot points, known as ‘floor-trader pivots’, along with their support and 
// resistance levels.
//
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Pivot Point V2", shorttitle="Pivot Point V2", overlay = true)
res = input(title="Resolution", type=input.resolution, defval="D")
SellFrom = input(title="Sell from ", defval="R1", options=["R1", "R2", "R3"])
BuyFrom = input(title="Buy from ", defval="S1", options=["S1", "S2", "S3"])
width = input(1, minval=1)
reverse = input(false, title="Trade reverse")
xHigh  = security(syminfo.tickerid,res, high)
xLow   = security(syminfo.tickerid,res, low)
xClose = security(syminfo.tickerid,res, close)
vPP = (xHigh+xLow+xClose) / 3
vS1 = 2*vPP - xHigh 
vR1 = 2*vPP-xLow
vS2 = vPP - (vR1 - vS1)
vR2 = vPP + (vR1 - vS1)
vS3 = xLow - 2 * (xHigh - vPP)
vR3 = xHigh + 2 * (vPP - xLow) 
pos = 0
S = iff(BuyFrom == "S1", vS1, 
      iff(BuyFrom == "S2", vS2,
         iff(BuyFrom == "S3", vS3,0)))
B = iff(SellFrom == "R1", vR1, 
      iff(SellFrom == "R2", vR2,
         iff(SellFrom == "R3", vR3,0)))
pos := iff(close > B, 1,
       iff(close < S, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )