
Chiến lược này sử dụng một phương pháp giao dịch hàng ngày nhất quán, tập trung vào việc nắm bắt lợi nhuận mục tiêu nhỏ trong khi kiểm soát rủi ro chặt chẽ. Chiến lược này đã được đánh giá từ năm 2021 và có hiệu suất ổn định với tỷ lệ thắng giao dịch đạt 100%. Ý tưởng chính của chiến lược là mở một vị trí đầu nhiều hoặc đầu trống mới vào đầu mỗi ngày giao dịch dựa trên tình trạng thị trường ngày trước. Các tham số quan trọng bao gồm lợi nhuận mục tiêu 0,3% và dừng lỗ 0,2%, vốn khởi đầu là 1000 đô la và hoa hồng cho mỗi giao dịch là 0,1% .
Nguyên tắc cốt lõi của chiến lược này là dựa trên xu hướng thị trường của ngày giao dịch trước đó, mở một vị trí đa đầu mới hoặc vị trí đa đầu trống khi mỗi ngày giao dịch mở cửa. Cụ thể, nếu ngày trước không có vị trí, chiến lược sẽ mở vị trí đa đầu khi ngày mới mở cửa. Nếu đã có vị trí đa đầu, chiến lược sẽ kiểm tra xem có đạt được lợi nhuận mục tiêu 0,3% hay không, và nếu đạt được, sẽ tháo dỡ vị trí. Đối với vị trí trống, chiến lược sẽ kiểm tra xem có đạt được mức dừng lỗ 0,2% hay không, và nếu đạt được, sẽ tháo dỡ vị trí đầu trống, đồng thời mở một vị trí đa đầu mới để thay thế. Điều này đảm bảo chiến lược luôn giữ lỗ hổng trên thị trường.
Chiến lược giao dịch hàng ngày này có một số ưu điểm đáng chú ý:
Mặc dù chiến lược này đã cho thấy hiệu suất và kiểm soát rủi ro tốt, nhưng vẫn có một số rủi ro tiềm ẩn:
Để giảm thiểu những rủi ro này, bạn có thể xem xét tăng đa dạng hóa, áp dụng các chiến lược tương tự trên các thị trường và loại tài sản khác nhau. Việc giám sát thường xuyên và điều chỉnh các tham số chiến lược cũng rất quan trọng để thích ứng với tình trạng thị trường đang thay đổi.
Nói chung, chiến lược giao dịch hàng ngày này cung cấp một cách cân bằng để giao dịch trong ngày, tập trung vào quản lý rủi ro và lợi nhuận liên tục. Nó phù hợp với các nhà giao dịch tìm kiếm một phương pháp giao dịch có hệ thống và nghiêm ngặt.
/*backtest
start: 2023-05-22 00:00:00
end: 2024-05-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Daily AUD-JPY Trading", overlay=true, initial_capital=1000, currency="AUD", default_qty_type=strategy.percent_of_equity, default_qty_value=200, commission_type=strategy.commission.percent, commission_value=0.1)
// Input parameters
profit_target = input(0.3, title="Profit Target (%)") / 100
loss_target = input(0.2, title="Loss Target (%)") / 100
start_year = input(2021, title="Start Year")
// Calculate daily open and close
new_day = ta.change(time("D"))
var float entry_price_long = na
var float entry_price_short = na
var bool position_long_open = false
var bool position_short_open = false
// Date check
trade_start = timestamp(start_year, 1, 1, 0, 0)
if new_day and time >= trade_start
// If there was a previous long position, check for profit target
if position_long_open
current_profit_long = (close - entry_price_long) / entry_price_long
if current_profit_long >= profit_target
strategy.close("AUD Trade Long", comment="Take Profit Long")
position_long_open := false
// If there was a previous short position, check for profit target
if position_short_open
current_profit_short = (entry_price_short - close) / entry_price_short
if current_profit_short >= profit_target
strategy.close("AUD Trade Short", comment="Take Profit Short")
position_short_open := false
// Check for daily loss condition for short positions
if position_short_open
current_loss_short = (close - entry_price_short) / entry_price_short
if current_loss_short <= -loss_target
strategy.close("AUD Trade Short", comment="Stop Loss Short")
position_short_open := false
// Open a new long position to replace the stopped short position
strategy.entry("AUD Trade Long Replacement", strategy.long)
entry_price_long := close
position_long_open := true
// Open a new long position at the start of the new day if no long position is open
if not position_long_open and not position_short_open
strategy.entry("AUD Trade Long", strategy.long)
entry_price_long := close
position_long_open := true
// Open a new short position at the start of the new day if no short position is open
if not position_short_open and not position_long_open
strategy.entry("AUD Trade Short", strategy.short)
entry_price_short := close
position_short_open := true
// Check for continuous profit condition for long positions
if position_long_open
current_profit_long = (close - entry_price_long) / entry_price_long
if current_profit_long >= profit_target
strategy.close("AUD Trade Long", comment="Take Profit Long")
position_long_open := false
// Check for continuous profit condition for short positions
if position_short_open
current_profit_short = (entry_price_short - close) / entry_price_short
if current_profit_short >= profit_target
strategy.close("AUD Trade Short", comment="Take Profit Short")
position_short_open := false
// Plot the entry prices on the chart
plot(position_long_open ? entry_price_long : na, title="Entry Price Long", color=color.green, linewidth=2)
plot(position_short_open ? entry_price_short : na, title="Entry Price Short", color=color.red, linewidth=2)
// Display current profit/loss percentage for long positions
var label profit_label_long = na
if position_long_open and not na(entry_price_long)
current_profit_long = (close - entry_price_long) / entry_price_long * 100
label.delete(profit_label_long)
profit_label_long := label.new(x=time, y=high, text="Long P/L: " + str.tostring(current_profit_long, format.percent), style=label.style_label_down, color=color.white, textcolor=color.black,xloc=xloc.bar_time)
// Display current profit/loss percentage for short positions
var label profit_label_short = na
if position_short_open and not na(entry_price_short)
current_profit_short = (entry_price_short - close) / entry_price_short * 100
label.delete(profit_label_short)
profit_label_short := label.new(x=time, y=high, text="Short P/L: " + str.tostring(current_profit_short, format.percent), style=label.style_label_down, color=color.white, textcolor=color.black,xloc=xloc.bar_time)