Chiến lược giao dịch của Richard the Turtle


Ngày tạo: 2024-02-06 11:56:47 sửa đổi lần cuối: 2024-02-06 11:56:47
sao chép: 0 Số nhấp chuột: 800
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch của Richard the Turtle

Tổng quan

Chiến lược giao dịch rùa của Richard (tiếng Anh: Richard’s Turtle Trading Strategy) là một chiến lược mua và bán dựa trên kỹ thuật giao dịch rùa của Richard Dennis. Chiến lược này sử dụng phá vỡ giá để thực hiện giao dịch theo xu hướng.

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

Lý luận cốt lõi của chiến lược giao dịch Richard’s Turtle dựa trên việc theo dõi xu hướng để thực hiện đột phá giá. Cụ thể, chiến lược đồng thời liên tục theo dõi giá cao nhất trong vòng 20 ngày._20_day_highest) và giá trị tối thiểu ((_20_day_lowest). Khi giá đóng cửa hiện tại vượt quá mức cao nhất trong 20 ngày, cho thấy giá đã phá vỡ lên, tại thời điểm này phát đi nhiều tín hiệu. Khi giá đóng cửa hiện tại thấp hơn mức thấp nhất trong 20 ngày, cho thấy giá đã phá vỡ xuống, tại thời điểm này phát đi tín hiệu trống.

Sau khi vào vị trí, chiến lược sẽ sử dụng chiều rộng thực trung bình ((ATR) để tính toán điểm dừng. Đồng thời, nó cũng sẽ theo dõi giá cao nhất và giá thấp nhất trong 10 ngày, thực hiện điểm dừng trượt.

Lợi thế chiến lược

Chiến lược giao dịch của Richard Turtle có những lợi thế sau:

  1. Sử dụng đột phá giá để theo dõi tự động xu hướng. Có thể tự động nhận diện xu hướng biến đổi và điều chỉnh vị trí kịp thời.
  2. Cơ chế dừng lỗ ATR, có thể kiểm soát hiệu quả các lỗ hổng đơn.
  3. Cơ chế dừng lỗ điểm trượt, có thể khóa một phần lợi nhuận, giảm rút lui.
  4. Chiến lược logic đơn giản và rõ ràng, dễ hiểu và thực hiện, phù hợp cho người mới bắt đầu học.
  5. Không cần dự đoán thị trường và COMPLEX tính toán, giao dịch đơn giản theo quy tắc.

Rủi ro chiến lược

Chiến lược giao dịch của Richard Turtle cũng có một số rủi ro:

  1. Các giao dịch đột phá có thể dễ bị lừa và đôi khi có thể gây ra quá nhiều giao dịch.
  2. ATR và điểm trượt dừng quá nghiêm ngặt, có thể dừng quá sớm.
  3. Chỉ sử dụng thông tin giá mà không kết hợp các yếu tố khác để dự đoán xu hướng tiếp tục.
  4. Các nhà nghiên cứu cho rằng các dữ liệu này có nguy cơ tương thích với các dữ liệu khác và có thể không hiệu quả.

Để giảm những rủi ro này, bạn có thể xem xét tối ưu hóa điều kiện nhập cảnh, sử dụng nhiều chỉ số 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 tối ưu hóa chiến lược

Các chiến lược giao dịch của Richard Turtle có thể được tối ưu hóa theo các hướng sau:

  1. Tối ưu hóa tham số, tìm kiếm sự kết hợp tham số tối ưu. Bạn có thể điều chỉnh chu kỳ tính toán, hoặc thử nghiệm các nhân ATR khác nhau.
  2. Sử dụng nhiều chỉ số hoặc thuật toán học máy để đánh giá xu hướng. Có thể kết hợp với đường trung bình, chỉ số năng lượng để đánh giá tính bền vững của xu hướng.
  3. Các phương pháp tối ưu hóa dừng lỗ. Có thể thử nghiệm dừng lỗ điểm trượt linh hoạt, theo dõi dừng lỗ và các phương pháp khác.
  4. Thêm vào đó, các chỉ số cảm xúc, tin tức và nhiều thông tin khác giúp dự đoán xu hướng thị trường.

Tóm tắt

Chiến lược giao dịch Richard Seagull là một chiến lược theo dõi đột phá rất điển hình. Nó rất đơn giản, dễ sử dụng, phù hợp cho người mới bắt đầu và là một ví dụ về giao dịch định lượng. Chiến lược này có thể được tối ưu hóa qua nhiều khía cạnh, giảm rủi ro giao dịch và tăng lợi nhuận.

Mã nguồn chiến lược
/*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