Strategi purata bergerak dengan sasaran keuntungan dinamik

Penulis:ChaoZhang, Tarikh: 2023-09-18 21:46:47
Tag:

Ringkasan

Strategi ini mengenal pasti trend menggunakan purata bergerak, mengambil keuntungan pada kelipatan ATR tetap, dan secara dinamik saiz kedudukan berdasarkan ATR. Ia bertujuan untuk menunggang trend untuk keuntungan sambil mengawal risiko.

Prinsip-prinsip

Strategi ini menggunakan Purata Bergerak Sederhana panjang N untuk menentukan arah trend. Ia pergi panjang apabila SMA pendek melintasi di atas SMA panjang, dan pergi pendek apabila melintasi di bawah.

Selepas kemasukan, sasaran keuntungan ditetapkan pada kelipatan ATR tetap dari harga kemasukan, contohnya Sasaran keuntungan = Harga kemasukan + ATR * Faktor untuk jangka panjang. Keuntungan diambil apabila harga mencapai sasaran keuntungan.

Strategi ini juga mengukur kedudukan secara bertentangan dengan ATR, yang mewakili turun naik pasaran.

Kelebihan

  1. MA mengenal pasti trend, membolehkan trend mengikuti.

  2. ATR keuntungan mengambil keuntungan daripada trend sambil mengelakkan pembalikan.

  3. Ukuran kedudukan dinamik menguruskan risiko mengikut turun naik pasaran.

  4. Faktor keuntungan dan parameter saiz yang boleh disesuaikan.

  5. Stop loss boleh mengurangkan risiko.

Risiko dan Pengurangan

  1. MA lag boleh menyebabkan entri lewat. parameter yang lebih sensitif boleh diuji.

  2. Pergolakan ATR boleh menyebabkan sasaran keuntungan terlalu kecil atau terlalu besar.

  3. Volatiliti yang berlebihan membawa kepada kedudukan yang terlalu kecil yang mengehadkan keuntungan.

  4. Kekurangan stop loss berisiko kehilangan yang tidak terkawal.

  5. Pemilihan simbol yang buruk, contohnya aset turun naik rendah, boleh menyebabkan prestasi yang kurang.

Peluang Peningkatan

  1. Uji kombinasi parameter yang berbeza untuk tetapan optimum.

  2. Meningkatkan logik kemasukan dengan menambah penunjuk lain sebagai penapis.

  3. Penyelidikan mengambil keuntungan dinamik dan berhenti kerugian untuk fleksibiliti.

  4. Menguruskan kedudukan berdasarkan penunjuk turun naik.

  5. Tambah mekanisme masuk semula untuk memanjangkan tempoh penahan.

Ringkasan

Strategi ini mengenal pasti trend dengan purata bergerak, mengambil keuntungan pada kelipatan ATR dan kedudukan saiz oleh ATR. Ia mempunyai beberapa trend berikut keupayaan dan risiko boleh diselaraskan melalui parameter. Tetapi pilihan parameter dan masalah sasaran keuntungan wujud. Penambahbaikan lanjut boleh dibuat melalui pengoptimuman, hentian kerugian untuk menjadikan strategi lebih mantap.


/*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')


Lebih lanjut