
Strategi persilangan garis K standard deviasi pelbagai tempoh masa adalah strategi pengesanan trend yang tipikal. Strategi ini membina pelbagai set garis K dan D dengan mengira nilai standard deviasi dalam tempoh masa yang berbeza (seperti garis matahari, garis pusingan, garis bulan, dan lain-lain), kemudian mengambil rata-rata garis ini untuk membina garis rata-rata.
Logik utama strategi ini adalah untuk mengira standard deviasi untuk beberapa tempoh masa, dan kemudian rata-rata untuk membina isyarat dagangan.
Pertama, strategi untukstoch()Fungsi ini mengira nilai standard deviasi K di bawah parameter yang berbeza, di mana 5 set nilai K dihitung secara keseluruhan, yang sesuai dengan tempoh masa adalah tahap garis matahari, garis pusingan, dan garis bulan.
smoothK = input(55)
SMAsmoothK = input(13)
k = sma(stoch(price, high, low, smoothK), SMAsmoothK)
smoothK1 = input(89)
SMAsmoothK1 = input(8)
k1 = sma(stoch(price, high, low, smoothK1), SMAsmoothK1)
...
smoothK4 = input(377)
SMAsmoothK4 = input(2)
k4 = sma(stoch(price, high, low, smoothK4), SMAsmoothK4)
Kemudian, D baris dikira dengan parameter yang berbeza:
smoothD = input(34)
d = sma(k, smoothD)
...
smoothD4 = input(233)
d4 = sma(k4, smoothD4)
Kemudian, kira rata-rata setiap kumpulan K dan D untuk membina Kavg dan Davg:
Kavg = avg(k,k1,k2,k3,k4)
Davg = avg(d,d1,d2,d3,d4)
Akhirnya, buat lebih banyak apabila anda memakai tali pendek dan kosong apabila anda memakai tali pendek:
long = crossover(Kavg, Davg)
short = crossunder(Kavg, Davg)
Dengan menggabungkan garis purata standard deviasi dari beberapa tempoh masa, bunyi pasaran dalam tempoh masa yang lebih besar dapat dikesan dan arah trend utama dapat dikunci.
Penyelesaian:
Menambah syarat penapisan untuk mengelakkan penipuan palsu jangka pendek
Menggunakan tetapan kitaran adaptasi untuk menyesuaikan parameter kitaran mengikut tahap turun naik pasaran
Tetapkan Hentian Bergerak untuk Hentikan Hentian pada Waktu yang Tepat, dan Hindari Hentian Hilang pada Waktu yang Tepat
Optimumkan parameter kitaran rata-rata untuk mencari titik keseimbangan yang optimum
Menggabungkan lebih banyak isyarat indikator untuk meningkatkan kestabilan strategi
Strategi ini boleh dioptimumkan dengan cara berikut:
Memperkenalkan isyarat indikator lain dalam kombinasi, seperti memperkenalkan MACD, Bollinger Bands dan sebagainya, dapat meningkatkan kualiti isyarat
Menambah penapis trend, seperti memperkenalkan arah garis rata-rata SMA, indikator seperti ADX untuk menilai trend, dan mengelakkan perdagangan berlawanan arah
Menggunakan tetapan kitaran adaptasi untuk menyesuaikan parameter kitaran secara dinamik mengikut tahap turun naik pasaran
Tambah strategi berhenti bergerak, set titik berhenti mengikut parameter strategi, berhenti tepat pada masanya
Optimumkan parameter kitaran purata garisan laju dan garisan perlahan untuk mencari kombinasi parameter yang optimum
Menambah syarat penapisan terbuka untuk mengelakkan isyarat yang salah kaprah oleh bunyi jangka pendek
Cuba strategi masuk breakout, buka kedudukan selepas menembusi garis purata
Uji strategi keluar yang berbeza, seperti Keluar Chandelier, Optimumkan Stop Loss
Strategi persilangan garis K standard deviasi jangka masa berbilang menggabungkan kemampuan trend pengesanan indikator standard deviasi dan kestabilan strategi rata-rata. Dengan mengira nilai rata-rata garis K dan garis D standard deviasi jangka masa berbilang, membina isyarat perdagangan, anda dapat memanfaatkan kekuatan ramalan indikator standard deviasi pada skala masa yang berbeza, menapis kebisingan pasaran, menangkap arah trend utama.
/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-23 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy(title="Slow Stochastic Multi K&D Average Crossover Strategy", overlay=false, pyramiding=0, calc_on_order_fills=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, currency="USD", default_qty_value=100)
price = input(close)
///////////////////////////////
smoothK = input(55)
SMAsmoothK = input(13)
k = sma(stoch(price, high, low, smoothK), SMAsmoothK)
smoothD = input(34)
d = sma(k, smoothD)
///////////////////////////
smoothK1 = input(89)
SMAsmoothK1 = input(8)
k1 = sma(stoch(price, high, low, smoothK1), SMAsmoothK1)
smoothD1 = input(55)
d1 = sma(k1, smoothD1)
//////////////////////////////////////
smoothK2 = input(144)
SMAsmoothK2 = input(5)
k2 = sma(stoch(price, high, low, smoothK2), SMAsmoothK2)
smoothD2 = input(89)
d2 = sma(k2, smoothD2)
/////////////////////////////////////
smoothK3 = input(233)
SMAsmoothK3 = input(3)
k3 = sma(stoch(price, high, low, smoothK3), SMAsmoothK3)
smoothD3 = input(144)
d3 = sma(k3, smoothD3)
////////////////////////////////////////////////
smoothK4 = input(377)
SMAsmoothK4 = input(2)
k4 = sma(stoch(price, high, low, smoothK4), SMAsmoothK4)
smoothD4 = input(233)
d4 = sma(k4, smoothD4)
/////////////////////////////////////////////////
Kavg = avg(k,k1,k2,k3,k4, k4)
plot(Kavg, color=green)
Davg = avg(d,d1,d2,d3,d4, d4)
plot(Davg, color=red)
///////////////////////////////////////
hline(50, color=gray)
long = crossover(Kavg, Davg)// and d < 50
short = crossunder(Kavg, Davg)// and d > 50
last_long = long ? time : nz(last_long[1])
last_short = short ? time : nz(last_short[1])
long_signal = crossover(last_long, last_short)
short_signal = crossover(last_short, last_long)
strategy.entry("Long", strategy.long, when=long_signal)
strategy.entry("Short", strategy.short, when=short_signal)
//len1 = input(3)
//closelong = d[1] < k[len1]
//closeshort = d[1] > k[len1]
//strategy.close("Long", when=closelong)
//strategy.close("Short", when=closeshort)