Xu hướng đột phá theo chiến lược

Tác giả:ChaoZhang, Ngày: 2023-12-08 17:16:34
Tags:

img

Tổng quan

Chiến lược này theo dõi xu hướng giá của tiền điện tử bằng cách thiết lập mức giá cao và thấp. Nó đi dài khi giá vượt qua mức giá cao nhất và đi ngắn khi giá vượt qua mức giá thấp nhất để nắm bắt xu hướng.

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

Chiến lược này chủ yếu sử dụng phương pháp trung bình động cân để xác định liệu có xu hướng tăng hoặc giảm rõ ràng hay không. Cụ thể, nó sẽ ghi lại giá cao nhất và thấp nhất trong một khoảng thời gian nhất định. Khi giá giao dịch thực tế vượt quá giá cao nhất được ghi nhận, nó được đánh giá là xu hướng tăng đã xảy ra và nó sẽ dài. Khi giá giao dịch thực tế thấp hơn giá thấp nhất được ghi nhận, nó được đánh giá là xu hướng giảm đã xảy ra và nó sẽ ngắn.

Giá mở cho dài và ngắn được thiết lập thông qua tham số đầu vào ENTRY, và giá đóng được thiết lập thông qua tham số EXIT.

Cụ thể, logic chính của chiến lược là:

  1. Ghi lại giá cao nhất và thấp nhất trong một khoảng thời gian nhất định (có thể điều chỉnh)
  2. Phán quyết nếu giá giao dịch thực tế cao hơn giá cao nhất
    1. Nếu cao hơn, có một cơ hội dài, mở vị trí dài dựa trên mức giá được thiết lập bởi tham số ENTRY
    2. Nếu giá giao dịch thực tế thấp hơn giá thấp nhất, có một cơ hội ngắn, mở vị trí ngắn dựa trên mức giá được thiết lập bởi tham số EXIT
  3. Sau khi mở vị trí dài, đóng lại khi giá giảm xuống dưới mức được thiết lập bởi tham số EXIT
  4. Sau khi mở vị trí ngắn, đóng nó khi giá tăng trên mức được thiết lập bởi tham số ENTRY

Thông qua vòng lặp logic này, nó có thể nắm bắt xu hướng tăng và giảm của giá và đạt được xu hướng theo.

Ưu điểm

Ưu điểm lớn nhất của chiến lược này là bằng cách điều chỉnh các tham số, nó có thể tự động nắm bắt xu hướng giá mà không cần phải đánh giá theo hướng xu hướng.

Ngoài ra, chiến lược này rất phù hợp với giao dịch định lượng và có thể dễ dàng đạt được việc đặt lệnh tự động. Không cần hoạt động bằng tay, nó làm giảm rủi ro giao dịch cảm xúc và cải thiện đáng kể hiệu quả giao dịch.

Cuối cùng, chiến lược này cũng có thể tối đa hóa lợi nhuận bằng cách điều chỉnh các tham số. Bằng cách thử nghiệm các tham số ENTRY và EXIT khác nhau, các tham số tối ưu có thể được tìm thấy để tối đa hóa lợi nhuận.

Rủi ro

Rủi ro lớn nhất của chiến lược này là việc cài đặt tham số không đúng có thể dẫn đến giao dịch quá thường xuyên, tăng phí giao dịch và lỗ trượt.

Ngoài ra, điều chỉnh tham số không đúng cũng có thể dẫn đến việc không nắm bắt xu hướng giá đúng thời gian, bỏ lỡ cơ hội giao dịch.

Cuối cùng, chiến lược này quá nhạy cảm với tiếng ồn thị trường ngắn hạn, có thể tạo ra các tín hiệu giao dịch sai.

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

Các khía cạnh sau đây có thể được tối ưu hóa hơn nữa cho chiến lược này:

  1. Thêm logic dừng lỗ. Điều này cho phép dừng lỗ khi lỗ vượt quá một tỷ lệ phần trăm nhất định để tránh lỗ lớn hơn.

  2. Thêm các bộ lọc chỉ số kỹ thuật như trung bình động, KDJ để đánh giá xu hướng tổng thể để tránh giao dịch quá nhiều do tiếng ồn ngắn hạn.

  3. Tối ưu hóa logic thiết lập tham số. Cơ chế thay đổi thích nghi có thể được thiết lập cho các tham số ENTRY và EXIT thay vì thiết lập tĩnh để chúng có thể điều chỉnh dựa trên điều kiện thị trường.

  4. Sử dụng máy học để đào tạo các thông số tối ưu. Nhận các thiết lập ENTRY và EXIT tối ưu cho môi trường thị trường hiện tại thông qua đào tạo dữ liệu lịch sử lớn.

Kết luận

Ưu điểm lớn nhất của chiến lược này là bằng cách nắm bắt xu hướng giá, nó đạt được giao dịch tự động, có thể làm giảm tác động của cảm xúc con người đối với giao dịch, giảm rủi ro và cải thiện hiệu quả.

Các rủi ro chính của chiến lược là cài đặt tham số không phù hợp và quá nhạy cảm với tiếng ồn thị trường. Điều này cần được cải thiện thông qua dừng lỗ, bộ lọc chỉ số, tối ưu hóa tham số thích nghi và nhiều hơn nữa.

Nhìn chung, đây là một xu hướng đơn giản và hiệu quả sau chiến lược phù hợp với giao dịch định lượng và tự động.


/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 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 at https://mozilla.org/MPL/2.0/
// © JstMtlQC

//@version=4
strategy("Trend Following Breakout",calc_on_order_fills=true,calc_on_every_tick =false, overlay=true, initial_capital=2000,commission_value=.1,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)


/////////////// INPUT ENTRY EXIT
entry= input(100, "ENTRY H/L")
exit= input(50, "EXIT H/L")

/////////////// Backtest Input
FromYear = input(2015, "Backtest Start Year")
FromMonth = input(1, "Backtest Start Month")
FromDay = input(1, "Backtest Start Day")
ToYear = input(2999, "Backtest End Year")
ToMonth = input(1, "Backtest End Month")
ToDay = input(1, "Backtest End Day")

/////////////// Backtest Setting
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)       
window()  => time >= start and time <= finish ? true : false 

/////////////// BUY OPEN PLOT
highestpricelong = highest(high,entry)[1]
plot(highestpricelong, color=color.green, linewidth=2)

/////////////// BUY CLOSE PLOT
lowestpricelong = lowest(high,exit)[1]
plot(lowestpricelong, color=color.green, linewidth=2)

/////////////// SHORT OPEN PLOT
lowestpriceshort = lowest(low,entry)[1]
plot(lowestpriceshort, color=color.red, linewidth=2)

/////////////// SHORT CLOSE PLOT
highestpriceshort = highest(low,exit)[1]
plot(highestpriceshort, color=color.red, linewidth=2)

///////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// CONDITION LONG SHORT //////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////

/////////////// SHORT 

entryshort= crossunder(close, lowestpriceshort)
exitshort= crossover(close,highestpriceshort)

/////////////// LONG 

exitlong= crossover(close, lowestpricelong)
entrylong= crossover(close,highestpricelong)

///////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// LONG and SHORT ORDER //////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////

/////////////// LONG 

if (entrylong)
    strategy.entry("LongEntry", strategy.long, when = window())
if (exitlong or entryshort)
    strategy.close("LongEntry", when=window())

/////////////// SHORT 

if (entryshort)
    strategy.entry("short", strategy.short, when = window())
if (exitshort or entrylong)
    strategy.close("short", when=window())



Thêm nữa