Chiến lược giao dịch rùa của Richard

Tác giả:ChaoZhang, Ngày: 2024-02-06 11:56:47
Tags:

img

Tổng quan

Chiến lược giao dịch rùa của Richard là một chiến lược giao dịch dựa trên kỹ thuật giao dịch rùa của Richard Dennis. Nó sử dụng sự đột phá giá để theo dõi xu hướng. Nó đi dài khi giá phá vỡ mức cao nhất trong 20 ngày và đi ngắn khi giá phá vỡ mức thấp nhất trong 20 ngày.

Chiến lược logic

Lý thuyết cốt lõi của chiến lược giao dịch rùa của Richard là theo dõi xu hướng dựa trên sự đột phá giá. Cụ thể, chiến lược liên tục theo dõi giá cao nhất (_20_day_highest) và thấp nhất (_20_day_lowest) trong 20 ngày qua. Khi giá đóng phá vỡ mức cao nhất 20 ngày, nó báo hiệu đột phá tăng, kích hoạt lệnh dài. Khi giá đóng giảm xuống dưới mức thấp nhất 20 ngày, nó báo hiệu đột phá giảm, kích hoạt lệnh ngắn.

Sau khi nhập vị trí, chiến lược sử dụng Average True Range (ATR) để tính giá dừng lỗ. Nó cũng theo dõi giá cao và thấp 10 ngày cho dừng lỗ trượt. Khi dừng lỗ dài hoặc dừng lỗ trượt được kích hoạt, nó sẽ đóng vị trí dài. Khi dừng lỗ ngắn hoặc dừng lỗ trượt được kích hoạt, nó sẽ đóng vị trí ngắn.

Ưu điểm

Chiến lược thương mại rùa của Richard có những lợi thế sau:

  1. Nó tự động theo dõi xu hướng bằng cách sử dụng giá đột phá. Nó có thể tự động xác định xu hướng đảo ngược và điều chỉnh các vị trí phù hợp.
  2. Cơ chế dừng lỗ ATR kiểm soát hiệu quả lỗ dừng duy nhất.
  3. Cơ chế dừng lỗ trượt khóa một số lợi nhuận và giảm rút tiền.
  4. Khái niệm chiến lược rất đơn giản và dễ hiểu cho người mới bắt đầu.
  5. Không cần dự đoán xu hướng thị trường hoặc tính toán phức tạp, chỉ đơn giản là giao dịch dựa trên quy tắc.

Rủi ro

Ngoài ra còn có một số rủi ro với chiến lược giao dịch rùa của Richard:

  1. Giao dịch đột phá có xu hướng bị mắc kẹt, đôi khi tạo ra tần suất giao dịch quá mức.
  2. ATR và stop loss trượt có thể quá nghiêm ngặt, đôi khi gây ra stop loss sớm.
  3. Nó chỉ sử dụng dữ liệu giá mà không kết hợp các yếu tố khác để dự đoán tính liên tục của xu hướng.
  4. Rủi ro quá mức, kết quả giao dịch thực sự có thể kém.

Để giảm thiểu những rủi ro này, chúng tôi có thể tối ưu hóa điều kiện nhập cảnh với nhiều chỉ số hơn để dự đoán xu hướng; điều chỉnh thuật toán dừng lỗ để giảm tần suất dừng lỗ.

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

Chiến lược thương mại rùa của Richard có thể được tối ưu hóa trong các khía cạnh sau:

  1. Tối ưu hóa các tham số để tìm kết hợp các tham số tối ưu, chẳng hạn như điều chỉnh chu kỳ tính toán hoặc thử nghiệm các số nhân ATR khác nhau.
  2. Kết hợp nhiều chỉ số hoặc thuật toán học máy để đánh giá tính liên tục của xu hướng, chẳng hạn như đường trung bình động, chỉ số động lực vv.
  3. Tối ưu hóa các phương pháp dừng lỗ, chẳng hạn như thử nghiệm dừng lỗ trượt linh hoạt, dừng lỗ kéo dài vv.
  4. Kết hợp các chỉ số tâm lý, tin tức và nhiều thông tin khác để dự đoán chuyển động thị trường.

Kết luận

Chiến lược giao dịch rùa của Richard là một chiến lược theo xu hướng đột phá rất điển hình. Nó đơn giản và thực tế, tốt cho người mới bắt đầu học và một mô hình giao dịch lượng. Chiến lược có thể được tối ưu hóa theo nhiều cách để giảm rủi ro và tăng lợi nhuận.


/*backtest
start: 2023-02-05 00:00:00
end: 2024-02-05 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/
// © melodyera0822

//@version=4
strategy("Richard Strategy", overlay=true)

// User input
variable_for_stoploss = input(4,title="stop loss var")
lenght = input(20,title="lenght")

// high_low
_20_day_highest = highest(nz(close[1]), lenght)
_20_day_lowest = lowest(nz(close[1]), lenght)

_10_day_low = lowest(nz(close[1]), lenght/2)
_10_day_high = highest(nz(close[1]), lenght/2)

//indicators
atr20 = atr(20)
ema_atr20 = ema(atr20,20)

//vars
var traded = "false"
var buy_sell = "none"
var buyExit = false
var sellExit = false
var stoploss = 0

buyCon = close > _20_day_highest and traded == "false"
plotshape(buyCon,style = shape.triangleup,location = location.belowbar, color = color.green )
if (buyCon)
    strategy.entry("long", strategy.long, when = buyCon)
    traded := "true"
    buy_sell := "buy"
    stoploss := round(close - variable_for_stoploss * ema_atr20)
    
sellCon = close < _20_day_lowest and  traded == "false"
plotshape(sellCon,style = shape.triangledown, color = color.red )
if (sellCon)
    strategy.entry("short", strategy.short)
    traded := "true"
    buy_sell := "sell"
    stoploss := round(close - variable_for_stoploss * ema_atr20)

if traded == "true"
    if buy_sell == "buy" and ((close<stoploss)or(close<_10_day_low))
        strategy.close("long")
        buyExit := true
        traded := "false"
        
    if buy_sell == "sell" and ((close>stoploss)or(close>_10_day_high))
        strategy.close("short")
        sellExit := true
        traded := "false"
        
plotshape(buyExit,style = shape.triangleup,location = location.belowbar, color = color.yellow )
buyExit := false
plotshape(sellExit,style = shape.triangledown, color = color.yellow )
sellExit := false

Thêm nữa