Chiến lược dao động stochastic trượt theo hàm số

Tác giả:ChaoZhang, Ngày: 2024-01-18 15:53:41
Tags:

img

Tổng quan

Chiến lược Trình dao động Stochastic Smoothed Exponential là một phiên bản sửa đổi của chỉ số stochastic truyền thống bằng cách thêm một tham số trọng lượng theo hàm số để điều chỉnh độ nhạy của stochastic và tạo ra tín hiệu giao dịch. Nó đi dài khi chỉ số vượt qua mức mua quá mức và đi ngắn khi chỉ số vượt qua mức bán quá mức. Chiến lược tối ưu hóa có thể trở thành một chiến lược theo xu hướng rất ổn định.

Chiến lược logic

Cốt lõi của chiến lược Stochastic Exponential Smoothed nằm trong tham số trọng lượng theo cấp số.

s = 100 * (close - lowest low) / (highest high - lowest low)

Với tham số số mũ, công thức trở thành:

exp = ex<10? (ex)/(10-ex) : 99   

s = 100 * (close - lowest low) / (highest high - lowest low)  

ks = s>50? math.pow(math.abs(s-50),exp)/math.pow(50,exp-1)+50   
       :-math.pow(math.abs(s-50),exp)/math.pow(50,exp-1)+50  

Bằng cách điều chỉnh exp, ảnh hưởng của s trên ks có thể được thay đổi.

Các tín hiệu mua được tạo ra khi ks vượt qua mức mua quá mức. Các tín hiệu bán được tạo ra khi ks vượt qua mức bán quá mức.

Ưu điểm

So với chiến lược stochastic truyền thống, chiến lược Stochastic Oscillator Exponential Smoothed có những lợi thế sau:

  1. Độ nhạy của stochastic có thể được điều chỉnh tự do bằng cách thay đổi trọng lượng theo hàm số để kiểm soát tần suất giao dịch.
  2. Trọng lượng theo cấp số nhân tăng lên có thể lọc ra một số tiếng ồn và tạo ra các tín hiệu giao dịch ổn định hơn.
  3. Kết hợp các chỉ số từ các khung thời gian khác nhau có thể đạt được xác nhận nhiều khung thời gian và cải thiện độ tin cậy tín hiệu.

Rủi ro

Chiến lược Trình dao động Stochastic Exponential Smoothed cũng có những rủi ro sau:

  1. Với trọng lượng hàm số quá lớn, một số cơ hội giao dịch có thể bị bỏ lỡ do lọc tín hiệu quá mức.
  2. Chỉ số dễ bị ồn và giao thông sai. Các thông số cần phải được điều chỉnh để đảm bảo tín hiệu giao thông đáng tin cậy.
  3. Phạm vi tham số tối ưu cần được xác định cho các thị trường khác nhau.

Các lĩnh vực cải tiến

Chiến lược Trình dao động Stochastic Smoothed Exponential có thể được tối ưu hóa từ các khía cạnh sau:

  1. Kết hợp với các chỉ số khác như MACD và đường trung bình động để lọc tín hiệu và giảm tín hiệu sai.
  2. Thêm các cơ chế dừng lỗ để kiểm soát rủi ro hiệu quả.
  3. Tối ưu hóa tham số trọng lượng theo hàm số để tìm kết hợp tham số tối ưu. Các tham số khác nhau có thể được sử dụng cho các thị trường khác nhau.
  4. Tăng khả năng hợp nhất, ví dụ, kết hợp với các chỉ số theo mùa, các chỉ số cấu trúc thị trường để cải thiện sự ổn định hơn nữa.

Kết luận

Chiến lược Trình dao động Stochastic Smoothed Exponential tạo ra các tín hiệu giao dịch đáng tin cậy hơn bằng cách điều chỉnh độ nhạy của chỉ số stochastic. Nó có thể theo dõi hiệu quả xu hướng trung và dài hạn và cũng có thể được tối ưu hóa thành một chiến lược ngắn hạn. Với khả năng tổng hợp và tối ưu hóa tham số hơn nữa, nó có tiềm năng đạt được lợi nhuận có lợi hơn nhất quán.


/*backtest
start: 2023-01-11 00:00:00
end: 2024-01-17 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/
// © faytterro

//@version=5
strategy("Exponential Stochastic Strategy", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
len=input.int(14, "length") 
ex=input.int(2, title="exp", minval=1, maxval=10)
exp= ex<10? (ex)/(10-ex) : 99
s=100 * (close - ta.lowest(low, len)) / (ta.highest(high, len) - ta.lowest(low, len))
ks=s>50? math.pow(math.abs(s-50),exp)/math.pow(50,exp-1)+50 :
 -math.pow(math.abs(s-50),exp)/math.pow(50,exp-1)+50
plot(ks, color= color.white)
bot=input.int(20)
top=input.int(80)
longCondition = ta.crossover(ks, bot) and bar_index>0
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = ta.crossunder(ks, top) and bar_index>0
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)
//    strategy.close("My Long Entry Id")
alertcondition(longCondition, title = "buy")
alertcondition(shortCondition, title = "sell")
h1=hline(top)
h2=hline(bot)
h3=hline(100)
h4=hline(0)
fill(h1,h3, color= color.rgb(255,0,0,200-top*2))
fill(h2,h4, color= color.rgb(0,255,0,bot*2))

Thêm nữa