Chiến lược này là một hệ thống giao dịch định lượng dựa trên các tín hiệu chéo trung bình động kép, xác định những thay đổi xu hướng thị trường thông qua giao điểm giữa các trung bình động ngắn hạn và dài hạn, kết hợp với quản lý dừng lỗ và lấy lợi nhuận năng động để kiểm soát rủi ro. Chiến lược sử dụng lệnh thị trường để giao dịch, tự động đóng các vị trí hiện có và mở các vị trí mới khi tín hiệu được kích hoạt, và bảo vệ sự an toàn của vốn bằng cách đặt mức dừng lỗ và lấy lợi nhuận.
Hệ thống kiểm tra tình trạng vị trí hiện tại khi tín hiệu xảy ra, đóng bất kỳ vị trí đối thủ nào trước, sau đó mở các vị trí mới theo hướng tín hiệu. Mỗi giao dịch tự động đặt mức dừng lỗ và lấy lợi nhuận dựa trên tỷ lệ phần trăm đã được đặt trước, đạt được quản lý năng động tỷ lệ rủi ro-lợi nhuận.
Đây là một chiến lược giao dịch định lượng toàn diện với logic rõ ràng. Nó nắm bắt những thay đổi xu hướng thông qua giao thoa MA kép và quản lý rủi ro với mức dừng lỗ và lấy lợi nhuận năng động. Sức mạnh của chiến lược nằm trong cách tiếp cận có hệ thống và kiểm soát rủi ro, nhưng phải chú ý đến các rủi ro thị trường khác nhau trong giao dịch trực tiếp. Thông qua tối ưu hóa và cải tiến liên tục, chiến lược có thể duy trì hiệu suất ổn định trong môi trường thị trường khác nhau.
/*backtest start: 2024-10-01 00:00:00 end: 2024-10-31 23:59:59 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("BTCUSD Daily Strategy - Market Orders Only", overlay=true, initial_capital=10000, currency=currency.USD) // Configurable Inputs stop_loss_percent = input.float(title="Stop Loss (%)", defval=1.0, minval=0.0, step=0.1) take_profit_percent = input.float(title="Take Profit (%)", defval=2.0, minval=0.0, step=0.1) short_ma_length = input.int(title="Short MA Length", defval=9, minval=1) long_ma_length = input.int(title="Long MA Length", defval=21, minval=1) // Moving Averages short_ma = ta.sma(close, short_ma_length) long_ma = ta.sma(close, long_ma_length) // Plotting Moving Averages plot(short_ma, color=color.blue, title="Short MA") plot(long_ma, color=color.red, title="Long MA") // Buy and Sell Signals buy_signal = ta.crossover(short_ma, long_ma) sell_signal = ta.crossunder(short_ma, long_ma) // Market Buy Logic if (buy_signal and strategy.position_size <= 0) // Close any existing short position if (strategy.position_size < 0) strategy.close(id="Market Sell") // Calculate Stop Loss and Take Profit Prices entry_price = close long_stop = entry_price * (1 - stop_loss_percent / 100) long_take_profit = entry_price * (1 + take_profit_percent / 100) // Enter Long Position strategy.entry(id="Market Buy", direction=strategy.long) strategy.exit(id="Exit Long", from_entry="Market Buy", stop=long_stop, limit=long_take_profit) // Alert for Market Buy alert("Market Buy Signal at price " + str.tostring(close) + ". Stop Loss: " + str.tostring(long_stop) + ", Take Profit: " + str.tostring(long_take_profit), alert.freq_once_per_bar_close) // Market Sell Logic if (sell_signal and strategy.position_size >= 0) // Close any existing long position if (strategy.position_size > 0) strategy.close(id="Market Buy") // Calculate Stop Loss and Take Profit Prices entry_price = close short_stop = entry_price * (1 + stop_loss_percent / 100) short_take_profit = entry_price * (1 - take_profit_percent / 100) // Enter Short Position strategy.entry(id="Market Sell", direction=strategy.short) strategy.exit(id="Exit Short", from_entry="Market Sell", stop=short_stop, limit=short_take_profit) // Alert for Market Sell alert("Market Sell Signal at price " + str.tostring(close) + ". Stop Loss: " + str.tostring(short_stop) + ", Take Profit: " + str.tostring(short_take_profit), alert.freq_once_per_bar_close)