
Strategi ini menggunakan true range dan weighted moving average (WMA) untuk membina penunjuk lintas tempoh untuk membuat penilaian trend. Ia juga mempunyai mekanisme kenaikan kedudukan piramida yang terkumpul di beberapa kedudukan, serta beberapa mekanisme hentikan kerugian yang bertujuan untuk mengejar keuntungan yang stabil.
Strategi ini mula-mula mengira gelombang naik ((sub) dan turun ((baja), kemudian mengira WMA untuk kitaran garis cepat ((corto) dan kitaran garis perlahan ((largo) masing-masing. Perbezaan garis cepat dan perlahan sekali lagi dikira oleh WMA untuk penunjuk ((ind)). Apabila penunjuk melintasi 0 menghasilkan isyarat beli, apabila melintasi 0 menghasilkan isyarat jual.
Selepas masuk ke pasaran, strategi menyediakan 5 kedudukan, dengan cara penambahan piramida mengikut persamaan ((dua kali ganda) penjumlahan. Pada masa yang sama, mekanisme penangguhan telah ditetapkan, dan kemudian ketika membuka kedudukan, anda harus menilai sama ada kenaikan semasa berada di bawah garis penangguhan, dan dengan itu mengawal risiko.
Strategi ini mengintegrasikan mekanisme seperti pertimbangan jangka panjang, penambahan piramid, dan pelbagai halangan untuk mengawal risiko dengan berkesan dan mengejar keuntungan yang stabil.
Penghakiman jangka panjang Menubuhkan sistem penghakiman trend melalui kombinasi garis pantas dan perlahan, yang dapat menyaring bunyi pasaran dengan berkesan, mengenal pasti titik perubahan trend. Penempatan piramid dapat memperoleh lebih banyak keuntungan pada peringkat permulaan trend, dan mekanisme berhenti kerugian berganda dapat mengawal kerugian tunggal dengan berkesan.
Risiko utama strategi ini adalah kemungkinan berlaku kejadian yang tidak dijangka yang menyebabkan perubahan harga yang cepat dan mencetuskan penutupan kerugian. Selain itu, parameter yang tidak betul dapat menjejaskan kestabilan strategi.
Anda boleh menanggung risiko pembalikan pasaran dengan meluaskan garis berhenti anda dengan sewajarnya. Pengaturan parameter optimum, penyesuaian parameter kitaran, dan bilangan kedudukan dapat meningkatkan kestabilan strategi.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Menambah penghakiman indikator statistik, digabungkan dengan parameter pengubahsuaian indikator seperti kadar turun naik, jumlah urus niaga, untuk menjadikan strategi lebih sesuai.
Meningkatkan penilaian model pembelajaran mesin, menggunakan penilaian tambahan model pembelajaran mendalam seperti LSTM, meningkatkan ketepatan strategi.
Mengoptimumkan mekanisme pengurusan kedudukan, boleh mempertimbangkan untuk menyesuaikan kadar kenaikan kedudukan mengikut kadar fluktuasi, supaya pertumbuhan kedudukan lebih munasabah.
Gabungan dengan model sekuriti hadapan, risiko lebih terkawal dengan menggunakan penjimatan masa depan.
Secara keseluruhan, strategi ini adalah strategi trend rentas kitaran yang dibina berdasarkan indikator gelombang sebenar, dengan mekanisme penambahan simpanan piramid dan pelbagai stop loss, yang dapat mengawal risiko dengan berkesan, mengejar keuntungan yang stabil, dan merupakan strategi perdagangan kuantitatif yang sangat praktikal. Tetapi masih perlu memperhatikan isu pembalikan trend dan pengoptimuman parameter, yang dapat dioptimumkan lebih lanjut dari aspek statistik, pembelajaran mesin dan lain-lain.
/*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)