Strategi ini mengoptimalkan titik masuk setelah sinyal dari sistem rata-rata bergerak dasar.
Logika utamanya adalah:
Menghitung rata-rata bergerak selama periode (misalnya 20 hari)
Crossover menghasilkan sinyal panjang/pendek
Setelah sinyal, jangan segera masuk tapi tunggu tingkat yang lebih baik
Jika tingkat yang lebih baik terjadi dalam hari tertentu (misalnya 3 hari), masukkan perdagangan
Jika tidak, masuk pada harga penutupan pada hari ke-5 untuk menghindari kehilangan
Hal ini bertujuan untuk memanfaatkan kembali tren setelah konsolidasi daripada masuk sinyal segera.
Optimasi entri untuk tingkat entri yang lebih baik
Hari tunggu maksimum menghindari perdagangan yang hilang sepenuhnya
Aturan sederhana dan jelas mudah diterapkan
Waktu tunggu dan ambang batas membutuhkan optimalisasi
Mungkin kehilangan beberapa peluang tren jangka pendek
Perlu memantau kondisi waktu dan harga
Strategi ini bertujuan untuk mendapatkan tingkat entri yang lebih baik melalui optimasi entri sederhana sambil memastikan tren tidak dilewatkan.
/*backtest start: 2023-08-14 00:00:00 end: 2023-09-13 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/ // © dongyun //@version=4 strategy("等待一个更好的入场机会", overlay=true) period = input(20,'') maxwait = input(3,'') threshold = input(0.01,'') signal = 0 trend = 0.0 newtrend = 0.0 wait = 0.0 initialentry = 0.0 trend := sma(close,period) signal := nz(signal[1]) if trend > nz(trend[1]) signal := 1 else if trend < nz(trend[1]) signal := -1 wait := nz(wait[1]) initialentry := nz(initialentry[1]) if signal != signal[1] if strategy.position_size > 0 strategy.close('long',comment='trend sell') signal := -1 else if strategy.position_size < 0 strategy.close('short',comment='trend buy') signal := 1 wait := 0 initialentry := close else if signal != 0 and strategy.position_size == 0 wait := wait + 1 // test for better entry if strategy.position_size == 0 if wait >= maxwait if signal > 0 strategy.entry('long',strategy.long, comment='maxtime Long') else if signal < 0 strategy.entry('short',strategy.short, comment='maxtime Short') else if signal > 0 and close < initialentry - threshold strategy.entry('long',strategy.long, comment='delayed Long') else if signal < 0 and close > initialentry + threshold strategy.entry('short',strategy.short, comment='delayed short')