Strategi ini menggunakan pendekatan perdagangan harian yang konsisten dan memberi tumpuan kepada menangkap keuntungan sasaran kecil sambil mengawal risiko dengan ketat. Strategi ini telah diuji semula dari tahun 2021 dan menunjukkan prestasi yang mantap dengan kemenangan perdagangan mencapai 100%. Gagasan utama strategi ini adalah untuk membuka kedudukan overhead atau kosong baru pada permulaan setiap hari perdagangan berdasarkan keadaan pasaran pada hari sebelumnya.
Prinsip teras strategi ini adalah berdasarkan pergerakan pasaran pada hari perdagangan sebelumnya, membuka kedudukan bermulut atau kosong baru pada setiap hari perdagangan. Secara khusus, jika tidak ada kedudukan pada hari sebelumnya, strategi ini akan membuka kedudukan bermulut pada hari baru. Jika sudah ada kedudukan bermulut, strategi ini akan memeriksa apakah keuntungan sasaran 0.3% telah dicapai, dan jika ia dicapai, ia akan ditutup.
Strategi dagangan harian ini mempunyai beberapa kelebihan:
Walaupun strategi ini telah menunjukkan prestasi yang cemerlang dan kawalan risiko, terdapat beberapa risiko yang berpotensi:
Untuk mengurangkan risiko ini, anda boleh mempertimbangkan untuk meningkatkan kepelbagaian, menggunakan strategi yang serupa di pasaran dan kelas aset yang berbeza. Ia juga penting untuk memantau dan menyesuaikan parameter strategi secara berkala untuk menyesuaikan diri dengan keadaan pasaran yang berubah.
Secara keseluruhannya, strategi dagangan harian ini menawarkan pendekatan yang seimbang untuk berdagang dalam sehari, dengan tumpuan kepada pengurusan risiko dan keuntungan yang berterusan. Ia sesuai untuk peniaga yang mencari kaedah perdagangan yang sistematik dan ketat.
/*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)