Dựa trên chiến lược đường trung bình động kép


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

Dựa trên chiến lược đường trung bình động kép

Tổng quan

Chiến lược này sử dụng đường dẫn hình thành đường dẫn để nắm bắt hướng của xu hướng. Khi giá vượt qua đường dẫn, nó tạo ra tín hiệu giao dịch. Đồng thời kết hợp với chỉ số RSI để lọc các đợt phá vỡ giả. Chỉ hoạt động trong thời gian giao dịch ở London, tối đa 5 lần mỗi ngày, mất mát tối đa không quá 2%

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

Chiến lược này sử dụng hai đường trung bình di chuyển có chiều dài 5, một từ giá cao nhất và một từ giá thấp nhất, tạo thành một kênh giá. Khi giá đóng cửa vượt qua kênh, hãy làm nhiều và khi vượt qua kênh, hãy làm trống.

Để lọc sự đột phá giả mạo, cũng giới thiệu chỉ số RSI để đánh giá quá mua quá bán. Chỉ thực hiện quá nhiều khi RSI cao hơn 80 và tháo lỗ khi thấp hơn 20.

Ngoài ra, chiến lược chỉ giao dịch trong giờ giao dịch London (3 giờ sáng đến 11 giờ sáng) với tối đa 5 lệnh mỗi ngày và mức lỗ tối đa không vượt quá 2% lợi nhuận trên quyền sở hữu cổ phiếu.

Phân tích lợi thế

Bắt được xu hướng

Đường trung bình di chuyển kép tạo ra một kênh xu hướng, có thể đánh giá tốt hơn về hướng xu hướng của giá. Khi giá vượt qua đường dẫn lên, nó nắm bắt xu hướng tăng của giá; Khi giá vượt qua đường dẫn xuống, nó nắm bắt xu hướng giảm của giá.

Giảm đột phá giả

Kết hợp với các chỉ số RSI để đánh giá các vùng quá mua quá bán, có thể giảm một phần các đột phá giả do biến động giá.

Kiểm soát rủi ro hiệu quả

Chiến lược chỉ giao dịch trong thời gian giao dịch chủ yếu hoạt động, tối đa 5 lệnh mỗi ngày có thể kiểm soát hiệu quả tần suất giao dịch; thiết lập lỗ tối đa là 2% có thể kiểm soát lỗ tối đa trong ngày trong phạm vi chấp nhận được.

Phân tích rủi ro

Rủi ro đột phá giả khi giá cả dao động

Khi có sự biến động lớn về giá, có thể có một số tín hiệu phá vỡ giả, dẫn đến tổn thất giao dịch không cần thiết. Bạn có thể giảm rủi ro này bằng cách điều chỉnh các tham số tối ưu hóa hoặc thêm các điều kiện lọc.

Lệnh dừng cố định ngăn chặn rủi ro

Chiến lược sử dụng một số lượng cố định điểm dừng lỗ khi giá có biến động lớn, các điểm dừng lỗ cố định có thể bị chặn, sử dụng tỷ lệ phần trăm hoặc dừng lỗ động.

Rủi ro hạn chế thời gian giao dịch

Chiến lược chỉ mở vị trí trong thời gian giao dịch cố định, nếu không có tín hiệu trong thời gian đó, sẽ bỏ lỡ cơ hội giao dịch tiềm năng trong các thời gian khác. Bạn có thể cân nhắc mở rộng thời gian giao dịch thích hợp hoặc điều chỉnh động theo tình hình thời gian thực.

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

Tối ưu hóa tham số

Bạn có thể tối ưu hóa chiều dài đường trung bình di chuyển, tham số RSI, số điểm dừng cố định và tìm ra sự kết hợp tham số tối ưu nhất.

Thêm điều kiện lọc

Bạn có thể thêm các chỉ số hoặc điều kiện khác để kiểm tra lại các tín hiệu đột phá, chẳng hạn như tăng khối lượng giao dịch, thu hẹp các kênh Blink, v.v., để giảm đột phá giả.

Động lực dừng dừng

Có thể sử dụng chiến lược dừng phần trăm hoặc dừng động, thay vì dừng số điểm cố định đơn giản, tốt hơn để bảo vệ rủi ro của hành động đơn phương.

Kết hợp với sự phán đoán nhân tạo

Các tín hiệu được kiểm tra bằng tay, hoặc chỉ nhập cảnh sau khi xác nhận đột phá, để tránh bị chặn.

Tóm tắt

Chiến lược này nói chung là đơn giản và thực tế, thông qua việc xây dựng đường dẫn định hướng xu hướng bằng đường trung bình di chuyển đôi; đồng thời chỉ số RSI có thể lọc một phần phá vỡ giả hiệu quả. Về kiểm soát rủi ro, giới hạn thời gian giao dịch và tổn thất tối đa có thể kiểm soát rủi ro tổng thể.

Mã nguồn chiến lược
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-16 23:59:59
period: 1h
basePeriod: 15m
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/
// © SoftKill21
//@version=4
strategy(title="Moving Average", shorttitle="MA", overlay=true)
timeinrange(res, sess) => time(res, sess) != 0
len = input(5, minval=1, title="Length")
src = input(high, title="Source")
offset = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
out = sma(src, len)
plot(out, color=color.white, title="MA", offset=offset)

len2 = input(5, minval=1, title="Length")
src2 = input(low, title="Source")
offset2 = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
out2 = sma(src2, len2)
plot(out2, color=color.white, title="MA", offset=offset2)

length = input( 5 )
overSold = input( 10 )
overBought = input( 80 )
price = input(close, title="Source RSI")

vrsi = rsi(price, length)

longcond= close > out and close > out2 and vrsi > overBought
shortcont = close < out and close < out2 and vrsi < overSold
tp=input(150,title="tp")
sl=input(80,title="sl")


strategy.entry("long",1,when=longcond)
//strategy.close("long",when= close < out2)
strategy.exit("long_exit","long",profit=tp,loss=sl)

strategy.entry("short",1,when=shortcont)
//strategy.close("short",when=close >out)
strategy.exit("short_exit","short",profit=tp,loss=sl)

// maxOrder = input(6, title="max trades per day")
// maxRisk = input(2,type=input.float, title="maxrisk per day")
// strategy.risk.max_intraday_filled_orders(maxOrder)

// strategy.risk.max_intraday_loss(maxRisk, strategy.percent_of_equity)


// strategy.close_all(when =not timeinrange(timeframe.period, "0300-1100"))