
Chiến lược này thực hiện chiến lược giao dịch mua thấp và bán cao bằng cách tính toán giá cao nhất và giá thấp nhất của đường N gốc K gần đây nhất, kết hợp với chỉ số trung bình di chuyển, đặt điều kiện phá vỡ đôi.
Chiến lược này dựa trên các nguyên tắc sau:
Xác định xem thị trường có đang bán quá hoặc mua quá bằng cách tính toán cực của đường N gốc K gần nhất. Xác định hướng xu hướng kết hợp với đường trung bình di chuyển, đặt điều kiện kép, thực hiện chiến lược giao dịch phá vỡ mua thấp và bán cao.
Chiến lược này có những ưu điểm sau:
Bằng cách xác nhận điều kiện kép, làm cho tín hiệu chiến lược có chất lượng cao hơn, đồng thời có nhiều không gian tối ưu hóa tham số, phù hợp với môi trường thị trường khác nhau.
Chiến lược này cũng có một số rủi ro:
Những rủi ro này có thể được giảm bằng cách điều chỉnh chu kỳ tính toán, tối ưu hóa các tham số. Ngoài ra, cũng có thể xem xét tối ưu hóa kết hợp với các chỉ số khác.
Chiến lược này có thể được tối ưu hóa theo các hướng sau:
Thông qua các phương tiện như tối ưu hóa tham số, tối ưu hóa chỉ số, tối ưu hóa kiểm soát gió, có thể nâng cao đáng kể yếu tố lợi nhuận chiến lược.
Chiến lược này nói chung là một chiến lược đột phá rất thực tế. Tính toán K-line cực đoan để xác định tình trạng quá mua quá bán, trung bình di chuyển để xác định hướng xu hướng, điều kiện kép thiết lập các tín hiệu lọc sai, để đạt được chiến lược bán cao giá thấp chất lượng cao. Bằng cách tối ưu hóa chu kỳ tính toán, thêm các chỉ số khác có thể nâng cao hiệu quả chiến lược hơn nữa.
/*backtest
start: 2023-02-22 00:00:00
end: 2024-02-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Larry Connors por RON", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
value1 = input(7, title="Quantity of day low")
value2 = input(7, title="Quantity of day high")
entry = lowest(close[1], value1)
exit = highest(close[1], value2)
lengthMMA = input(200, title="Length of SMA", minval=1)
mma = sma(close, lengthMMA)
// Calcular el mínimo de los precios bajos de las últimas 'value1' velas
minLow = lowest(low, value1)
// Calcular el máximo de los precios altos de las últimas 'value2' velas
maxHigh = highest(high, value2)
// Test Period
testStartYear = input(2009, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(2, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)
testStopYear = input(2020, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)
testPeriod() => true
if testPeriod()
// Condiciones de entrada
conditionMet = (close > mma) and (close < entry) and (low == minLow)
strategy.entry("Buy", strategy.long, when=conditionMet)
if conditionMet
label.new(bar_index, entry, text="↑", style=label.style_arrowup, color=color.green, size=size.small, yloc=yloc.belowbar)
// Condiciones de salida
conditionExit = close > exit or close > maxHigh
strategy.close("Buy", when=conditionExit)