Chiến lược này được thiết kế xung quanh các quy luật giao dịch theo chu kỳ, mua vào cuối ngày thứ Hai và rút ra trước khi mở cửa vào thứ Tư, để nắm bắt xu hướng giá trong khoảng thời gian đó. Đây là một chiến lược giao dịch cơ học điển hình.
Nguyên tắc chiến lược:
Thực hiện giao dịch mua trước khi đóng cửa mỗi tuần, mở vị trí đa đầu.
Mỗi thứ ba trước khi mở cửa, thực hiện lệnh dừng và rút khỏi vị trí nhiều đầu.
Cài đặt tỷ lệ dừng lỗ để tránh sự gia tăng lỗ.
Đặt mục tiêu tỷ lệ phần trăm dừng, khóa lợi nhuận.
Hình vẽ đường dừng lỗ, hiển thị trực quan tình trạng lỗ.
Những lợi thế của chiến lược này:
Phương pháp giao dịch chu kỳ có rủi ro rút tiền thấp hơn, lịch sử hoạt động tốt hơn.
Các quy tắc đã được xác định rõ ràng, tạo điều kiện cho các giao dịch thuật toán.
Cài đặt Stop Loss đơn giản và thực tế.
Rủi ro của chiến lược này:
Không thể thích nghi với sự ảnh hưởng của sự kiện bất ngờ đến mô hình chu kỳ.
Không thể giới hạn tổn thất đơn lẻ.
Không thể theo dõi thêm sau khi khóa lợi nhuận.
Tóm lại, chiến lược này sử dụng phương thức giao dịch chu kỳ cơ giới hóa, có hiệu quả đáng kể, nhưng khó đối phó với sự thay đổi mô hình chu kỳ, các nhà đầu tư cần thận trọng.
/*backtest
start: 2023-08-12 00:00:00
end: 2023-09-11 00:00:00
period: 4h
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/
// © processingclouds
// @description Strategy to go long at end of Monday and exit by Tuesday close, or at stop loss or take profit percentages
//@version=5
strategy("Buy Monday, Exit Wednesday", "Mon-Wed Swings",overlay=true)
// ----- Inputs: stoploss %, takeProfit %
stopLossPercentage = input.float(defval=4.0, title='StopLoss %', minval=0.1, step=0.2) / 100
takeProfit = input.float(defval=3.0, title='Take Profit %', minval=0.3, step=0.2) / 100
// ----- Exit and Entry Conditions - Check current day and session time
isLong = dayofweek == dayofweek.monday and not na(time(timeframe.period, "1400-1601"))
isExit = dayofweek == dayofweek.wednesday and not na(time(timeframe.period, "1400-1601"))
// ----- Calculate Stoploss and Take Profit values
SL = strategy.position_avg_price * (1 - stopLossPercentage)
TP = strategy.position_avg_price * (1 + takeProfit)
// ----- Strategy Enter, and exit when conditions are met
strategy.entry("Enter Long", strategy.long, when=isLong)
if strategy.position_size > 0
strategy.close("Enter Long", isExit)
strategy.exit(id="Exit", stop=SL, limit=TP)
// ----- Plot Stoploss and TakeProfit lines
plot(strategy.position_size > 0 ? SL : na, style=plot.style_linebr, color=color.red, linewidth=2, title="StopLoss")
plot(strategy.position_size > 0 ? TP : na, style=plot.style_linebr, color=color.green, linewidth=2, title="TakeProfit")