Chiến lược này sử dụng sự kết hợp của nhiều chỉ số để xác định hướng xu hướng và cơ hội giao dịch, áp dụng phương pháp cân bằng áp lực để tăng tỷ lệ thắng của các giao dịch.
Sử dụng EMA để tính trung bình động để xác định hướng xu hướng tổng thể. Giá trị EMA lớn hơn cho thấy xu hướng tăng, trong khi giá trị EMA nhỏ hơn cho thấy xu hướng giảm.
Sử dụng MACD để tính toán sự khác biệt giữa trung bình di chuyển nhanh và chậm. Khi sự khác biệt lớn hơn 0, nó chỉ ra xu hướng tăng, khi nhỏ hơn 0, nó chỉ ra xu hướng giảm.
Sử dụng PSAR để tính điểm biến đổi liên tục. Khi giá trị PSAR lớn, nó chỉ ra xu hướng giảm, khi giá trị PSAR nhỏ, nó chỉ ra xu hướng tăng.
Kết hợp ba chỉ số trên để xác định sự nhất quán của xu hướng. Khi các phán đoán của ba chỉ số là phù hợp, nó đại diện cho một xu hướng rõ ràng cho phép giao dịch nhập cảnh.
Nhập giao dịch dựa trên tiêu chí mua và bán, và thiết lập điểm dừng lỗ và lấy lợi nhuận.
Các quy tắc cụ thể là:
Sử dụng nhiều chỉ số để xác định xu hướng cải thiện độ chính xác.
Mở giao dịch dựa trên xu hướng xác định được xác định thông qua cân bằng áp lực làm tăng tỷ lệ thắng.
Thiết lập dừng lỗ và lấy lợi nhuận có thể hạn chế lỗ và khóa lợi nhuận.
Các quy tắc giao dịch rõ ràng và có hệ thống làm cho nó phù hợp với giao dịch thuật toán.
Các tham số có thể được tối ưu hóa để thích nghi với các sản phẩm và khung thời gian khác nhau.
Phán quyết xu hướng có thể sai, dẫn đến hướng giao dịch không chính xác.
Các động thái thị trường cực đoan có thể tạo ra các tín hiệu sai từ các chỉ số.
Đánh lỗ bị đặt quá rộng, không thể thoát được kịp thời.
Điều chỉnh tham số không đúng dẫn đến giao dịch quá mức hoặc bỏ lỡ giao dịch.
Các sản phẩm không thanh khoản không thể thực hiện các kế hoạch dừng lỗ và lấy lợi nhuận.
Các rủi ro có thể được giảm bằng cách tối ưu hóa các thông số, điều chỉnh dừng và chọn các sản phẩm lỏng.
Điều chỉnh thời gian EMA để tối ưu hóa độ chính xác xu hướng.
Điều chỉnh thời gian MACD nhanh và chậm để cải thiện độ nhạy.
Tối ưu hóa tỷ lệ dừng lỗ và lợi nhuận để tìm sự cân bằng lý tưởng.
Thêm các chỉ số phụ khác để cải thiện thời gian nhập cảnh.
Chọn các sản phẩm có thanh khoản tốt và dao động lớn.
Điều chỉnh khung thời gian để phù hợp với các đặc điểm sản phẩm khác nhau.
Chiến lược này tích hợp nhiều chỉ số để phân tích xu hướng và tham gia giao dịch dựa trên các xu hướng xác định, với lệnh dừng lỗ và lấy lợi nhuận được đặt trước, có thể nắm bắt hiệu quả các chuyển động của thị trường và đạt được lợi nhuận tốt trong khi đảm bảo lợi nhuận nhất định.
/*backtest start: 2023-10-13 00:00:00 end: 2023-11-12 00:00:00 period: 1h basePeriod: 15m 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/ // © exlux99 //@version=4 strategy(title = "Crypto Scalper", overlay = true, pyramiding=1,initial_capital = 100, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.03) len = input(60, minval=1, title="Length EMA") src = input(close, title="Source") out = ema(src, len) // fast_length = input(title="Fast Length MACD", type=input.integer, defval=12) slow_length = input(title="Slow Length MACD", type=input.integer, defval=26) signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9) sma_source = input(title="Oscillator MA Type MACD", type=input.string, defval="EMA", options=["SMA", "EMA"]) sma_signal = input(title="Signal Line MA Type MACD", type=input.string, defval="EMA", options=["SMA", "EMA"]) // Calculating fast_ma = sma_source == "SMA" ? sma(src, fast_length) : ema(src, fast_length) slow_ma = sma_source == "SMA" ? sma(src, slow_length) : ema(src, slow_length) macd = fast_ma - slow_ma signal = sma_signal == "SMA" ? sma(macd, signal_length) : ema(macd, signal_length) hist = macd - signal start = input(0.02) increment = input(0.02) maximum = input(0.2) var bool uptrend = na var float EP = na var float SAR = na var float AF = start var float nextBarSAR = na if bar_index > 0 firstTrendBar = false SAR := nextBarSAR if bar_index == 1 float prevSAR = na float prevEP = na lowPrev = low[1] highPrev = high[1] closeCur = close closePrev = close[1] if closeCur > closePrev uptrend := true EP := high prevSAR := lowPrev prevEP := high else uptrend := false EP := low prevSAR := highPrev prevEP := low firstTrendBar := true SAR := prevSAR + start * (prevEP - prevSAR) if uptrend if SAR > low firstTrendBar := true uptrend := false SAR := max(EP, high) EP := low AF := start else if SAR < high firstTrendBar := true uptrend := true SAR := min(EP, low) EP := high AF := start if not firstTrendBar if uptrend if high > EP EP := high AF := min(AF + increment, maximum) else if low < EP EP := low AF := min(AF + increment, maximum) if uptrend SAR := min(SAR, low[1]) if bar_index > 1 SAR := min(SAR, low[2]) else SAR := max(SAR, high[1]) if bar_index > 1 SAR := max(SAR, high[2]) nextBarSAR := SAR + AF * (EP - SAR) tplong=input(0.245, step=0.005) sllong=input(1.0, step=0.005) tpshort=input(0.055, step=0.005) slshort=input(0.03, step=0.005) if (uptrend and hist >0 and close < out) strategy.entry("short", strategy.short, stop=nextBarSAR, comment="short") strategy.exit("short_tp/sl", "short", profit=close * tpshort / syminfo.mintick, loss=close * slshort / syminfo.mintick, comment='SHORT EXIT', alert_message = 'closeshort') if (not uptrend and hist <0 and close > out) strategy.entry("long", strategy.long, stop=nextBarSAR, comment="long") strategy.exit("short_tp/sl", "long", profit=close * tplong / syminfo.mintick, loss=close * sllong / syminfo.mintick, comment='LONG EXIT', alert_message = 'closelong')