Strategi perdagangan kuantitatif berdasarkan harga penutupan K-line perbandingan panjang-pendek dan penapisan EMA


Tarikh penciptaan: 2023-12-27 14:38:28 Akhirnya diubah suai: 2023-12-27 14:38:28
Salin: 1 Bilangan klik: 755
1
fokus pada
1623
Pengikut

Strategi perdagangan kuantitatif berdasarkan harga penutupan K-line perbandingan panjang-pendek dan penapisan EMA

I. Gambaran Strategik

Strategi ini dinamakan strategi perdagangan kuantitatif yang berdasarkan pada perbandingan harga penutupan K-line yang kosong dengan penapis EMA. Strategi ini dibuat dengan mengutip jumlah K-line berbilang dan K-line kosong yang membentuk harga penutupan K-line dalam tempoh tertentu, digabungkan dengan penapis EMA, untuk menilai isyarat penutupan lebih banyak jika sesuai dengan tempoh masa perdagangan.

2. Prinsip Strategi

Logik utama strategi ini adalah untuk mengkaji jumlah garis K yang muncul dalam penutupan upCloseCount dan jumlah garis K yang ditutup pada penutupan downCloseCount dalam tempoh jangka pendek terakhir, jika jumlah penutupan upCloseCount lebih banyak, maka ia akan dianggap sebagai pasaran bertopeng, dan jika jumlah penutupan downCloseCount lebih banyak, maka ia akan dianggap sebagai pasaran kosong.

Logik penghakiman adalah:

Syarat pemicu isyarat berbilang kepala: inSession adalah true ((dalam tempoh masa perdagangan) dan upCloseCount > downCloseCount ((terdapat lebih banyak baris K penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penutupan penut

Syarat pemicu isyarat kosong: inSession adalah true dan downCloseCount > upCloseCount ((terhad jumlah baris K penutupan penurunan) dan close < ema ((harga penutupan lebih rendah daripada EMA) dan currentSignal tidak “short” ((tidak ada kedudukan semasa)

Ketiga, Analisis Keunggulan Strategi

  1. Mengambil keputusan mengenai trend harga dan psikologi pasaran melalui perbandingan antara harga penutupan K-baris dalam tempoh sejarah tertentu, dengan kesan trend mengikut
  2. Menapis trend harga dengan EMA untuk mengelakkan perdagangan yang salah dalam keadaan yang bergolak
  3. Tetapkan tempoh dagangan tertentu untuk mengelakkan dagangan dalam keadaan bising pada tempoh dagangan bukan utama
  4. Keseimbangan antara trend dan transaksi yang kerap

Analisis Risiko Strategi

  1. Dalam situasi yang disusun secara mendatar, harga penutupan yang lebih terbuka lebih mudah untuk disesatkan, menyebabkan kerugian yang tidak perlu
  2. Penetapan parameter EMA yang tidak betul juga boleh menyebabkan kesan penyaringan yang tidak baik
  3. Peraturan masa perdagangan yang tidak betul boleh menyebabkan banyak peluang perdagangan yang hilang atau perdagangan yang salah.
  4. Tidak dapat dikesan secara berkesan mengenai kes-kes yang berlaku di Gap

Kaedah pencegahan:

  1. Mengoptimumkan parameter EMA untuk mencari keseimbangan terbaik
  2. Optimumkan tempoh transaksi
  3. Kaedah kawalan kerugian tunggal yang digabungkan dengan strategi hentian kerugian

Lima, Strategi Untuk Mengoptimumkan

  1. Mengoptimumkan tempoh dagangan untuk mencari tempoh dagangan yang terbaik
  2. Pengoptimuman parameter untuk kitaran EMA dan kelancaran
  3. Menambah mekanisme penangguhan berasaskan ATR
  4. Menambah modul untuk mengesan kejadian yang tidak dijangka, mengelakkan risiko kesenjangan
  5. Pertimbangkan kombinasi dengan penunjuk lain untuk mencari penapis yang lebih baik
  6. Uji perbezaan prestasi antara varieti, menyesuaikan parameter mengikut perbezaan

VI

Strategi ini mengiktiraf isyarat trend pada masa perdagangan tertentu dengan mengkaji statistik harga penutupan K dalam tempoh sejarah tertentu, digabungkan dengan kesan penapisan indikator EMA. Ia mempunyai kesan trend pengesanan tertentu. Tetapi terdapat risiko perdagangan yang salah, yang perlu diperbaiki dengan pengoptimuman parameter, strategi hentikan kerugian, dan penapisan isyarat.

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

//@version=5
strategy("Up vs Down Close Candles Strategy with EMA and Session Time Frames", shorttitle="UvD Strat EMA Session", overlay=true)

// User input to define the lookback period, EMA period, and session strings for time frames
int lookback = input(20, title="Lookback Period")
int emaPeriod = input(50, title="EMA Period")
string session1 = input("0900-1200", title="Time Frame 1 Session")
string session2 = input("1300-1600", title="Time Frame 2 Session")

// Calculate the EMA
float ema = ta.ema(close, emaPeriod)

// State variable to track the current signal
var string currentSignal = na

// Counting up-close and down-close candles within the lookback period
int upCloseCount = 0
int downCloseCount = 0

if barstate.isnew
    upCloseCount := 0
    downCloseCount := 0
    for i = 0 to lookback - 1
        if close[i] > close[i + 1]
            upCloseCount += 1
        else if close[i] < close[i + 1]
            downCloseCount += 1

// Define the long (buy) and short (sell) conditions with EMA filter and session time frame
bool inSession = time(timeframe.period, session1) or time(timeframe.period, session2)
bool longCondition = inSession and upCloseCount > downCloseCount and close > ema and currentSignal != "long"
bool shortCondition = inSession and downCloseCount > upCloseCount and close < ema and currentSignal != "short"

// Enter or exit the market based on conditions
if longCondition
    currentSignal := "long"
    strategy.entry("Buy", strategy.long)

if shortCondition
    currentSignal := "short"
    strategy.entry("Sell", strategy.short)

// Exit logic for long and short positions
if currentSignal == "long" and strategy.position_size <= 0
    strategy.close("Sell")

if currentSignal == "short" and strategy.position_size >= 0
    strategy.close("Buy")

plot(ema, color=color.blue, title="EMA")