
Chiến lược phá vỡ 1 phút của rừng vàng là một chiến lược giao dịch định lượng ngắn hạn, tập trung vào việc nắm bắt tín hiệu phá vỡ giá trong khung thời gian 1 phút, để đạt được lợi nhuận nhanh. Chiến lược này kết hợp nhiều chỉ số như đường cân bằng, ATR, RSI để tạo ra tín hiệu giao dịch, với mục đích đạt được tỷ lệ thua lỗ cao hơn trong một thời gian ngắn.
Chiến lược này dựa trên một số yếu tố để tạo ra tín hiệu giao dịch:
Cụ thể, chiến lược sẽ tính toán trung bình chu kỳ N của ATR, cũng như EMA nhanh, EMA chậm và RSI nhanh. Kết hợp với giá phá vỡ kênh ATR, và EMA hình thành Gold Fork và RSI đạt đến mức vượt quá mua bán, chiến lược sẽ phát ra tín hiệu mua hoặc bán.
Chiến lược này có những lợi thế chính như sau:
Chiến lược này cũng có một số rủi ro:
Để kiểm soát rủi ro, nên áp dụng chiến lược dừng lỗ, đồng thời tối ưu hóa các tham số để kiểm tra lại, tránh quá phù hợp. Ngoài ra, điều chỉnh tần suất giao dịch, kiểm soát chi phí giao dịch.
Chiến lược này có thể được tối ưu hóa theo các hướng sau:
Thiết lập các tham số để thử nghiệm một khoảng thời gian ngắn hơn (5 phút, 15 phút);
Thêm thêm các chỉ số lọc, chẳng hạn như chỉ số khối lượng giao dịch, để cải thiện chất lượng tín hiệu;
Tối ưu hóa các tham số ATR và đường trung bình, tìm kiếm sự kết hợp tham số tốt nhất.
Chiến lược phá vỡ 1 phút của rừng vàng, tập trung vào việc nắm bắt xu hướng giá trong ngắn hạn, lọc kết hợp thông qua nhiều chỉ số, có đặc điểm phản ứng nhanh chóng, tỷ lệ lợi nhuận cao. Chiến lược này có thể đạt được hiệu suất tốt hơn bằng cách tối ưu hóa các tham số theo sở thích rủi ro của người dùng. Tuy nhiên, người dùng cần chú ý kiểm soát rủi ro giao dịch, bao gồm dừng lỗ nghiêm ngặt và tần suất giao dịch hợp lý.
/*backtest
start: 2023-02-12 00:00:00
end: 2024-02-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Gem Forest 1 Dakika Scalp", overlay=true)
source = close
atrlen = input.int(14, "ATR Period")
mult = input.float(1, "ATR Multi", step=0.1)
smoothing = input.string(title="ATR Smoothing", defval="WMA", options=["RMA", "SMA", "EMA", "WMA"])
ma_function(source, atrlen) =>
if smoothing == "RMA"
ta.rma(source, atrlen)
else
if smoothing == "SMA"
ta.sma(source, atrlen)
else
if smoothing == "EMA"
ta.ema(source, atrlen)
else
ta.wma(source, atrlen)
atr_slen = ma_function(ta.tr(true), atrlen)
upper_band = atr_slen * mult + close
lower_band = close - atr_slen * mult
ShortEMAlen = input.int(21, "Fast EMA")
LongEMAlen = input.int(65, "Slow EMA")
shortSMA = ta.ema(close, ShortEMAlen)
longSMA = ta.ema(close, LongEMAlen)
RSILen1 = input.int(25, "Fast RSI Length")
RSILen2 = input.int(100, "Slow RSI Length")
rsi1 = ta.rsi(close, RSILen1)
rsi2 = ta.rsi(close, RSILen2)
atr = ta.atr(atrlen)
RSILong = rsi1 > rsi2
RSIShort = rsi1 < rsi2
longCondition = open < lower_band
shortCondition = open > upper_band
GoldenLong = ta.crossover(shortSMA,longSMA)
Goldenshort = ta.crossover(longSMA,shortSMA)
plotshape(shortCondition, title="Sell Label", text="Sell", location=location.abovebar, style=shape.labeldown, size=size.tiny, color=color.new(color.red, 0), textcolor=color.white)
plotshape(longCondition, title="Buy Label", text="Buy", location=location.belowbar, style=shape.labelup, size=size.tiny, color=color.new(color.green, 0), textcolor=color.white)
plotshape(Goldenshort, title="Golden Sell Label", text="Golden Crossover Short", location=location.abovebar, style=shape.labeldown, size=size.tiny, color=color.new(color.blue, 0), textcolor=color.white)
plotshape(GoldenLong, title="Golden Buy Label", text="Golden Crossover Long", location=location.belowbar, style=shape.labelup, size=size.tiny, color=color.new(color.yellow, 0), textcolor=color.white)
if (longCondition)
stopLoss = low - atr * 2
takeProfit = high + atr * 5
strategy.entry("long", strategy.long)
if (shortCondition)
stopLoss = high + atr * 2
takeProfit = low - atr * 5
strategy.entry("short", strategy.short)
plot(upper_band)
plot(lower_band)
plot(shortSMA, color = color.red)
plot(longSMA, color = color.yellow)