Strategi ini merupakan strategi untuk mengikuti tren dengan menghitung berbagai jenis rata-rata bergerak, sehingga dapat melakukan cross over dan cross over dengan garis ganda. Strategi ini juga memperkenalkan moving average ketiga sebagai penilaian tren untuk mengendalikan risiko.
Perhitungan dua garis rata-rata: MA1 dan MA2, masing-masing dapat memilih berbagai jenis seperti SMA, EMA, VWMA, dan panjangnya dapat disesuaikan.
Perhitungan persilangan antara MA1 dan MA2: melakukan over jika MA1 di atas MA2 dan bernegosiasi jika MA1 di bawah MA2
(Optional) Menghitung garis rata-rata ketiga MA3, panjangnya biasanya mengambil siklus yang lebih panjang, seperti 50 Di atas MA3 adalah head, di bawah adalah head kosong Hanya jika harga menembus MA3 untuk membuka posisi
Aturan di atas menggabungkan periode pengembalian untuk menghasilkan sinyal perdagangan strategi.
Tambahkan warna pada area kosong di bagian yang bersilang untuk membentuk bantuan visual.
Strategi ini menggabungkan pola tren dari pergerakan rata-rata dan crossover untuk melakukan lebih banyak shorting, dan juga memperkenalkan garis rata ketiga untuk pengendalian risiko, dengan penyesuaian parameter yang dapat beradaptasi secara fleksibel dengan siklus pasar yang berbeda.
Menggunakan dua garis sejajar untuk menentukan arah tren, dapat secara efektif melacak tren.
Mendukung kombinasi dari berbagai jenis rata-rata, dapat dioptimalkan untuk pasar yang berbeda siklus.
Menggunakan garis ketiga untuk pengendalian risiko dapat mengurangi kerugian yang tidak perlu.
Pencitraan cross-color meningkatkan pengalaman melihat transaksi.
Parameter dapat disesuaikan dan dapat dioptimalkan untuk siklus yang berbeda.
Aturan-aturan ini sederhana, jelas, dan mudah dipahami.
Strategi dua garis rata-rata cenderung menghasilkan kerugian pada situasi yang bergoyang dan situasi pembalikan tren. Risiko dapat dikurangi dengan mengoptimalkan parameter.
Garis rata ganda kadang-kadang menghasilkan sinyal yang salah atau overreaction. Periode garis rata dapat diperpanjang sesuai atau parameter optimasi.
Garis rata ketiga mungkin akan kehilangan kesempatan untuk momentum yang lebih kuat. Anda dapat menguji cara mempersingkat garis rata ketiga untuk mengurangi peluang keuntungan yang terlewatkan.
Tidak ada jaminan bahwa setiap transaksi akan menguntungkan.
Uji kombinasi dari berbagai jenis garis rata-rata dan berbagai parameter periodik untuk mencari pasangan parameter optimal.
Mengoptimalkan parameter periodik dari garis rata ketiga, menyeimbangkan kontrol risiko dan profit capture.
Bergabunglah dengan strategi stop loss untuk mengendalikan kerugian tunggal.
Anda dapat mempertimbangkan untuk menggunakan algoritma pembelajaran mesin untuk mencari parameter optimal menggunakan pelatihan data besar.
Filter dan verifikasi sinyal dalam kombinasi dengan indikator lain seperti KD, MACD, dll.
Ini adalah strategi tren yang sangat klasik dan praktis. Dengan cara terus-menerus menguji dan mengoptimalkan parameter, dengan cara yang tepat untuk memperkenalkan indikator lain atau pembelajaran mesin, strategi ini dapat terus meningkatkan kesesuaian dengan pasar, dan memiliki nilai nyata yang sangat kuat. Secara keseluruhan, strategi ini sederhana, praktis, dan mudah dioptimalkan, dan merupakan titik awal yang baik untuk perdagangan kuantitatif.
/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-12 22:00:00
period: 1m
basePeriod: 1m
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/
// © HAMIDBOX
//@version=4
strategy("Multi-X by HAMID-BOX", overlay=true)
maType(source , length, type) =>
type == "SMA" ? sma(source , length) :
type == "EMA" ? ema(source , length) :
type == "RMA" ? rma(source, length) :
type == "WMA" ? wma(source, length) :
type == "VWMA" ? vwma(source, length) :
na
////////////////////////////////////////////////////////////////////////////////
colorup = #11ff00
colordn = #e91e63
/////////////////////////// MOVING AVERAGE №1 INPUTS ///////////////////////////
ma1_show = input(title="MA №1", defval=true, type=input.bool, inline="ma1")
ma1type = input(title="", defval="EMA", options=["SMA","EMA","RMA","WMA","VWMA"], inline="ma1")
ma1src = input(title="", defval=close, type=input.source, inline="ma1")
ma1Len = input(title="", defval=9, type=input.integer, inline="ma1")
ma1col = input(colorup, "", type=input.color, inline="ma1")
ma1 = maType(ma1src, ma1Len, ma1type)
ma1p = plot(ma1_show ? ma1 : na, linewidth=1, color=color.new(ma1col , 50))
/////////////////////////// MOVING AVERAGE №2 INPUTS ///////////////////////////
ma2_show = input(title="MA №2", defval=true, type=input.bool, inline="ma2")
ma2type = input(title="", defval="SMA", options=["SMA","EMA","RMA","WMA","VWMA"], inline="ma2")
ma2src = input(title="", defval=close, type=input.source, inline="ma2")
ma2Len = input(title="", defval=21, type=input.integer, inline="ma2")
ma2col = input(colordn, "", type=input.color, inline="ma2")
ma2 = maType(ma2src, ma2Len, ma2type)
ma2p = plot(ma2_show ? ma2 : na, linewidth=1, color=color.new(ma2col , 50))
/////////////////////////// MOVING AVERAGE №3 INPUTS ///////////////////////////
read = input(title="For Safe Side = Read This >>>", defval=true, tooltip="If you want to play on the safe side, Check ON Moving Average № 3, MA №3 shows the major trend, its work as a Trend-Zone,\nRule: Do not open trades if the market is below MA № 3, WHY? because Trend is Bearish and it will make more Down, NOTE:: It is possible after adding MA № 3, it will give you a small profit. But the great advantage of that, it will reduce your loss and it will also increase your Profit Factor.\nAnd if you not have any issue with Risk then you can Leave Moving Average No 3")
ma3_show = input(title="MA №3", defval=false, type=input.bool, inline="ma3")
ma3type = input(title="", defval="SMA", options=["SMA","EMA","RMA","WMA","VWMA"], inline="ma3")
// ma3srcH = input(title="", defval=high, type=input.source, inline="ma3")
// ma3srcL = input(title="", defval=low, type=input.source, inline="ma3")
ma3Len = input(title="", defval=50, type=input.integer, inline="ma3")
ma3col = input(colordn, "", type=input.color, inline="ma3")
ma3H = maType(high, ma3Len, ma3type)
ma3L = maType(low, ma3Len, ma3type)
ma3p = plot(ma3_show ? ma3H : na, linewidth=1, color=color.new(ma3col , 50))
ma3p2 = plot(ma3_show ? ma3L : na, linewidth=1, color=color.new(ma3col , 50))
Bigcross_zone_color = if ma3_show and close > ma3H
color.new(colorup , 90)
else
if ma3_show and close < ma3L
color.new(colordn , 90)
fill(ma3p , ma3p2, color=Bigcross_zone_color, title="Cross Background Color")
BigCrossSignal = close > ma3H
ZoneCrossover = crossover(close , ma3H)
///////////////////////////// BACK TESTING INPUTS //////////////////////////////
startTime = input(title="Start Time", type=input.time, defval= timestamp("01 Jan 2021"))
endTime = input(title="End Time", type=input.time, defval= timestamp("01 Jan 2100"))
inDateRange = true
//////////////////////////// PLOTING AND COOLORING /////////////////////////////
Cross = input(true, "Cross Sign ON/OFF")
maCrossOver = crossover(ma1 , ma2)
maCrossUnder = crossunder(ma1 , ma2)
cross_zone_color = ma1 > ma2 ? color.new(colorup , 85) : color.new(colordn , 85)
plotshape(Cross ? maCrossOver : na, title="CrossUP Sign", style=shape.triangleup, location=location.belowbar, color=color.white, size=size.tiny)
plotshape(Cross ? maCrossUnder : na, title="CrossDN Sign", style=shape.xcross, location=location.abovebar, color=#e91e63, size=size.tiny)
fill(ma1p , ma2p, color=cross_zone_color, title="Cross Background Color")
///////////////////////////////// (CONDITIONS) /////////////////////////////////
if maCrossOver and inDateRange
if ma3_show
strategy.entry("BUY", strategy.long, when=BigCrossSignal)
else
strategy.entry("BUY", strategy.long)
if ma3_show
strategy.entry("BUY", strategy.long, when=ZoneCrossover)
if maCrossUnder and inDateRange
strategy.close("BUY", comment="Exit")
if (not inDateRange)
strategy.close_all()