Strategi ini adalah berasaskan pada sistem garis lurus bergerak asas, dan telah dioptimumkan untuk masa masuk tertentu selepas isyarat dikeluarkan.
Logik utama ialah:
Hitung purata bergerak untuk tempoh tertentu (seperti 20 hari)
Apabila harga naik melalui garis rata menghasilkan isyarat melakukan banyak, apabila turun melalui isyarat melakukan kosong
Tidak masuk ke dalam pasaran dengan segera selepas mendapat isyarat, tetapi menunggu harga yang lebih baik
Jika terdapat harga yang lebih baik dalam tempoh tertentu (contohnya 3 hari), masuk
Jika tidak, masuk pada hari ke-5 dengan harga penutupan untuk mengelakkan ketinggalan
Strategi ini tidak tergesa-gesa untuk masuk ke dalam pasaran selepas isyarat, tetapi mencari peluang untuk kembali ke arah yang lebih baik selepas pengiraan, dan dengan itu membina kedudukan dengan harga yang lebih baik.
Optimasi Kemasukan, Berjuang untuk Mendapatkan Titik Masuk yang Lebih Baik
Tetapkan hari menunggu maksimum untuk mengelakkan kelewatan
Peraturan mudah, jelas dan mudah dilaksanakan
Masa tunggu dan nilai tunjungan memerlukan pengoptimuman ujian berulang
Mungkin terlewatkan sebahagian peluang dalam Trend Garis Pendek
Dua syarat yang perlu diperhatikan: masa dan harga
Strategi ini dioptimumkan dengan kemasukan yang mudah untuk mendapatkan tempat kemasukan yang lebih baik dengan jaminan untuk tidak ketinggalan trend. Tetapi masa menunggu yang dioptimumkan dan syarat kemasukan sangat penting untuk keberkesanan strategi.
/*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')