Strategi ayunan harga berbasis EMA ganda


Tanggal Pembuatan: 2024-02-26 13:52:41 Akhirnya memodifikasi: 2024-02-26 13:52:41
menyalin: 2 Jumlah klik: 600
1
fokus pada
1617
Pengikut

Strategi ayunan harga berbasis EMA ganda

Ringkasan

Strategi bergulir harga EMA ganda dengan menghitung perbedaan antara EMA dua periode yang berbeda, untuk menilai tren dan kekuatan pasar. Ketika perbedaan antara garis cepat dan garis lambat melewati 0 sebagai sinyal bullish. Ketika perbedaan antara garis cepat dan garis lambat melewati 0 sebagai sinyal bearish.

Strategi ini sederhana dan mudah digunakan untuk menilai kekuatan dan arah pasar melalui perbedaan EMA. Namun, ada juga keterlambatan tertentu yang tidak dapat menangkap titik balik tepat waktu.

Prinsip Strategi

Indikator utama dari strategi pergerakan harga dua EMA adalah APO, yaitu Absolute Price Oscillator, yang menunjukkan perbedaan antara dua EMA. Rumusnya adalah sebagai berikut:

APO = EMA(短期) - EMA(长期)

Secara khusus, APO dalam strategi ini dihitung sebagai:

xShortEMA = ema(收盘价, LengthShortEMA) 

xLongEMA = ema(收盘价, LengthLongEMA)

xAPO = xShortEMA - xLongEMA

LengthShortEMA dan LengthLongEMA masing-masing mewakili panjang siklus EMA jangka pendek dan jangka panjang.

Beberapa aturan penilaian utama APO:

  1. Ketika APO memakai 0 untuk melihat sinyal
  2. Ketika APO melewati 0 untuk sinyal bearish
  3. APO menyatakan positif saat ini dalam kondisi positif
  4. APO negatif menunjukkan saat ini dalam kondisi penurunan

Berdasarkan nilai real-time APO untuk menilai kondisi kosong pasar dan waktu masuk.

Analisis Keunggulan

Strategi pergerakan harga EMA ganda memiliki beberapa keuntungan utama:

  1. Menggunakan indeks moving averages, dapat secara efektif meluruskan data harga, mengurangi dampak noise
  2. Indikator APO menggabungkan dua EMA untuk menilai tren harga dan kekuatan pasar secara bersamaan
  3. Sinyal-sinyal strategi yang sederhana, jelas, dan mudah untuk menilai dan menerapkan
  4. Siklus EMA yang dapat disesuaikan untuk varietas dan gaya perdagangan yang berbeda
  5. Sinyal reverse, untuk reversal dan shorting

Analisis risiko

Strategi pergerakan harga dua EMA juga memiliki beberapa risiko, terutama yang ditunjukkan oleh:

  1. EMA sendiri mengalami keterlambatan dan tidak dapat menangkap titik-titik perubahan harga tepat waktu.
  2. Parameter default mungkin tidak cocok untuk semua varietas dan perlu dioptimalkan
  3. Sinyal sering, mudah untuk menghasilkan sinyal palsu
  4. Tidak dapat menentukan posisi stop loss dan stop stop setelah masuk
  5. Ada beberapa penundaan, mungkin kehilangan waktu terbaik untuk masuk

Risiko ini dapat diatasi dan dikurangi dengan menghentikan kerugian secara wajar, mengurangi kerugian tunggal, mengoptimalkan parameter, menyesuaikan dengan siklus yang berbeda, dan, dalam kombinasi dengan indikator lain, memfilter sinyal, meningkatkan stabilitas strategi.

Arah optimasi

Strategi pergerakan harga EMA ganda dapat dioptimalkan dari beberapa arah:

  1. Mengoptimalkan parameter siklus EMA, masing-masing tes panjang kombinasi EMA 5 dan 60 untuk menemukan parameter optimal

  2. Tambahkan MA, KDJ, MACD dan lain-lain untuk mengatur kondisi filter dan menghindari sinyal palsu

  3. Menggunakan indikator seperti Brin Belt, KD dan lain-lain untuk menentukan posisi stop loss yang wajar

  4. Menggunakan indikator seperti indeks tren untuk menilai tren harga dan menghindari perdagangan berlawanan arah

  5. Menambahkan indikator volume transaksi untuk memastikan sinyal terobosan yang didukung volume transaksi

  6. Menetapkan persyaratan untuk masuk kembali, menghindari transaksi yang sering, mengurangi jumlah transaksi

Meringkaskan

Secara keseluruhan, strategi swing harga dua EMA untuk menilai kondisi pasar yang kosong dengan menghitung perbedaan dua EMA, sinyal strategi sederhana dan jelas, praktis, dan memiliki beberapa kelemahan. Kita dapat mengoptimalkan dan meningkatkan stabilitas strategi dengan cara seperti pengoptimalan parameter, penambahan kondisi filter, dan pengaturan stop loss. Strategi ini mudah digunakan, dan ada banyak ruang untuk pengembangan.

Kode Sumber Strategi
/*backtest
start: 2023-02-19 00:00:00
end: 2024-02-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 30/05/2017
// The Absolute Price Oscillator displays the difference between two exponential 
// moving averages of a security's price and is expressed as an absolute value.
// How this indicator works
//    APO crossing above zero is considered bullish, while crossing below zero is bearish.
//    A positive indicator value indicates an upward movement, while negative readings 
//      signal a downward trend.
//    Divergences form when a new high or low in price is not confirmed by the Absolute Price 
//      Oscillator (APO). A bullish divergence forms when price make a lower low, but the APO 
//      forms a higher low. This indicates less downward momentum that could foreshadow a bullish 
//      reversal. A bearish divergence forms when price makes a higher high, but the APO forms a 
//      lower high. This shows less upward momentum that could foreshadow a bearish reversal.
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Absolute Price Oscillator (APO) Backtest", shorttitle="APO")
LengthShortEMA = input(10, minval=1)
LengthLongEMA = input(20, minval=1)
reverse = input(false, title="Trade reverse")
hline(0, color=gray, linestyle=line)
xPrice = close
xShortEMA = ema(xPrice, LengthShortEMA)
xLongEMA = ema(xPrice, LengthLongEMA)
xAPO = xShortEMA - xLongEMA
pos = iff(xAPO > 0, 1,
       iff(xAPO < 0, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(xAPO, color=blue, title="APO")