Perbezaan purata bergerak Zero Cross Strategy

Penulis:ChaoZhang, Tarikh: 2024-01-26 15:45:03
Tag:

img

Ringkasan

Prinsip Strategi

  1. Gabungkan nilai numerik perbezaan untuk membandingkan penurunan maksimum pada minggu lalu untuk menjana isyarat perdagangan

Analisis Kelebihan

  1. Menggunakan sistem purata bergerak berganda dapat menapis kejayaan palsu dengan berkesan
  2. Perbandingan berangka untuk menilai keadaan oversold dan overbought, mengelakkan mengejar tinggi dan membunuh rendah

Analisis Risiko

  1. Strategi purata bergerak berganda terdedah kepada kesan whipsaw
  2. Perlu memberi perhatian kepada masalah kekerapan perdagangan yang berlebihan
  3. Tetapan parameter purata bergerak yang munasabah adalah penting

Arahan pengoptimuman

  1. Sesuaikan parameter tempoh purata bergerak untuk menyesuaikan diri dengan kitaran yang berbeza
  2. Tingkatkan penunjuk kelantangan untuk menapis isyarat terobosan palsu
  3. Gabungkan penunjuk stokastik untuk mengelakkan keadaan terlalu banyak dijual dan terlalu banyak dibeli

Ringkasan

Strategi ini mengintegrasikan kaedah perbezaan purata bergerak dan sistem persilangan paksi sifar untuk meningkatkan ketepatan pengesanan titik beli dan jual. Walau bagaimanapun, pengoptimuman lebih lanjut tetapan parameter dan kombinasi dengan penunjuk lain untuk menapis isyarat masih diperlukan. Secara umum, strategi penunjuk mudah ini mempunyai keberkesanan yang cukup dan boleh digunakan sebagai strategi asas untuk perdagangan langsung.


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

//@version=4
strategy(title = "Estratégia diferença menor preço de 8")

// Configuração da Média Móvel
emaPeriod = 8

ema= ema(close, emaPeriod)
ema1= ema(close[1], emaPeriod)
lowestEMA = lowest(ema, 8)

// Calcula a diferença entre o preço e a média móvel
diff = close - ema
diff1 = close[1] - ema1
diffLow = ema - lowestEMA

//Condições
diffZero = diff < 0
diffUnder = diff < diffLow
diffUm = diff > 0
Low0 = diffLow == 0




// Sinais de entrada
buy_signal = diffUnder and crossover(diff, diff1) 
sell_signal = diffUm and diffUnder and crossunder(diff, diff1)

// Executa as operações de compra/venda
if buy_signal
    strategy.entry("Buy", strategy.long)
if sell_signal
    strategy.exit("Buy")

// Plota as linhas
plot(0, title="Linha Zero", color=color.gray)
plot(diff, title="Diferença", color=color.blue, linewidth=2)

plot(diffLow, title="Diferença", color=color.red, linewidth=2)


Lebih lanjut