Strategi ini mengoptimumkan titik masuk selepas isyarat dari sistem purata bergerak asas.
Logik utama ialah:
Mengira purata bergerak dalam tempoh (contohnya 20 hari)
Crossover menghasilkan isyarat panjang/pendek
Selepas isyarat, jangan masuk dengan segera tetapi tunggu tahap yang lebih baik
Jika tahap yang lebih baik berlaku dalam hari tertentu (contohnya 3 hari), masukkan perdagangan
Jika tidak, masuk pada harga penutupan pada hari ke-5 untuk mengelakkan kehilangan
Ini bertujuan untuk memanfaatkan penyambungan semula trend selepas penyatuan dan bukannya memasuki isyarat dengan segera.
Pengoptimuman kemasukan untuk tahap kemasukan yang lebih baik
Hari tunggu maksimum mengelakkan perdagangan yang hilang sepenuhnya
Peraturan yang mudah dan mudah dilaksanakan
Masa menunggu dan ambang memerlukan pengoptimuman
Mungkin terlepas beberapa peluang trend jangka pendek
Keperluan untuk memantau kedua-dua keadaan masa dan harga
Strategi ini bertujuan untuk mendapatkan tahap kemasukan yang lebih baik melalui pengoptimuman kemasukan yang mudah sambil memastikan tren tidak terlepas.
/*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')