Chiến lược theo dõi dao động ngắn hạn


Ngày tạo: 2024-01-18 16:29:34 sửa đổi lần cuối: 2024-01-18 16:29:34
sao chép: 0 Số nhấp chuột: 567
1
tập trung vào
1617
Người theo dõi

Chiến lược theo dõi dao động ngắn hạn

Tổng quan

Chiến lược này sử dụng sự thay đổi của giá cao nhất và giá thấp nhất của đường K để đánh giá hướng và cường độ của thị trường, kết hợp với đường trung bình để đánh giá xu hướng tổng thể, để thực hiện hoạt động đường ngắn.

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

Chiến lược này đầu tiên đánh giá sự thay đổi của giá cao nhất và giá thấp nhất của đường K so với đường K trước đó, nếu giá cao nhất tăng lên thì được ghi là 1, nếu giá thấp nhất giảm xuống là -1, nếu không thì được ghi là 0 .

Trong khi đó, chiến lược ghi lại giá cao nhất và giá thấp nhất trong chu kỳ gần đây. Khi đường trung bình đánh giá xu hướng đảo ngược, kết hợp với giá ghi lại để đánh giá mức giá quan trọng, tạo thành mức dừng lỗ và dừng chân.

Đường vào được đánh giá theo đường trung bình, mua nhiều đầu trên đường ray trên và bán đầu rỗng dưới đường ray dưới. Mức dừng và dừng được hình thành bằng cách đánh giá mức giá quan trọng.

Phân tích lợi thế

Ưu điểm lớn nhất của chiến lược này là tận dụng tối đa các đặc điểm biến động của đường ngắn để kiếm lợi nhuận. Bằng cách xác định mức giá quan trọng, một điểm dừng lỗ được hình thành, làm cho chiến lược hoạt động theo các quy tắc rõ ràng.

Phân tích rủi ro

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

  1. Không có lợi nhuận nếu không có sự biến động.

  2. Giá vượt mức dừng gây ra tổn thất không cần thiết.

  3. Xác định sai xu hướng, có thể bỏ lỡ hoặc thực hiện hoạt động ngược. Bạn có thể điều chỉnh tham số đường trung bình thích hợp.

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

Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:

  1. Điều chỉnh chu kỳ trung bình để phù hợp với các đặc điểm của các giống khác nhau.

  2. Tối ưu hóa phạm vi dừng lỗ, cân bằng lợi nhuận và thua lỗ.

  3. Thêm các chỉ số khác để tránh sai lệch.

  4. Tăng tự động dừng lỗ, kiểm soát tổn thất tối đa.

Tóm tắt

Chiến lược này nói chung là một chiến lược sử dụng các đặc điểm xung động của đường ngắn. Tận dụng tối đa phạm vi nhỏ của giá để kiếm lợi nhuận. Đồng thời kiểm soát chặt chẽ rủi ro, dừng lỗ kịp thời khi xu hướng không thuận lợi.

Mã nguồn chiến lược
/*backtest
start: 2024-01-16 00:00:00
end: 2024-01-16 22:45:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy(title = "Noro's ZZ-3 Strategy", shorttitle = "ZZ-3 str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
corr = input(0.0, title = "Correction, %")
bars = input(1, minval = 1)
revers = input(false, defval = false, title = "revers")
showll = input(true, defval = true, title = "Show Levels")
showbg = input(false, defval = false, title = "Show Background")
showar = input(false, defval = false, title = "Show Arrows")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Levels
hbar = 0
hbar := high > high[1] ? 1 : high < high[1] ? -1 : 0
lbar = 0
lbar := low > low[1] ? 1 : low < low[1] ? -1 : 0
uplevel = 0.0
dnlevel = 0.0
hh = highest(high, bars + 1)
ll = lowest(low, bars + 1)
uplevel := hbar == -1 and sma(hbar, bars)[1] == 1 ? hh + ((hh / 100) * corr) : uplevel[1]
dnlevel := lbar == 1 and sma(lbar, bars)[1] == -1 ? ll - ((ll / 100) * corr) : dnlevel[1]

//Lines
upcol = na
upcol := showll == false ? na : uplevel != uplevel[1] ? na : lime
plot(uplevel, color = upcol, linewidth = 2)
dncol = na
dncol := showll == false ? na : dnlevel != dnlevel[1] ? na : red
plot(dnlevel, color = dncol, linewidth = 2)

//Background
size = strategy.position_size
trend = 0
trend := size > 0 ? 1 : size < 0 ? -1 : high >= uplevel ? 1 : low <= dnlevel ? -1 : trend[1]
col = showbg == false ? na : trend == 1 ? lime : trend == -1 ? red : na
bgcolor(col)

//Arrows
longsignal = false
shortsignal = false
longsignal := size > size[1]
shortsignal := size < size[1]
plotarrow(longsignal and showar and needlong ? 1 : na, colorup = blue, colordown = blue, transp = 0)
plotarrow(shortsignal and showar and needshort ? -1 : na, colorup = blue, colordown = blue, transp = 0)

//Trading
lot = 0.0
lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1]
if uplevel > 0 and dnlevel > 0 and revers == false
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, stop = uplevel, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, stop = dnlevel, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if uplevel > 0 and dnlevel > 0 and revers == true
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, limit = dnlevel, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, limit = uplevel, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()