Strategi Perdagangan Kuantitatif Perpindahan Purata Pergerakan Eksponen


Tarikh penciptaan: 2024-03-29 10:59:57 Akhirnya diubah suai: 2024-03-29 10:59:57
Salin: 1 Bilangan klik: 517
1
fokus pada
1617
Pengikut

Strategi Perdagangan Kuantitatif Perpindahan Purata Pergerakan Eksponen

Gambaran keseluruhan

Strategi ini menggunakan persilangan dua purata bergerak indeks ((EMA) sebagai isyarat membeli-belah. Apabila EMA jangka pendek dari bawah ke atas melalui EMA jangka panjang, ia menghasilkan isyarat membeli; sebaliknya, apabila EMA jangka pendek dari atas ke bawah melalui EMA jangka panjang, ia menghasilkan isyarat menjual. Strategi ini juga akan menilai sama ada titik persilangan adalah harga tertinggi atau terendah dalam 10 kitaran perdagangan terakhir, untuk memastikan kekuatan trend.

Prinsip Strategi

  1. Hitung EMA dua kitaran yang berbeza, dengan kitaran lalai 5 dan 10.
  2. Untuk menentukan sama ada dua EMA bersilang, jika EMA jangka pendek melintasi EMA jangka panjang dari bawah ke atas, ia akan menghasilkan isyarat beli; jika EMA jangka pendek melintasi EMA jangka panjang dari atas ke bawah, ia akan menghasilkan isyarat jual.
  3. Apabila menghasilkan isyarat persimpangan, menilai sama ada titik persimpangan semasa adalah harga tertinggi atau terendah dalam 10 kitaran perdagangan terkini. Jika harga tertinggi, dianggap sebagai tren naik yang kuat; jika harga terendah, dianggap sebagai tren menurun yang kuat.
  4. Jika dihasilkan isyarat beli dan tiada kedudukan semasa, maka akan dibuka lebih banyak; jika dihasilkan isyarat jual dan tiada kedudukan semasa, maka akan dibuka kosong.
  5. Jika sudah ada beberapa unit memegang kedudukan dan EMA jangka pendek melintasi EMA jangka panjang dari atas ke bawah, maka lebih banyak unit; jika sudah ada satu unit memegang kedudukan kosong dan EMA jangka pendek melintasi EMA jangka panjang dari bawah ke atas, maka kosong.

Kelebihan Strategik

  1. Rata-rata bergerak indeks dapat bertindak balas lebih cepat terhadap perubahan harga berbanding rata-rata bergerak sederhana, yang menghasilkan isyarat perdagangan yang lebih tepat pada masanya.
  2. Dengan menilai sama ada titik persimpangan adalah harga tertinggi atau harga terendah baru-baru ini, peluang perdagangan yang lebih kuat boleh dipilih untuk meningkatkan keuntungan strategi.
  3. Tanda harga titik persimpangan pada carta, memberikan rujukan dagangan yang lebih intuitif kepada peniaga.
  4. Kodnya jelas, mudah difahami dan dilaksanakan.

Risiko Strategik

  1. Isyarat yang dihasilkan oleh EMA yang bersilang mungkin mempunyai kelewatan yang menyebabkan kehilangan masa perdagangan terbaik.
  2. Dalam pasaran yang bergolak, persilangan EMA boleh berlaku dengan kerap, menyebabkan terlalu banyak transaksi dan meningkatkan kos transaksi.
  3. Strategi ini tidak mempunyai langkah-langkah untuk menghentikan kerugian, dan mungkin akan membawa kepada risiko yang lebih besar untuk ditarik balik jika keputusan yang salah dibuat.

Arah pengoptimuman strategi

  1. Memperkenalkan lebih banyak petunjuk teknikal seperti RSI, MACD dan lain-lain untuk membantu menentukan kekuatan dan arah trend, meningkatkan ketepatan isyarat.
  2. Tetapkan titik-titik berhenti dan hentian yang munasabah untuk mengawal risiko perdagangan tunggal.
  3. Optimumkan parameter perdagangan, seperti kitaran EMA, tetingkap masa pengesahan silang, dan sebagainya untuk meningkatkan kebolehpasaran strategi.
  4. Dengan menggunakan indikator sentimen pasaran, seperti VIX dan lain-lain, isyarat dagangan akan disaring untuk mengurangkan isyarat yang salah.
  5. Pertimbangkan untuk menambah modul pengurusan kedudukan dan pengurusan wang, menyesuaikan jumlah wang setiap transaksi secara dinamik, dan meningkatkan kecekapan penggunaan wang.

ringkaskan

Strategi ini menggunakan indeks bergerak rata-rata cross sebagai logik teras, dan digabungkan dengan kedudukan harga titik persimpangan dalam jangka masa terdekat untuk menilai kekuatan trend. Secara keseluruhan, logik strategi jelas, kelebihan jelas, tetapi terdapat juga batasan dan risiko tertentu. Dengan memperkenalkan lebih banyak petunjuk penilaian tambahan, menetapkan langkah-langkah kawalan risiko yang munasabah, mengoptimumkan parameter utama, anda dapat meningkatkan lagi kestabilan dan keuntungan strategi ini.

Kod sumber strategi
/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
period: 1h
basePeriod: 15m
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/
// © ZenAndTheArtOfTrading
// @version=5
strategy("ema giao nhau", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Get user input
emaLength1 = input.int(title="EMA #1 Length", defval=5)
emaLength2 = input.int(title="EMA #2 Length", defval=10)

// Get MAs
ema1 = ta.ema(close, emaLength1)
ema2 = ta.ema(close, emaLength2)

// Draw MAs
plot(ema1, color=color.blue, title="EMA 1")
plot(ema2, color=color.red, title="EMA 2")

// Detect crossovers
bool crossOver = ta.crossover(ema1, ema2)
bool crossUnder = ta.crossunder(ema1, ema2)
bool cross = crossOver or crossUnder
//float crossPrice = ta.valuewhen(cross, close, 0)
float crossPrice = cross ? close : na

// Check if the crossover price is the highest price over the past 10 bars
bool highestPrice = crossOver
for i = 1 to 10
    if crossPrice <= close[i]
        highestPrice := false
        break

// Check if the crossover price is the lowest price over the past 10 bars
bool lowestPrice = crossUnder
for i = 1 to 10
    if crossPrice >= close[i]
        lowestPrice := false
        break

// Flag the bar if it is a high/low close
bgcolor(highestPrice ? color.new(color.green, 50) : na)
bgcolor(lowestPrice ? color.new(color.red, 50) : na)

// Display crossover price
if cross
    highestEmaPrice = ema1 > ema2 ? ema1 : ema2
    label myLabel = label.new(bar_index, highestEmaPrice, "CrossPrice=" + str.tostring(crossPrice), color=color.white)
    if highestPrice and strategy.position_size == 0
        strategy.entry(id="Buy", direction=strategy.long)
    if lowestPrice and strategy.position_size == 0
        strategy.entry(id="Sell", direction=strategy.short)

// Exit trades when short-term EMA is breached
if strategy.position_size > 0 and crossUnder
    strategy.close("Buy")
if strategy.position_size < 0 and crossOver
    strategy.close("Sell")