Chiến lược giao dịch Bitcoin hàng ngày dựa trên nhiều chỉ số


Ngày tạo: 2023-10-30 10:37:58 sửa đổi lần cuối: 2023-10-30 10:37:58
sao chép: 0 Số nhấp chuột: 728
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch Bitcoin hàng ngày dựa trên nhiều chỉ số

Tổng quan

Chiến lược này dựa trên một tổ hợp các chỉ số đa dạng để tìm kiếm cơ hội giao dịch trong khoảng thời gian Bitcoin. Các chỉ số như MACD, RSI, Stoch RSI được sử dụng để đánh giá xu hướng hiện tại để phát ra tín hiệu mua và bán.

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

Chiến lược này sử dụng các chỉ số sau:

  1. MACD (快线-慢线)Dòng tín hiệu của nó. Khi MACD đi qua dây tín hiệu, nó là tín hiệu mua, khi đi qua 0 là tín hiệu bán.

  2. Chỉ số RSI tương đối mạnh yếu.

  3. Stoch RSI. Stoch RSI phản ánh tình trạng RSI mua và bán quá mức. Stoch RSI cung cấp tín hiệu mua khi nó thấp hơn ngưỡng đặt và tín hiệu bán khi nó cao hơn ngưỡng đặt.

  4. Hướng đường trung bình. Đánh dấu bán khi giá đóng cửa dưới đường trung bình

Dựa trên các chỉ số này, tín hiệu giao dịch của chiến lược này là:

Giao thức muaKhi:(Stoch RSI < 设定阈值) 且 (MACD上穿阈值 或 RSI上穿阈值)Thời gian

Bán tín hiệuKhi:(MACD下穿0) 且 (收盘价下穿均线 或 Stoch RSI > 设定阈值)Thời gian

Bằng cách kết hợp nhiều chỉ số, bạn có thể đánh giá chính xác hơn về hướng xu hướng hiện tại và phát ra tín hiệu giao dịch tại các điểm biến xu hướng.

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

  1. Sử dụng nhiều chỉ số kết hợp có thể cải thiện độ chính xác phán đoán và tránh các tín hiệu sai do chỉ số đơn lẻ.

  2. Chỉ số MACD có thể xác định hướng và sức mạnh của xu hướng hiện tại. Chỉ số RSI phản ánh tình trạng quá mua quá bán.

  3. Các tín hiệu mua và bán được thiết lập với các điều kiện kết hợp của nhiều chỉ số, có thể lọc ra một số tín hiệu giả và tránh giao dịch không cần thiết.

  4. Chiến lược này được đánh giá lại bắt đầu từ ngày 1 tháng 1 năm 2017 và bao gồm các tình huống tăng giá lớn của Bitcoin vào cuối năm 2017 để kiểm tra hiệu quả của chiến lược trong tình huống này.

  5. Chiến lược này bao gồm các thiết lập dừng lỗ để kiểm soát tổn thất của một giao dịch.

Rủi ro chiến lược

  1. Mặc dù kết hợp nhiều chỉ số có thể giúp tăng độ chính xác, nhưng các chỉ số có thể khác nhau, dẫn đến nguy cơ sai lầm.

  2. Mức dừng lỗ tối ưu hóa chiến lược, có thể cần điều chỉnh theo các tình huống khác nhau. Việc dừng lỗ quá rộng sẽ làm tăng tổn thất đơn lẻ, và dừng lỗ quá hẹp sẽ bị cắt giảm.

  3. Chiến lược cấp ngày, không thể thực hiện các hoạt động chi tiết trong một khoảng thời gian ngắn hơn. Không thể phản ứng khi sự kiện bất ngờ gây ra biến động lớn trong thời gian ngắn.

  4. Chiến lược này chỉ phản ánh một phần lịch sử và có thể có nguy cơ quá phù hợp. Cần thử nghiệm trong một phạm vi thời gian dài hơn và trong nhiều thị trường hơn để xác minh hiệu quả của chiến lược.

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

  1. Kiểm tra nhiều hơn các kết hợp của các chỉ số để tìm kiếm chiến lược kết hợp tốt hơn.

  2. Các tham số chỉ số được tối ưu hóa để tìm các giá trị tham số phù hợp hơn.

  3. Kiểm tra các mức độ dừng khác nhau để tìm ra sự kết hợp tốt nhất giữa tỷ lệ dừng và dừng.

  4. Các nhà khoa học đã nghiên cứu về sự tương đồng giữa các trường hợp này trong lịch sử.

  5. Cố gắng sử dụng chiến lược này trong một khoảng thời gian cao hơn và giao dịch thường xuyên hơn.

