Strategi Perpindahan Purata Pergerakan Eksponen


Tarikh penciptaan: 2023-10-17 16:55:10 Akhirnya diubah suai: 2023-10-17 16:55:10
Salin: 0 Bilangan klik: 719
1
fokus pada
1617
Pengikut

Strategi Perpindahan Purata Pergerakan Eksponen

Gambaran keseluruhan

Ini adalah strategi perdagangan automatik untuk melakukan overdraft berdasarkan indeks bergerak rata-rata dua tempoh masa yang berbeza. Ia menggunakan petunjuk teknikal yang mudah, sangat sesuai untuk pembelajaran dan amalan pemula.

Prinsip

Strategi ini menggunakan dua purata bergerak indeks, satu adalah purata tempoh masa yang besar, dan satu adalah purata tempoh semasa. Apabila purata tempoh masa yang semasa melintasi purata tempoh masa yang besar, lakukan lebih banyak; apabila purata tempoh masa yang semasa melintasi purata tempoh masa yang besar, lakukan kosong.

Secara khusus, strategi ini mulakan dengan menentukan dua parameter garis rata:

  1. tf - jangka masa besar, garis matahari secara lalai
  2. len - panjang kitaran purata, default 3

Kemudian dua EMA dikira:

  1. ma1 - 3 hari EMA pada garis besar kitaran
  2. ma2 - EMA 3 hari dalam kitaran semasa

Akhirnya, masuk ke dalam logik transaksi:

  • Bila ma2 > ma1, buat lebih banyak.
  • Apabila ma2 < ma1, kosongkan

Dengan cara ini, arah trend akan ditentukan melalui persilangan garis rata-rata dalam tempoh masa yang berbeza, untuk perdagangan automatik.

Kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Prinsipnya mudah, mudah difahami dan dilaksanakan, sangat sesuai untuk pelajar pemula.
  2. Berdagang dengan trend, mengikut trend, dan mendapat keuntungan yang lebih baik.
  3. Menggunakan purata bergerak indeks, ia lebih sensitif terhadap perubahan harga dan dapat menangkap perubahan trend tepat pada masanya.
  4. Kombinasi garis purata kitaran yang berbeza dapat memainkan kelebihan masing-masing untuk meningkatkan kestabilan sistem.
  5. Tidak memerlukan banyak parameter, mudah diuji dan dioptimumkan, mudah untuk beroperasi di cakera keras.

Risiko

Strategi ini mempunyai beberapa risiko:

  1. Ia tidak dapat dikesan dengan jelas, dan ia mungkin akan dipenjarakan oleh pasaran yang bergolak.
  2. Perbezaan dua garisan yang sama berlaku dalam masa yang lama, mungkin kehilangan beberapa peluang.
  3. Tidak dapat menyaring secara berkesan kerosakan silang dua garis lurus.
  4. Ia tidak sesuai untuk pasaran yang rumit.

Risiko boleh dikurangkan dengan menetapkan stop loss, mengoptimumkan kombinasi parameter, atau menambah petunjuk lain.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Uji parameter purata kitaran besar yang berbeza untuk mencari kombinasi terbaik.
  2. Menambah penapisan untuk penunjuk lalu lintas untuk mengelakkan isyarat palsu.
  3. Menggabungkan indikator trend, meningkatkan kekuatan pegangan dan kecekapan operasi.
  4. Tetapkan titik berhenti beradaptasi untuk mengawal kerugian tunggal.
  5. Mengoptimumkan pengurusan kedudukan, menyesuaikan saiz kedudukan mengikut pasaran.
  6. Menambah model pembelajaran mesin untuk menjadikan strategi lebih bijak.

ringkaskan

Strategi penyambung rata-rata bergerak ini menggunakan trend tangkapan penunjuk yang mudah, sesuai untuk amalan pembelajaran pemula. Ruang pengoptimuman yang lebih besar, lebih banyak penunjuk teknikal dan model boleh diperbaiki, mengembangkan strategi perdagangan kuantitatif yang lebih berkesan.

Kod sumber strategi
/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Noro's Singapore Strategy", shorttitle = "Singapore 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 = "Lot")
tf = input("D", title = "Big Timeframe")
len = input(3, minval = 1, title = "MA length")
src = input(close, title = "MA Source")
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")

//MAs
ma1 = request.security(syminfo.tickerid, tf, sma(src, len))
ma2 = sma(src, len)
plot(ma1, linewidth = 2, color = blue, title = "Big TF MA")
plot(ma2, linewidth = 2, color = red, title = "MA")

//Trading
size = strategy.position_size
lot = 0.0
lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1]

if ma2 > ma1
    strategy.entry("L", strategy.long, needlong ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if ma2 < ma1
    strategy.entry("S", strategy.short, needshort ? lot : 0, 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()