Chiến lược giao dịch Double Stochastic Oscillator


Ngày tạo: 2023-09-17 18:26:16 sửa đổi lần cuối: 2023-09-17 18:26:16
sao chép: 0 Số nhấp chuột: 845
1
tập trung vào
1617
Người theo dõi

Tổng quan

Chiến lược này sử dụng hai nhóm các chỉ số ngẫu nhiên với các tham số khác nhau để đưa ra phán đoán theo điều kiện đa không gian, thuộc hệ thống giao chéo đồng tuyến điển hình. Sử dụng chỉ số nhanh để xác định xu hướng ngắn hạn và thời gian nhập cảnh, chỉ số chậm để xác định hướng của xu hướng lớn, cả hai kết hợp để tạo ra tín hiệu giao dịch.

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

  1. Giá trị K của chỉ số ngẫu nhiên nhanh cho thấy hướng xu hướng ngắn hạn, đường K chéo đường trung bình di chuyển SM1 tạo thành tín hiệu nhập cảnh.

  2. Giá trị K của chỉ số ngẫu nhiên chậm phản ánh xu hướng lớn. Khi chỉ số nhanh hiển thị tín hiệu đảo ngược, hãy xem tính hợp lý của chỉ số chậm để đánh giá hướng lớn.

  3. K nhanh trên SM1 được coi là tín hiệu báo hiệu; khi tốc độ chậm K lớn hơn 50, biểu thị xu hướng lớn lên, đáp ứng nhiều điều kiện.

  4. K đi nhanh xuống SM1 được coi là tín hiệu giảm giá; khi K đi chậm dưới 50, biểu thị xu hướng lớn đi xuống, đáp ứng điều kiện làm空.

  5. Thiết lập điểm dừng dừng với tỷ lệ cố định.

Phân tích lợi thế

  1. Phương pháp này có thể được sử dụng cho các trường hợp khác nhau.

  2. Các tham số SM1 nhỏ hơn, chỉ số K nhạy cảm, phù hợp để nắm bắt cơ hội đường ngắn.

  3. Chu kỳ lớn đánh giá xu hướng lớn, chu kỳ nhỏ nắm bắt sự đảo ngược. Chiến lược đa không gian phù hợp với hầu hết các tình huống thị trường.

  4. Các điểm dừng cố định, rủi ro và lợi nhuận có thể kiểm soát được, không dễ bị biến động quá lớn.

Phân tích rủi ro

  1. Khi có sự lệch giữa các chỉ số, cơ hội giao dịch sẽ bị bỏ lỡ hoặc tín hiệu sai sẽ được tạo ra.

  2. Điểm dừng lỗ cố định không đủ linh hoạt để điều chỉnh theo sự thay đổi của thị trường.

  3. Các tham số chỉ số lbl cần được kiểm tra tối ưu hóa nhiều lần và sẽ không có hiệu lực nếu không phù hợp.

  4. Giao dịch ngắn hạn đòi hỏi tần suất giao dịch cao hơn, làm tăng chi phí giao dịch.

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

  1. Thêm các chỉ số khác hoặc điều kiện lọc để đảm bảo chất lượng tín hiệu chỉ số.

  2. Kiểm tra các kết hợp tham số khác nhau để tìm cấu hình tham số tốt nhất.

  3. Kết hợp với chỉ số dao động, để dừng dừng lỗ điều chỉnh động lực.

  4. Sử dụng bộ lọc thời gian để tránh các sự kiện quan trọng và kiểm soát các biến động phi lý.

  5. Tối ưu hóa chiến lược quản lý tài chính, tăng hoặc giảm cổ phiếu khi cần thiết, và tăng hiệu quả sử dụng tài chính.

Tóm tắt

Chiến lược này tích hợp các chỉ số ngẫu nhiên nhanh và chậm để tạo ra một hệ thống giao dịch đa luồng. Tuy nhiên, cần thiết để thiết lập các tham số tối ưu hóa hơn nữa, và hỗ trợ các chỉ số như xu hướng, tỷ lệ biến động như điều kiện lọc. Trong trường hợp kiểm soát rủi ro chặt chẽ, chiến lược này có thể thu được lợi nhuận vượt quá ổn định.

Mã nguồn chiến lược
/*backtest
start: 2023-08-17 00:00:00
end: 2023-09-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Double Stochastic", overlay=true)

//-----------------------Stochastics------------------------//

c= security(syminfo.tickerid,timeframe.period , close)  
h= security(syminfo.tickerid, timeframe.period, high)  
l= security(syminfo.tickerid, timeframe.period, low)  

c1= security(syminfo.tickerid, timeframe.period, close)  
h2= security(syminfo.tickerid, timeframe.period, high)  
l1= security(syminfo.tickerid, timeframe.period, low)  

K1 = input(5, title="K", minval=1, title="Leading K")
SM1 = input(2, title="Smooth", minval=1, title="Leading Smooth ")
k = ema(stoch(c, h, l, K1), SM1)

K2 = input(97, title="K", minval=1, title="Lagging K")
D2 = input(3, title="D", minval=1, title="Lagging D")
SM2 = input(1, title="Smooth", minval=1, title="Lagging Smooth")
k1 = ema(stoch(c1, h2, l1, K2), SM2)

// buy ((k[2] < 40 and k > 40) and bars_up > 0 and k1 > 50) 
// sell (k[2] > 60 and k < 60) and bars_down > 0 and k1 < 50

//-----------------------Mechanics------------------------//

buy = k1 > 50 and k < 30 and k > k[1] ? 1 : 0
sell = k1 < 50 and k > 70 and k < k[1] ? 1 : 0

buy_val = valuewhen(buy == 1, close, 1)
sell_val = valuewhen(sell == 1, close, 1)

buy_close = buy_val * input(1.20, minval=0.1)
sell_close = sell_val / input(1.20, minval=0.1)

//------------------------Buy/Sell-------------------------//

longCondition = buy == 1
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

close_long = close >= buy_close
if (close_long)
    strategy.close("My Long Entry Id")
    
sellCondition = sell == 1
if (sellCondition)
    strategy.entry("My Short Entry Id", strategy.short)

close_short = close <= sell_close
if (close_short)
    strategy.close("My Short Entry Id")