
Strategi ini menggunakan True Range dan Weighted Moving Average (WMA) untuk membangun indikator lintas periode untuk menilai tren. Pada saat yang sama, ia memiliki beberapa posisi yang terakumulasi dengan mekanisme kenaikan posisi piramida, serta beberapa mekanisme stop loss, yang bertujuan untuk mengejar keuntungan yang stabil.
Strategi ini pertama-tama menghitung gelombang naik (sub) dan turun (baja), kemudian menghitung WMA dari siklus garis cepat (corto) dan siklus garis lambat (largo) masing-masing. Perbedaan garis cepat (slow) sekali lagi dihitung melalui WMA untuk indikator (ind). Ketika indikator melewati 0 menghasilkan sinyal beli, dan ketika melewati 0 menghasilkan sinyal jual.
Setelah masuk ke pasar, strategi menyiapkan 5 posisi, sesuai dengan persamaan ((dua kali lipat) cara akumulasi untuk mencapai posisi piramida. Pada saat yang sama, pengaturan mekanisme stop loss, kemudian ketika membuka posisi harus menilai apakah float saat ini di bawah garis stop loss, sehingga mengendalikan risiko.
Strategi ini mengintegrasikan mekanisme seperti penilaian jangka panjang, penambahan posisi piramida, dan multiple stop loss, yang dapat secara efektif mengendalikan risiko dan mengejar keuntungan yang stabil.
Penghakiman lintas periode membangun sistem penghakiman tren melalui kombinasi garis cepat dan lambat, yang dapat secara efektif menyaring kebisingan pasar dan mengidentifikasi titik-titik perubahan tren. Penarikan piramida dapat menghasilkan lebih banyak keuntungan pada tahap awal tren, dan mekanisme stop loss ganda dapat secara efektif mengendalikan kerugian tunggal.
Risiko utama dari strategi ini adalah kemungkinan terjadinya peristiwa yang tidak terduga yang menyebabkan pergeseran cepat dan memicu pemotongan kerugian. Selain itu, pengaturan parameter yang tidak tepat dapat mempengaruhi stabilitas strategi.
Anda dapat menanggapi risiko berbaliknya pasar dengan meredakan garis penghentian yang tepat. Pengaturan parameter optimasi, penyesuaian parameter siklus, dan jumlah posisi dapat meningkatkan stabilitas strategi.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Menambahkan penilaian indikator statistik, yang dikombinasikan dengan parameter koreksi indikator seperti volatilitas, volume transaksi, dan lain-lain, membuat strategi lebih adaptif.
Meningkatkan penilaian model pembelajaran mesin, menggunakan model pembelajaran mendalam seperti LSTM untuk penilaian tambahan, meningkatkan akurasi strategi.
Optimalkan mekanisme manajemen posisi, pertimbangkan untuk menyesuaikan kenaikan posisi dengan fluktuasi, sehingga pertumbuhan posisi lebih masuk akal.
Menggunakan Arbitrage Futures untuk mengontrol risiko lebih lanjut dengan menggunakan model Futures Hedging.
Secara keseluruhan, strategi ini adalah strategi tren lintas siklus yang dibangun berdasarkan indikator gelombang riil, dengan penambahan piramida dan mekanisme stop loss ganda, yang dapat mengontrol risiko secara efektif, mengejar keuntungan yang stabil, dan merupakan strategi perdagangan kuantitatif yang sangat praktis. Namun, tetap perlu memperhatikan masalah pembalikan tren dan pengoptimalan parameter, dapat dioptimalkan lebih lanjut dari aspek statistik, pembelajaran mesin, dll.
/*backtest
start: 2023-01-10 00:00:00
end: 2024-01-16 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/
// © MaclenMtz
//@version=5
strategy("[MACLEN] Rangos", shorttitle="Rangos [https://t.me/Bitcoin_Maclen]", overlay=false )
//------WINDOW----------
i_startTime = input(defval = timestamp("01 Jan 2022 00:00 -0700"), title = "Start Time", group = "Backtest Window")
i_endTime = input(defval = timestamp("31 Dec 2025 00:00 -0700"), title = "End Time")
window = true
//-----------------------------
sube = close>close[1] ? ta.tr : 0
baja = close<close[1] ? ta.tr : 0
corto = input(10)
largo = input(30)
suavizado = input(10)
fastDiff = ta.wma(sube, corto) - ta.wma(baja,corto)
slowDiff = ta.wma(sube, largo) - ta.wma(baja, largo)
ind = ta.wma(fastDiff - slowDiff, suavizado)
iColor = ind>0 ? color.green : ind<0 ? color.red : color.black
plot(ind, color=iColor)
plot(0, color=color.white)
long = ind[1]<ind and ind[2]<ind[1] and ind<0
short = ind[1]>ind and ind[2]>ind[1] and ind>0
plotshape(long and not long[1], style = shape.xcross, color=color.green, location=location.bottom, size=size.tiny)
plotshape(short and not short[1], style = shape.xcross, color=color.red, location=location.top, size=size.tiny)
//Contratos
contrato1 = input(50000)/(16*close)
c1 = contrato1
c2 = contrato1
c3 = contrato1*2
c4 = contrato1*4
c5 = contrato1*8
//cap_enopentrade = strategy.opentrades == 1 ? c1: strategy.opentrades == 2 ? c1+c2: strategy.opentrades == 3 ? c1+c2+c3: strategy.opentrades == 4 ? c1+c2+c3+c4: strategy.opentrades == 5 ? c1+c2+c3+c4+c5 : 0
openprofit_porc = math.round((close-strategy.position_avg_price)/strategy.position_avg_price * 100,2)
porc_tp = input.float(6.5)
safe = input(-6)
//----------------Strategy---------------------------
if strategy.opentrades == 0
strategy.entry('BUY1', strategy.long, qty=c1, when = long and not long[1] and window)
if strategy.opentrades == 1
strategy.entry('BUY2', strategy.long, qty=c2, when = long and not long[1] and window and openprofit_porc<safe)
if strategy.opentrades == 2
strategy.entry('BUY3', strategy.long, qty=c3, when = long and not long[1] and window and openprofit_porc<safe)
if strategy.opentrades == 3
strategy.entry('BUY4', strategy.long, qty=c4, when = long and not long[1] and window and openprofit_porc<safe)
if strategy.opentrades == 4
strategy.entry('BUY5', strategy.long, qty=c5, when = long and not long[1] and window and openprofit_porc<safe)
min_prof = strategy.openprofit>0
strategy.close_all(when=short and min_prof)
plot(openprofit_porc)