Strategi ini berdasarkan purata bergerak untuk menentukan arah trend, dengan peratusan ATR berhenti, dan digabungkan dengan ATR untuk menyesuaikan kedudukan secara dinamik. Matlamatnya adalah untuk mengesan trend untuk mendapatkan keuntungan, sambil mengawal risiko.
Strategi menggunakan purata bergerak sederhana dengan panjang N untuk menentukan arah trend. Apabila memakai SMA jangka panjang pada SMA jangka pendek, lakukan lebih banyak; Apabila memakai SMA jangka panjang di bawah SMA jangka pendek, lakukan kosong.
Selepas masuk, strategi menggunakan ATR beberapa kali ganda sebagai tempat berhenti, jika kedudukan panjang, tempat berhenti adalah Harga Masuk + ATR * Factor. Apabila harga melebihi tempat berhenti, tempat berhenti keluar.
Selain itu, strategi menyesuaikan kedudukan dengan saiz ATR. Ukuran ATR mewakili kadar turun naik pasaran, saiz kedudukan berbanding terbalik dengan ATR.
Menggunakan purata bergerak untuk menentukan arah trend, mempunyai keupayaan untuk mengesan trend.
ATR yang dihentikan dengan cara yang menguntungkan dan mengelakkan pembalikan.
Kedudukan dinamik boleh disesuaikan dengan tahap turun naik pasaran untuk mengawal risiko.
Faktor penangguhan dan parameter kedudukan boleh disesuaikan.
Ia boleh digunakan untuk mengurangkan risiko.
Rata-rata bergerak terlewat, yang boleh menyebabkan kelewatan kemasukan. Parameter yang lebih sensitif boleh diuji.
Perubahan dalam saiz ATR boleh menyebabkan stutter terlalu kecil atau terlalu besar. Anda boleh memasukkan ATR rata-rata untuk mengekstrak trendnya.
Jika turun naik terlalu besar, kedudukan mungkin terlalu sedikit mempengaruhi keuntungan. Anda boleh menetapkan had kedudukan rendah.
Tidak menetapkan Hentikan Kerugian menyebabkan risiko peningkatan kerugian. Anda boleh menyertai strategi Hentikan Kerugian Bergerak.
Pilihan yang tidak tepat untuk aset, seperti aset dengan kadar turun naik yang rendah, strategi ini mungkin tidak berkesan. Patokan yang lebih turun naik harus dipilih.
Uji kombinasi parameter yang berbeza untuk mencari parameter yang optimum.
Mengoptimumkan logik pembukaan kedudukan, seperti penapisan untuk penunjuk lain.
Kajian mengenai strategi berhenti dan hentikan kerugian secara dinamik untuk menjadikan hentian dan hentikan kerugian lebih fleksibel
Pengurusan kedudukan digabungkan dengan indikator kadar turun naik.
Menyertai mekanisme kemasukan semula untuk memanjangkan tempoh pegangan.
Strategi ini menggunakan trend penghakiman purata bergerak, berhenti pada nisbah ATR, dan menyesuaikan kedudukan secara dinamik. Kelebihannya adalah bahawa ia mempunyai keupayaan untuk mengikuti trend, boleh menyesuaikan risiko dengan parameter. Tetapi terdapat masalah seperti sukar memilih parameter, terlalu banyak berhenti.
/*backtest
start: 2023-09-10 00:00:00
end: 2023-09-17 00:00:00
period: 5m
basePeriod: 1m
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(80,'')
ptper = input(252,'')
ptfactor = input(12,'')
sizeper = input(20, '')
trend = 0.0
signal = 0
size = 1.0
investment = 100000
atrange = 0.0
ptrange = 0.0
stoph = 0.0
stopl = 0.0
if sizeper != 0
atrange := atr(sizeper)
if atrange == 0 or sizeper == 0
size := 1
else
size := investment/atrange * 0.1
trend := sma(close,period)
if signal != 1 and nz(trend[1]) < nz(trend[2]) and trend > nz(trend[1])
strategy.entry('long',strategy.long, comment='open_long')
signal := 1
else
signal := nz(signal[1])
if signal != -1 and nz(trend[1]) > nz(trend[2]) and trend < nz(trend[1])
strategy.entry('short',strategy.short, comment='open_short')
signal := -1
else
if signal == 0
signal := nz(signal[1])
ptrange := atr(ptper)
if strategy.position_size > 0
strategy.exit("exit_long", "long", qty = strategy.position_size, limit = close + ptfactor*ptrange , comment='trail_long')
else
if strategy.position_size < 0
strategy.exit("exit_short", "short", qty = abs(strategy.position_size), limit = close - ptfactor*ptrange, comment='trail_short')