Strategi ini adalah strategi perdagangan saham adaptif berdasarkan penunjuk momentum. Ia mengintegrasikan Bollinger Bands, Saluran Keltner dan penunjuk tekanan harga untuk mencapai penilaian trend, pengenalan titik terobosan dan keluar stop-loss untuk perdagangan automatik.
Inti strategi ini adalah untuk membina saluran harga melalui Bollinger Bands dan Keltner Channels dan mengenal pasti isyarat perdagangan apabila harga memecahkan saluran. Ia akan mengambil kedudukan panjang apabila harga memecahkan saluran dan mengambil kedudukan pendek apabila harga memecahkan saluran. Di samping itu, apabila harga ditekan di saluran, strategi akan menentukan arah operasi berdasarkan nilai positif dan negatif penunjuk penekan harga.
Secara khusus, Bollinger Bands mengira penyimpangan standard harga untuk merangka rel atas dan bawah; Saluran Keltner merangka rel atas dan bawah berdasarkan julat turun naik harga purata ± purata. Apabila penggabungan saluran berlaku di antara kedua-duanya, ia dianggap bahawa pasaran memasuki penyatuan sambil menunggu pecah seterusnya. Indikator pemampatan harga mencerminkan sama ada harga dimampatkan di antara kedua-dua saluran. Strategi menentukan arah pasaran berdasarkan nilai positif dan negatif penunjuk pemampatan.
Ringkasnya, strategi ini mengintegrasikan pelbagai penunjuk untuk menilai pergerakan harga dan membentuk logika panjang dan pendek yang jelas, yang dapat menapis pecah palsu dengan berkesan dan mengenal pasti peluang perdagangan yang berkemungkinan tinggi.
Mengintegrasikan beberapa penunjuk dengan keupayaan penilaian yang kuat.
Squeeze perbezaan penunjuk untuk menentukan, mengurangkan pecah palsu. perbezaan penunjuk berfungsi sebagai keadaan tambahan untuk mengelakkan perdagangan yang tidak perlu.
Saluran stop loss adaptif, menguruskan risiko dengan berkesan. Saluran berfungsi sebagai kedudukan stop-loss, yang boleh menyesuaikan diri secara automatik berdasarkan turun naik pasaran untuk mengurangkan kerugian.
Tetapan parameter yang mudah, sesuai untuk automasi. Dengan hanya beberapa parameter utama, mudah untuk menguji, mengoptimumkan dan mengintegrasikan ke dalam sistem perdagangan automatik.
Pertukaran panjang-pendek yang kerap apabila pasaran turun naik secara mendadak, yang membawa kepada peningkatan jumlah dagangan.
Parameter penunjuk yang tidak betul mungkin kehilangan peluang perdagangan yang baik.
Hanya terpakai kepada saham dengan arah yang jelas, tidak sesuai untuk pasaran yang sangat tidak menentu.
Meningkatkan modul kawalan kedudukan untuk mengoptimumkan kecekapan penggunaan modal.
Meningkatkan model pembelajaran mesin untuk menyesuaikan parameter penunjuk secara dinamik, membolehkan penunjuk menyesuaikan diri secara automatik dengan kitaran yang berbeza dan stok yang berbeza.
Meningkatkan strategi stop loss dengan memperkenalkan lebih banyak penunjuk tambahan untuk menentukan masa stop loss.
Strategi ini mengintegrasikan Bollinger Bands, Saluran Keltner dan penunjuk tekanan harga untuk membentuk logika yang jelas untuk sistem penghakiman dan kawalan risiko. Ia menggabungkan penilaian trend dan operasi pecah, boleh menyesuaikan diri dengan keadaan pasaran secara automatik dan mengenal pasti peluang perdagangan kebarangkalian tinggi. Dengan pengoptimuman parameter lebih lanjut dan penambahbaikan keadaan tambahan, strategi ini boleh diperkukuhkan lagi menjadi alat penting untuk perdagangan kuantitatif.
/*backtest start: 2022-12-29 00:00:00 end: 2024-01-04 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © juliopetronilo //@version=4 strategy("DMI/ADX/Squeeze Robot", shorttitle="DMI/ADX/SQZ", overlay=true) // Squeeze Momentum Indicator length = input(20, title="BB Length") mult = input(2.0, title="BB MultFactor") lengthKC = input(20, title="KC Length") multKC = input(1.5, title="KC MultFactor") useTrueRange = input(true, title="Use TrueRange (KC)") source = close basis = sma(source, length) dev = multKC * stdev(source, length) upperBB = basis + dev lowerBB = basis - dev ma = sma(source, lengthKC) rangeKC = useTrueRange ? tr : (high - low) rangema = sma(rangeKC, lengthKC) upperKC = ma + rangema * multKC lowerKC = ma - rangema * multKC sqzOn = (lowerBB > lowerKC) and (upperBB < upperKC) sqzOff = (lowerBB < lowerKC) and (upperBB > upperKC) noSqz = not (sqzOn or sqzOff) val = linreg(source - avg(avg(highest(high, lengthKC), lowest(low, lengthKC)), sma(close, lengthKC)), lengthKC, 0) // DMI/ADX Plot adxlen = input(14, title="ADX Smoothing") dilen = input(14, title="DI Length") keyLevel = input(23, title="Key Level for ADX") dirmov(len) => up = change(high) down = -change(low) truerange = rma(tr, len) plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, len) / truerange) minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, len) / truerange) [plus, minus] adx(dilen, adxlen) => [plus, minus] = dirmov(dilen) sum = plus + minus adx_val = abs(plus - minus) / (sum == 0 ? 1 : sum) * 100 [adx_val, plus, minus] [sig, up, down] = adx(dilen, adxlen) // Estrategia de Trading strategy.entry("Buy", strategy.long, when=sqzOn and crossover(up, down) and crossover(val, 0)) strategy.entry("Sell", strategy.short, when=sqzOn and crossunder(up, down) and crossunder(val, 0)) strategy.close("Buy", when=sqzOff) strategy.close("Sell", when=sqzOff) // Plot de los indicadores plot(val, color=color.blue, style=plot.style_histogram, linewidth=4) plot(0, color=noSqz ? color.blue : sqzOn ? color.black : color.rgb(236, 238, 247), style=plot.style_cross, linewidth=2) plot(up, color=color.blue, title="+DI") plot(down, color=color.gray, title="-DI") plot(keyLevel, color=color.white, title="Key Level")