Strategi Penembusan Harga Dagangan Kuantitatif


Tarikh penciptaan: 2023-12-22 12:42:15 Akhirnya diubah suai: 2023-12-22 12:42:15
Salin: 0 Bilangan klik: 599
1
fokus pada
1621
Pengikut

Strategi Penembusan Harga Dagangan Kuantitatif

Gambaran keseluruhan

Strategi ini adalah strategi perdagangan kuantitatif garis pendek berdasarkan purata bergerak sederhana (SMA), purata bergerak indeks (EMA), saluran Keltner, penunjuk MACD, penunjuk rawak (Stochastic). Strategi ini menggabungkan isyarat polygon dari saluran Keltner, penunjuk MACD, penunjuk Stochastic, untuk memasuki dan keluar perdagangan automatik, bergantung kepada cara harga menembusi SMA dan EMA.

Prinsip Strategi

Strategi ini menggunakan SMA 25 kitaran, EMA 200 kitaran untuk membina penunjuk purata bergerak ganda. Ia menghasilkan isyarat beli apabila harga menembusi purata bergerak ganda dari bawah ke atas; ia menghasilkan isyarat jual apabila harga menembusi purata bergerak ganda dari atas ke bawah.

Pada masa yang sama, strategi ini menggunakan 10 kitaran untuk membina saluran Keltner, dengan harga menembusi saluran atas dan bawah sebagai isyarat tambahan. Indikator MACD menghasilkan isyarat beli dan jual melalui garis cepat, garis perlahan dan bentuk tiang MACD. Indikator Stochastic melalui garis% K dan garis% D juga membentuk isyarat kosong.

Khususnya, apabila harga penutupan lebih tinggi daripada SMA dan EMA, dan berada di dalam saluran Keltner, corak tiang MACD adalah negatif, dan Stochastic% K bernilai di bawah 50, menghasilkan isyarat beli, buat lebih banyak; apabila harga penutupan lebih rendah daripada SMA dan EMA, dan berada di dalam saluran Keltner, corak tiang MACD adalah positif, dan Stochastic% K bernilai di atas 50, menghasilkan isyarat jual, buat kosong.

Kelebihan Strategik

  1. Penggunaan purata bergerak berganda yang digabungkan dengan penunjuk saluran dapat menyaring penembusan palsu pasaran dengan berkesan.
  2. Menggabungkan pelbagai isyarat petunjuk teknikal, dapat meningkatkan kebolehpercayaan isyarat.
  3. Peraturan isyarat pelbagai ruang jelas, pelaksanaan berprogrami tinggi.
  4. Strategi kuantitatif yang digunakan untuk transaksi yang sering berlaku dalam talian pendek.

Risiko dan pengoptimuman strategi

  1. Sebagai strategi perdagangan garis pendek, terdapat risiko frekuensi perdagangan yang terlalu tinggi.
  2. Tidak ada mekanisme penangguhan kerugian, dan terdapat risiko kerugian yang lebih besar.
  3. Anda boleh mempertimbangkan untuk memasukkan indikator kadar turun naik untuk mengoptimumkan keadaan untuk membuka dan menghentikan kedudukan.
  4. Boleh menguji kelebihan dan kekurangan parameter kitaran yang berbeza untuk mencari kombinasi parameter terbaik.

ringkaskan

Strategi ini mengintegrasikan empat petunjuk teknikal yang biasa digunakan iaitu purata bergerak, petunjuk saluran, petunjuk MACD dan petunjuk Stochastic. Ia adalah strategi perdagangan kuantitatif garis pendek yang tipikal. Ia menggunakan penilaian pelbagai petunjuk untuk meningkatkan ketepatan isyarat berbanding dengan satu petunjuk, dan ia patut diuji dan dioptimumkan lebih lanjut.

Kod sumber strategi
/*backtest
start: 2022-12-15 00:00:00
end: 2023-12-21 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/
// © exlux99

//@version=5
strategy(title="Scalping Trading System Crypto and Stocks", overlay=true)
src = input(low, title="Source")

//sma and ema
len = input.int(25, minval=1, title="Length SMA" , group="Moving Averages")
len2 = input.int(200, minval=1, title="Length EMA", group="Moving Averages")

out = ta.sma(src, len)
out2 = ta.ema(src, len2)


//keltner
lengthk = input.int(10, minval=1, title="Length Keltner Channel",group="Keltner")
mult = input(2.0, "Multiplier",group="Keltner")
BandsStyle = input.string("Average True Range", options = ["Average True Range", "True Range", "Range"], title="Bands Style",group="Keltner")
atrlength = input(14, "ATR Length",group="Keltner")

ma = ta.sma(src, lengthk)
rangema = BandsStyle == "True Range" ? ta.tr(true) : BandsStyle == "Average True Range" ? ta.atr(atrlength) : ta.rma(high - low, lengthk)
upper = ma + rangema * mult
lower = ma - rangema * mult

//stoch
periodK = input.int(10, title="%K Length", minval=1,group="Stochastic")
smoothK = input.int(1, title="%K Smoothing", minval=1,group="Stochastic")
periodD = input.int(1, title="%D Smoothing", minval=1,group="Stochastic")
k = ta.sma(ta.stoch(close, high, low, periodK), smoothK)
d = ta.sma(k, periodD)

//macd 1
fast_length = input(title="Fast Length MACD", defval=4,group="MACD Fast")
slow_length = input(title="Slow Length MACD", defval=34,group="MACD Fast")
signal_length = input.int(title="Signal Smoothing MACD",  minval = 1, maxval = 50, defval = 5,group="MACD Fast")
sma_source = input.string(title="Oscillator MA Type MACD",  defval="EMA", options=["SMA", "EMA"],group="MACD Fast")
sma_signal = input.string(title="Signal Line MA Type MACD", defval="EMA", options=["SMA", "EMA"],group="MACD Fast")

fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal




long= close > out and close < upper and close > lower and hist < 0 and k < 50 and close > out2 

short= close < out and close < upper and close > lower and hist > 0 and k > 50 and close < out2 

strategy.entry("long",strategy.long,when= long)

strategy.entry("short",strategy.short,when=short)