Chiến lược này kết hợp dao động stochastic và Moving Average (MA) để xác định điều kiện thị trường mua quá mức và bán quá mức và sử dụng hướng xu hướng của trung bình động để xác định hướng giao dịch. Khi dao động stochastic vượt lên trong khu vực bán quá mức và trung bình động có xu hướng tăng, chiến lược mở một vị trí dài; khi dao động stochastic vượt xuống trong khu vực mua quá mức và trung bình động có xu hướng giảm, chiến lược mở một vị trí ngắn. Ngoài ra, chiến lược đặt Stop Loss để kiểm soát rủi ro.
Chiến lược này kết hợp Trình dao động chứng khoán và trung bình động để nắm bắt các điều kiện thị trường mua quá mức và bán quá mức trong khi sử dụng hướng xu hướng của trung bình động để lọc tín hiệu giao dịch và thiết lập stop loss để kiểm soát rủi ro. Lý thuyết chiến lược rõ ràng và dễ hiểu và thực hiện. Tuy nhiên, chiến lược cũng có một số hạn chế, chẳng hạn như độ trễ chỉ số và giao dịch thường xuyên. Bằng cách giới thiệu các chỉ số kỹ thuật khác, tối ưu hóa các phương pháp dừng lỗ, điều chỉnh động các tham số và thực hiện kích thước vị trí, hiệu suất và độ bền của chiến lược có thể được tăng thêm.
/*backtest start: 2024-04-22 00:00:00 end: 2024-04-29 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_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 Stoch + MA c/ SL", 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 = 500 // Tamaño de posición (10% del capital) positionSize = 1 // Stop Loss (2% del precio de entrada) stopLossPercent = input.int(2, title="Stop Loss (%)") / 100 // 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) // Condiciones de entrada en largo y corto longCondition = ta.crossunder(k, oversold) and ma > ma[1] shortCondition = ta.crossover(k, overbought) 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")