Strategi jangka pendek pengesanan ayunan


Tarikh penciptaan: 2024-01-18 16:29:34 Akhirnya diubah suai: 2024-01-18 16:29:34
Salin: 0 Bilangan klik: 567
1
fokus pada
1617
Pengikut

Strategi jangka pendek pengesanan ayunan

Gambaran keseluruhan

Strategi ini menggunakan perubahan harga tertinggi dan terendah pada garis K untuk menentukan arah dan kekuatan pergerakan pasaran, digabungkan dengan garis rata untuk menentukan trend keseluruhan, untuk mencapai operasi garis pendek. Ia digunakan terutamanya untuk jenis yang lebih jelas mengenai pergerakan.

Prinsip Strategi

Strategi ini pertama-tama menilai perubahan harga tertinggi dan harga terendah pada garis K berbanding dengan garis K terdahulu, jika harga tertinggi naik, ia dicatat sebagai 1, jika harga terendah turun, ia dicatat sebagai -1, jika tidak, ia dicatat sebagai 0. Kemudian kira rata-rata perubahan harga tertinggi dan harga terendah dalam jangka masa tertentu, untuk menentukan arah dan kekuatan pergerakan pasaran.

Pada masa yang sama, strategi mencatat harga tertinggi dan terendah dalam tempoh terakhir. Apabila garis rata-rata memutuskan perubahan trend, harga yang digabungkan dengan rekod menentukan tahap harga kritikal, membentuk tahap berhenti dan berhenti.

Arah masuk mengikut penilaian garis rata, kepala berganda dibeli di atas rel atas, kepala kosong dijual di bawah rel bawah. Tahap hentian dan hentian terbentuk melalui penilaian tahap harga kritikal.

Analisis kelebihan

Kelebihan terbesar strategi ini adalah memanfaatkan sepenuhnya ciri-ciri getaran garis pendek untuk keuntungan. Dengan menentukan titik harga penting, penutupan kerugian terbentuk, menjadikan strategi berjalan di bawah peraturan yang jelas.

Analisis risiko

Strategi ini mempunyai risiko utama:

  1. Tidak ada keuntungan jika tidak bergolak.

  2. Harga melepasi paras penangguhan menyebabkan kerugian yang tidak perlu.

  3. Salah menilai trend, mungkin terlepas keadaan atau melakukan operasi terbalik. Anda boleh menyesuaikan parameter garisan purata dengan sewajarnya.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Menyesuaikan kitaran garis rata-rata untuk menyesuaikan ciri-ciri pelbagai jenis.

  2. Mengoptimumkan jangkauan stop loss dan keseimbangan keuntungan dan kerugian.

  3. Menambah penilaian indikator lain untuk mengelakkan kesalahan operasi.

  4. Tambah Stop Loss Automatik untuk Kawalan Kerugian Maksimum

ringkaskan

Strategi ini secara keseluruhan adalah strategi yang memanfaatkan ciri-ciri gegaran garis pendek. Mengambil keuntungan dari pergerakan harga yang kecil. Pada masa yang sama, mengawal risiko dengan ketat, berhenti tepat pada masanya apabila trend tidak baik.

Kod sumber strategi
/*backtest
start: 2024-01-16 00:00:00
end: 2024-01-16 22:45:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy(title = "Noro's ZZ-3 Strategy", shorttitle = "ZZ-3 str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
corr = input(0.0, title = "Correction, %")
bars = input(1, minval = 1)
revers = input(false, defval = false, title = "revers")
showll = input(true, defval = true, title = "Show Levels")
showbg = input(false, defval = false, title = "Show Background")
showar = input(false, defval = false, title = "Show Arrows")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Levels
hbar = 0
hbar := high > high[1] ? 1 : high < high[1] ? -1 : 0
lbar = 0
lbar := low > low[1] ? 1 : low < low[1] ? -1 : 0
uplevel = 0.0
dnlevel = 0.0
hh = highest(high, bars + 1)
ll = lowest(low, bars + 1)
uplevel := hbar == -1 and sma(hbar, bars)[1] == 1 ? hh + ((hh / 100) * corr) : uplevel[1]
dnlevel := lbar == 1 and sma(lbar, bars)[1] == -1 ? ll - ((ll / 100) * corr) : dnlevel[1]

//Lines
upcol = na
upcol := showll == false ? na : uplevel != uplevel[1] ? na : lime
plot(uplevel, color = upcol, linewidth = 2)
dncol = na
dncol := showll == false ? na : dnlevel != dnlevel[1] ? na : red
plot(dnlevel, color = dncol, linewidth = 2)

//Background
size = strategy.position_size
trend = 0
trend := size > 0 ? 1 : size < 0 ? -1 : high >= uplevel ? 1 : low <= dnlevel ? -1 : trend[1]
col = showbg == false ? na : trend == 1 ? lime : trend == -1 ? red : na
bgcolor(col)

//Arrows
longsignal = false
shortsignal = false
longsignal := size > size[1]
shortsignal := size < size[1]
plotarrow(longsignal and showar and needlong ? 1 : na, colorup = blue, colordown = blue, transp = 0)
plotarrow(shortsignal and showar and needshort ? -1 : na, colorup = blue, colordown = blue, transp = 0)

//Trading
lot = 0.0
lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1]
if uplevel > 0 and dnlevel > 0 and revers == false
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, stop = uplevel, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, stop = dnlevel, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if uplevel > 0 and dnlevel > 0 and revers == true
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, limit = dnlevel, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, limit = uplevel, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()