Lihatlah satu idea perdagangan yang tidak boleh dipercayai untuk strategi perdagangan kawasan K-line, di sini kita meneroka idea ini dan cuba mewujudkan skrip ini.
Strategi kawasan garis K adalah strategi dagangan berdasarkan hubungan kawasan antara garis K harga dan garis purata. Idea utamanya adalah untuk meramalkan kemungkinan pergerakan harga saham dengan menganalisis ketinggian dan perubahan trend harga, serta perubahan sentimen jual beli, dan dengan itu menentukan masa untuk membuka dan keluar. Strategi ini bergantung pada kawasan antara garis K dan garis purata, serta nilai penunjuk KDJ, untuk menghasilkan isyarat dagangan berbilang dan kosong.
Kawasan garis K adalah kawasan ruang antara garis K harga dan garis rata, yang dikira dengan mengurangkan nilai rata-rata harga penutupan untuk setiap Bar, dan kemudian mencari jumlah. Kawasan K baris akan menjadi lebih besar apabila ketinggian trend kenaikan harga adalah besar, dengan masa yang lama, dan kawasan K baris akan menjadi lebih kecil apabila pasaran goyah atau reversal selepas goyah. Menurut prinsip pemangsa yang sangat mesti memberi maklum balas, semakin besar trend menaik, semakin lama, semakin besar kawasan K baris yang sepadan, semakin besar kebarangkalian pembalikan, lebih lama, seperti moncong lompatan, lebih besar daya tahan. Oleh itu, menetapkan ambang kawasan K baris, apabila harga mencapai ambang, lebih mungkin trend akan berakhir dan kemungkinan pembalikan akan lebih besar.
Untuk mengesahkan lebih lanjut bahawa trend akan berbalik, petunjuk KDJ diperkenalkan, yang digunakan untuk menilai perubahan sentimen membeli dan menjual. Seting ambang strategi ini dan nilai petunjuk KDJ boleh disesuaikan dengan keadaan dan keperluan tertentu untuk meningkatkan ketepatan strategi.
Kelebihan strategi kawasan K-Line adalah ia menggabungkan ketinggian dan perubahan trend harga, dan pemindahan sentimen jual beli, untuk menyediakan strategi perdagangan kuantitatif yang agak lengkap. Kelebihannya termasuk:
Walaupun strategi K-Line mempunyai kelebihan, ia juga mempunyai beberapa risiko, termasuk:
Untuk mengoptimumkan strategi K-Line Area, anda boleh mempertimbangkan perkara berikut:
Mengira kawasan garis K
Tanda-tanda pembukaan berganda:
(1) Kerosakan yang berlaku apabila kerosakan pada kerosakan pada kerosakan pada kerosakan pada kerosakan pada kerosakan pada kerosakan pada kerosakan pada kerosakan pada kerosakan.
(2) Nilai penunjuk KDJ lebih daripada 80
Isyarat untuk membuka dagangan kosong:
(1) Tanda-tanda peningkatan trend yang berlaku sebelum ketinggian kerucut kawasan garis K mencapai paras terhad.
(2) Nilai penunjuk KDJ kurang daripada 20
Multi-head/Blank-head: ATR mengesan stop loss dan stop loss
Pelaksanaan kod
// 参数
var maPeriod = 30
var threshold = 50000
var amount = 0.1
// 全局变量
let c = KLineChart({})
let openPrice = 0
let tradeState = "NULL" // NULL BUY SELL
function calculateKLineArea(r, ma) {
var lastCrossUpIndex = null
var lastCrossDownIndex = null
for (var i = r.length - 1 ; i >= 0 ; i--) {
if (ma[i] !== null && r[i].Open < ma[i] && r[i].Close > ma[i]) {
lastCrossUpIndex = i
break
} else if (ma[i] !== null && r[i].Open > ma[i] && r[i].Close < ma[i]) {
lastCrossDownIndex = i
break
}
if (i >= 1 && ma[i] !== null && ma[i - 1] !== null && r[i - 1].Close < ma[i - 1] && r[i].Close > ma[i]) {
lastCrossUpIndex = i
break
} else if (i >= 1 && ma[i] !== null && ma[i - 1] !== null && r[i - 1].Close > ma[i - 1] && r[i].Close < ma[i]) {
lastCrossDownIndex = i
break
}
}
var area = 0
if (lastCrossDownIndex !== null) {
for (var i = r.length - 1 ; i >= lastCrossDownIndex ; i--) {
area -= Math.abs(r[i].Close - ma[i])
}
} else if (lastCrossUpIndex !== null) {
for (var i = r.length - 1 ; i >= lastCrossUpIndex ; i--) {
area += Math.abs(r[i].Close - ma[i])
}
}
return [area, lastCrossUpIndex, lastCrossDownIndex]
}
function onTick() {
var r = _C(exchange.GetRecords)
if (r.length < maPeriod) {
LogStatus(_D(), "K线数量不足")
return
}
var ma = TA.MA(r, maPeriod)
var atr = TA.ATR(r)
var kdj = TA.KDJ(r)
var lineK = kdj[0]
var lineD = kdj[1]
var lineJ = kdj[2]
var areaInfo = calculateKLineArea(r, ma)
var area = _N(areaInfo[0], 0)
var lastCrossUpIndex = areaInfo[1]
var lastCrossDownIndex = areaInfo[2]
r.forEach(function(bar, index) {
c.begin(bar)
c.plotcandle(bar.Open, bar.High, bar.Low, bar.Close, {overlay: true})
let maLine = c.plot(ma[index], "ma", {overlay: true})
let close = c.plot(bar.Close, 'close', {overlay: true})
c.fill(maLine, close, {color: bar.Close > ma[index] ? 'rgba(255, 0, 0, 0.1)' : 'rgba(0, 255, 0, 0.1)'})
if (lastCrossUpIndex !== null) {
c.plotchar(bar.Time, {char: '$:' + area, overlay: true})
} else if (lastCrossDownIndex !== null) {
c.plotchar(bar.Time, {char: '$:' + area, overlay: true})
}
c.plot(lineK[index], "K")
c.plot(lineD[index], "D")
c.plot(lineJ[index], "J")
c.close()
})
if (tradeState == "NULL" && area < -threshold && lineK[lineK.length - 1] > 70) {
// long
let tradeInfo = $.Buy(amount)
if (tradeInfo) {
openPrice = tradeInfo.price
tradeState = "BUY"
}
} else if (tradeState == "NULL" && area > threshold && lineK[lineK.length - 1] < 30) {
// short
let tradeInfo = $.Sell(amount)
if (tradeInfo) {
openPrice = tradeInfo.price
tradeState = "SELL"
}
}
let stopBase = tradeState == "BUY" ? Math.max(openPrice, r[r.length - 2].Close) : Math.min(openPrice, r[r.length - 2].Close)
if (tradeState == "BUY" && r[r.length - 1].Close < stopBase - atr[atr.length - 2]) {
// cover long
let tradeInfo = $.Sell(amount)
if (tradeInfo) {
tradeState = "NULL"
openPrice = 0
}
} else if (tradeState == "SELL" && r[r.length - 1].Close > stopBase + atr[atr.length - 2]) {
// cover short
let tradeInfo = $.Buy(amount)
if (tradeInfo) {
tradeState = "NULL"
openPrice = 0
}
}
LogStatus(_D(), "area:", area, ", lineK[lineK.length - 2]:", lineK[lineK.length - 2])
}
function main() {
if (exchange.GetName().includes("_Futures")) {
throw "not support Futures"
}
while (true) {
onTick()
Sleep(1000)
}
}
Di sini, kita akan melihat bagaimana ia boleh membantu anda untuk mencapai matlamat anda.
Pertama, beberapa pembolehubah dan parameter global ditakrifkan, termasuk:
Parameter strategi
Variabel global
Fungsi pengiraan
Fungsi pusingan utama
Fungsi onTick: Ini adalah fungsi pelaksanaan dasar utama, berikut adalah operasi dalam fungsi:
a. Dapatkan data K-line terkini dan pastikan jumlah K-line tidak kurang daripada maPeriod, jika tidak, rakam status dan kembali;
b. Mengira ma dan ATR indikator atr, serta indikator KDJ.
c. Mengambil maklumat kawasan dari areaInfo, indeks K yang terakhir dilipat dan indeks K yang terakhir dilipat.
d. Menggambar garis K dan garis penunjuk menggunakan objek carta K-Line c, sambil mengisi warna yang berbeza mengikut hubungan harga dengan purata bergerak.
e. Masa pembelian dan penjualan berdasarkan syarat:
Jika tradeState adalah
Jika berada dalam keadaan beli, apabila harga adalah lebih rendah daripada harga penutupan pada hari dagangan yang lalu dikurangkan ATR pada hari sebelumnya, penutupan berlaku.
Jika keadaan dijual, apabila harga lebih tinggi daripada harga penutupan pada hari dagangan sebelumnya ditambah ATR pada hari sebelumnya, penutupan.
Fungsi utama: Ini adalah input pelaksanaan utama, memeriksa sama ada nama bursa mengandungi tag
Secara umum, strategi ini bergantung kepada carta K-line dan penunjuk teknikal untuk membuat keputusan jual beli, sementara strategi stop loss dan stop loss digunakan untuk menguruskan risiko. Sila ambil perhatian bahawa ini hanya satu contoh strategi, dan penggunaan sebenar memerlukan penyesuaian dan pengoptimuman mengikut keadaan pasaran dan keperluan khusus.
在FMZ.COM上使用JavaScript语言没有用多少行代码,很简单的就实现了这个模型。并且使用KLineChart函数很容易实现了K线面积的图形表示。策略设计用于加密货币现货市场,使用了「数字货币现货交易类库」模板,使用模板封装的函数下单,也是非常简单易用、易懂。
Jika anda memilih jangka masa pengembalian yang tidak disengajakan, walaupun tidak kehilangan wang tetapi juga tidak terus menjana keuntungan, masalah pengunduran diri masih besar.
Dengan strategi ini, kita belajar cara menggambar grafik, menunjukkan kawasan yang dikelilingi oleh garis K dan garis rata, menggambar penunjuk KDJ, dan lain-lain.
Strategi kawasan garis K adalah strategi dagangan berdasarkan lebar trend harga dan penunjuk KDJ yang membantu peniaga meramalkan pergerakan pasaran dengan menganalisis kawasan dan perubahan sentimen jual beli antara garis K dan garis purata. Walaupun terdapat risiko tertentu, dengan pengoptimuman dan penyesuaian berterusan, strategi ini boleh memberikan alat dagangan yang kuat untuk membantu peniaga menangani lebih baik turun naik pasaran. Yang penting, peniaga harus menyesuaikan parameter dan peraturan strategi dengan fleksibel mengikut keadaan dan keadaan pasaran tertentu untuk mencapai prestasi dagangan yang lebih baik.