Strategi Crossover Purata Bergerak Galileo Galilei

Penulis:ChaoZhang, Tarikh: 2023-12-18 12:07:07
Tag:

img

Ringkasan

Strategi crossover purata bergerak Galileo Galilei adalah strategi dagangan berdasarkan purata bergerak. Ia menghasilkan isyarat dagangan dengan mengira purata bergerak eksponensial (EMA) dalam tempoh tertentu dan membandingkan silang antara EMA dan harga. Isyarat jual dihasilkan apabila harga jatuh di bawah EMA dari atas ke bawah, sementara isyarat beli berlaku apabila harga memecahkan di atas EMA dari bawah ke atas.

Logika Strategi

Inti strategi Galileo Galilei terletak pada purata bergerak eksponen (EMA). EMA adalah jenis purata bergerak yang memberi lebih banyak berat kepada harga terkini. Rumus penghitungannya adalah:

EMA hari ini = (harga penutupan hari ini × Faktor Pembersihan) + (EMA semalam × (1 − Faktor Pembersihan))

Di mana faktor pelinciran α = (2/(bilangan tempoh + 1))

Strategi ini secara dinamik mengira EMA berdasarkan parameter tempoh input pengguna. Ia kemudian membandingkan persilangan antara harga dan EMA untuk menentukan isyarat perdagangan:

  1. Apabila harga jatuh di bawah EMA dari atas ke bawah, isyarat jual dihasilkan untuk perdagangan pendek.

  2. Apabila harga melangkau EMA dari bawah, isyarat beli dicetuskan untuk perdagangan panjang.

Strategi ini juga memetakan garis EMA pada carta, bersama dengan penanda anak panah yang menunjukkan isyarat beli dan jual.

Analisis Kelebihan

Strategi crossover purata bergerak Galileo Galilei mempunyai kelebihan berikut:

  1. Logik yang mudah difahami dan dilaksanakan, sesuai untuk pemula.
  2. Cepat bertindak balas terhadap perubahan harga melalui penggunaan EMA.
  3. Isyarat crossover jelas tanpa whipsaws berlebihan.
  4. Fleksibiliti untuk menyesuaikan diri dengan persekitaran pasaran yang berbeza dengan menyesuaikan parameter EMA.
  5. Isyarat masuk dan keluar yang ditakrifkan menyediakan kawalan risiko.

Analisis Risiko

Risiko berpotensi strategi ini termasuk:

  1. Lebih banyak isyarat palsu boleh berlaku semasa turun naik harga yang tinggi. Strategi stop loss boleh membantu mengoptimumkan.
  2. Bergantung pada satu penunjuk menjadikannya rentan terhadap manipulasi harga.
  3. Kesan keterlambatan, terutamanya selepas peristiwa tiba-tiba.
  4. Tidak dapat menyesuaikan diri dengan trend harga yang berpanjangan, satu batasan biasa di kalangan strategi purata bergerak.

Arahan pengoptimuman

Beberapa cara untuk mengoptimumkan strategi:

  1. Menggabungkan penunjuk lain untuk membina strategi komposit untuk meningkatkan ketahanan terhadap isyarat palsu.

  2. Tambahkan mekanisme stop loss seperti trailing stop loss atau stop loss berasaskan peratusan untuk mengawal jumlah kerugian perdagangan tunggal.

  3. Uji EMA dengan kombinasi parameter yang berbeza untuk mencari tetapan optimum.

  4. Menilai logik masuk semula untuk menangkap rebound selepas pembalikan harga awal, meningkatkan keuntungan.

Kesimpulan

Pertukaran purata bergerak Galileo Galilei adalah strategi yang mudah namun praktikal dengan logik yang jelas dan mudah dikendalikan. Ia sesuai untuk peniaga kuant pemula. Dengan peningkatan berterusan, prestasi dapat menjadi semakin unggul dari masa ke masa.


/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 00:00:00
period: 1d
basePeriod: 1h
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/
// © armigoldman

//@version=3
strategy(title="Galileo Galilei", shorttitle="Galileo Galilei", overlay=true, initial_capital = 100000, default_qty_type=strategy.cash, default_qty_value = 100000)
len = input(11, minval=1, title="Length")
src = input(open, title="Source")
out = ema(src, len)
plot(out, title="EMA", color=yellow)
//last8h = highest(close, 8)
//lastl8 = lowest(close, 8)

//plot(last8h, color=red, linewidth=2)
//plot(lastl8, color=green, linewidth=2)

////////////////////////////////////////////////////////////////////////////////
// BACKTESTING RANGE

// From Date Inputs
fromDay = input(defval=1, title="From Day", minval=1, maxval=31)
fromMonth = input(defval=1, title="From Month", minval=1, maxval=12)
fromYear = input(defval=2020, title="From Year", minval=1970)

// To Date Inputs
toDay = input(defval=1, title="To Day", minval=1, maxval=31)
toMonth = input(defval=12, title="To Month", minval=1, maxval=12)
toYear = input(defval=2021, title="To Year", minval=1970)

// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true


bearish = cross(close, out) == 1 and close[1] > close
bullish = cross(close, out) == 1 and close[1] < close

plotshape(bearish, color=white, style=shape.arrowdown, text="BEAR", location=location.abovebar)
plotshape(bullish, color=white, style=shape.arrowup, text="BULL", location=location.belowbar)

buy = if cross(close, out) == 1 and close[1] < close
    strategy.entry("BUY", strategy.long, when=time_cond)
        //strategy.close_all(when=bearish)
        // strategy.exit("exit", "Long", profit =, loss = 35)


sell = if cross(close, out) == 1 and close[1] > close
    strategy.entry("SELL", strategy.short, when=time_cond)
        //sell = if bearish
        //strategy.close_all(when=bullish)
        // strategy.exit("exit", "Long", profit = bullish, loss = 100)

profit = strategy.netprofit
if not time_cond
    strategy.close_all()

//plotshape(true, style=shape.triangleup, location=location.abovebar)


Lebih lanjut