
Chiến lược này kết hợp các chỉ số dao động ngẫu nhiên (Stochastic Oscillator) với các đường trung bình di chuyển (Moving Average) để tạo ra tín hiệu giao dịch bằng cách quan sát các chỉ số ngẫu nhiên mua quá mức và xu hướng của đường trung bình di chuyển. Khi chỉ số ngẫu nhiên tạo ra tín hiệu bán trống khi ở vùng mua quá mức và dưới đường trung bình di chuyển, và nhiều tín hiệu khi ở vùng bán quá mức và đường trung bình di chuyển.
Tính toán chỉ số dao động ngẫu nhiên để có được đường K và đường D. Các tham số có thể điều chỉnh, bao gồm chu kỳ chỉ số ngẫu nhiên, giá trị K trơn tru, giá trị D trơn tru, khu vực quá mua và khu vực quá bán.
Tính toán trung bình di chuyển, mặc định sử dụng giá đóng cửa, có thể điều chỉnh chu kỳ.
Tính toán bộ lọc chỉ số ngẫu nhiên. Khi K-đường duy trì một số K-đường dưới 50, tạo ra tín hiệu lọc. Chu kỳ có thể điều chỉnh.
Điều kiện để tạo ra tín hiệu đa đầu: Chỉ số ngẫu nhiên ở khu vực bán quá mức hoặc tín hiệu bộ lọc chỉ số ngẫu nhiên và đường trung bình di chuyển lên.
Điều kiện để tạo ra tín hiệu đầu không: Chỉ số ngẫu nhiên ở khu vực bán tháo hoặc tín hiệu bộ lọc chỉ số ngẫu nhiên và đường trung bình di chuyển xuống.
Điều kiện Bán nhiều đầu: Đường trung bình di chuyển trên đường K ngẫu nhiên và đường trung bình chuyển xuống.
Điều kiện Bảng Bảng Vô Trọng: Đường trung bình di chuyển dưới đường K ngẫu nhiên và đường trung bình di chuyển lên trên.
Quản lý vị trí sử dụng tỷ lệ tiền cố định, mặc định là 10% ∙ đồng thời thiết lập dừng lỗ, mặc định là 2% ∙
Kết hợp với tính năng mua bán quá mức và xu hướng, bạn có thể theo đuổi xu hướng trong xu hướng.
Bộ lọc chỉ số ngẫu nhiên tránh giao dịch thường xuyên trong các biến động.
Cài đặt Stop Loss giúp kiểm soát rút lui.
Cấu trúc mã rõ ràng, tham số có thể điều chỉnh, phù hợp để tối ưu hóa hơn nữa.
Các chỉ số ngẫu nhiên có một chút chậm trễ, có thể bỏ lỡ điểm mua và bán tốt nhất.
Tính chính xác của các bảng xếp hạng ở các điểm chuyển hướng có thể kém, và tần suất dừng lỗ có thể cao hơn.
Quản lý vốn tỷ lệ cố định sẽ bị thu hồi nhiều hơn trong trường hợp thua lỗ liên tục.
Việc giới thiệu nhiều điều kiện lọc hơn, chẳng hạn như hành vi giá cả, các chỉ số phụ trợ khác, giúp tăng độ chính xác của tín hiệu.
Đưa ra các tín hiệu mạnh và yếu, tăng vị trí khi có tín hiệu mạnh.
Các nhà phân tích cho rằng các điểm thay đổi trong xu hướng được tối ưu hóa để nắm bắt được nhiều thông tin hơn.
Để tối ưu hóa quản lý vị trí, bạn có thể xem xét việc điều chỉnh vị trí so với lỗ hổng nổi.
Cố gắng thử các tham số khác nhau để tìm ra tham số tối ưu.
Chiến lược này dựa trên các chỉ số dao động ngẫu nhiên để đánh giá xu hướng kết hợp với đường trung bình di chuyển, đồng thời sử dụng các chỉ số ngẫu nhiên của chính các chức năng lọc, tạo ra một tín hiệu giao dịch tương đối đáng tin cậy. Chiến lược tổng thể của ý tưởng rõ ràng, phù hợp để sử dụng trong tình huống xu hướng. Tuy nhiên, do sự tồn tại của chỉ số ngẫu nhiên chậm trễ, có thể có hiệu suất kém ở các điểm biến động của tình huống, tính thích ứng tổng thể và robustness phải được xem xét thêm.
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Pablo_2uc
//@version=5
strategy("Estrategia Estocástico + MA con Stop Loss y Filtro Estocástico", overlay=true)
// Parámetros del Estocástico
length = input.int(14, title="Longitud Estocástico")
smoothK = input.int(3, title="Suavizado K")
smoothD = input.int(3, title="Suavizado D")
oversold = input.int(20, title="Sobreventa")
overbought = input.int(80, title="Sobrecompra")
// Parámetros de la Media Móvil
maLength = input.int(9, title="Longitud MA")
maSource = input(close, title="Fuente MA")
// Capital inicial
capital = 5000
// Tamaño de posición (10% del capital)
positionSize = capital * 0.10
// Stop Loss (2% del precio de entrada)
stopLossPercent = input.int(2, title="Stop Loss (%)") / 100
// Número de ruedas para el filtro estocástico
filterPeriods = input.int(12, title="Ruedas de Filtro Estocástico")
// Cálculo del Estocástico
k = ta.sma(ta.stoch(close, high, low, length), smoothK)
d = ta.sma(k, smoothD)
// Cálculo de la Media Móvil
ma = ta.sma(maSource, maLength)
// Filtro estocástico
stochasticFilter = ta.sma(k > 50 ? 1 : 0, filterPeriods)
// Condiciones de entrada en largo y corto
longCondition = (ta.crossunder(k, oversold) or ta.crossover(stochasticFilter, 1)) and ma > ma[1]
shortCondition = (ta.crossover(k, overbought) or ta.crossover(stochasticFilter, 1)) and ma < ma[1]
// Condiciones de salida
exitLongCondition = ta.crossover(k, ma) and ma < ma[1]
exitShortCondition = ta.crossunder(k, ma) and ma > ma[1]
// Estrategia
if (longCondition)
strategy.entry("Long", strategy.long, qty=positionSize)
strategy.exit("Exit Long", "Long", stop=close * (1 - stopLossPercent))
if (shortCondition)
strategy.entry("Short", strategy.short, qty=positionSize)
strategy.exit("Exit Short", "Short", stop=close * (1 + stopLossPercent))
// Cierre de posiciones
if (exitLongCondition)
strategy.close("Long")
if (exitShortCondition)
strategy.close("Short")