Tóm tắt

Chiến lược này kết hợp nhiều chỉ số như MACD, RSI, Stoch RSI để xác định hướng xu hướng hiện tại của Bitcoin, và phát ra tín hiệu giao dịch tại điểm biến động xu hướng. Trong khi thiết lập lệnh dừng để kiểm soát rủi ro giao dịch. Chiến lược này đã thực hiện tốt, nhưng vẫn cần được kiểm chứng trong thời gian dài hơn và trên nhiều thị trường hơn để tránh rủi ro phù hợp.

Mã nguồn chiến lược
/*backtest
start: 2022-10-23 00:00:00
end: 2023-10-29 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// Original code is from CredibleHulk and modified by bennef
strategy("BTC Daily Strategy BF", overlay=false, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075)

/////////////// Time Frame ///////////////
testStartYear = input(2017, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)

testPeriod() => true

/////////////// Input Params /////////////// 
rsi_threshold = input(30)
rsi_length = input(4)
srsi_length = input(8)
srsi_smooth = input(4)
srsi_sell_threshold = input(57)
length = input(14)
dma_signal_threshold = input(-1)
fastLength = input(11)
slowlength = input(18)
MACDLength = input(6)
MACD_signal_threshold = input(-2)
short_loss_tol = input(5)
long_loss_tol = input(5)

stop_level_long = strategy.position_avg_price * (1 - long_loss_tol / 100.0)
stop_level_short = strategy.position_avg_price * (1 + short_loss_tol / 100.0)
    
///////////////  Signal generation ///////////////
// MACD 
MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD

// RSI and Stochastic RSI 
rs = rsi(close, rsi_length)
k = sma(stoch(rs, rs, rs, srsi_length), srsi_smooth)

// SMA 
norm = sma(ohlc4, length)
threshold = close - norm   

/////////////// Strategy ///////////////
long = ((crossover(delta, MACD_signal_threshold) or crossover(rs, rsi_threshold)) and k < srsi_sell_threshold)
short = (crossunder(delta, 0) or (crossunder(threshold, dma_signal_threshold) and k > srsi_sell_threshold))

if testPeriod()
    strategy.entry("L", strategy.long, when = long)
    strategy.entry("S", strategy.short, when = short)
    strategy.exit("stop loss L", from_entry = "L", stop = stop_level_long)
    strategy.exit("stop loss S", from_entry = "S", stop = stop_level_short)

/////////////// Plotting ///////////////
// MACD
plot(delta, color = delta > MACD_signal_threshold ? color.lime : delta < 0 ? color.red : color.yellow)
MACD_signal_threshold_line = hline(MACD_signal_threshold, color = color.yellow, title = "MACD Signal Threshold")

// RSI
plot(rs, color = rs > rsi_threshold ? color.lime : color.fuchsia)
rsi_threshold_line = hline(rsi_threshold, color = color.fuchsia, title = "RSI Threshold")

// Stochastic RSI 
plot(k, color = k > srsi_sell_threshold ? color.lime : color.red)
srsi_sell_threshold_line = hline(srsi_sell_threshold, color = color.white, title = "Stoch RSI Threshold")

// SMA
plot(threshold / 100, color = threshold < dma_signal_threshold ? color.red : color.blue)
dma_signal_threshold_line = hline (dma_signal_threshold, color = color.blue, title = "DMA Signal Threshold")

bgcolor(long ? color.lime : short ? color.red : na, transp=50)