JBravo Quantitative Trend Strategy adalah strategi trend mengikut trend berdasarkan purata bergerak. Ia menggunakan purata bergerak mudah 9 hari, purata bergerak eksponen 20 hari, dan purata bergerak mudah 180 hari untuk menentukan arah trend pasaran, serta isyarat beli dan jual akhir.
Nama strategi ini diilhamkan oleh watak kartun Johnny Bravo, yang mewakili keputusan perdagangan yang yakin dan tegas.
Isyarat beli dihasilkan apabila harga penutupan melintasi di atas purata bergerak mudah 9 hari; Isyarat jual dihasilkan apabila harga penutupan melintasi di bawah purata bergerak eksponensial 20 hari.
Sekiranya purata bergerak 9 hari, 20 hari dan 180 hari semuanya bergerak ke atas, dan purata bergerak 9 hari berada di atas purata bergerak 20 hari, purata bergerak 20 hari berada di atas purata bergerak 180 hari, isyarat beli yang kuat dihasilkan.
Sekiranya purata bergerak 9 hari, 20 hari dan 180 hari semuanya bergerak ke bawah, dan purata bergerak 9 hari berada di bawah purata bergerak 20 hari, purata bergerak 20 hari berada di bawah purata bergerak 180 hari, isyarat jual yang kuat dihasilkan.
Apabila garis Harga Purata Bertimbang Volume melintasi purata bergerak eksponensial 20 hari ke atas, isyarat
Strategi ini menggabungkan idea-idea trend berikut dan strategi breakout. purata bergerak dapat menentukan arah trend pasaran dengan jelas dan mengurangkan kebarangkalian perdagangan yang salah. Pada masa yang sama, ia menggunakan penunjuk VWAP dengan fleksibel untuk menentukan masa masuk, mengawal risiko sambil memihak kepada terobosan di pasaran.
Berbanding dengan menggunakan purata bergerak sahaja, strategi ini menambah mekanisme kemasukan agresif
Secara keseluruhan, strategi ini mempunyai pengeluaran yang kecil dan keuntungan yang stabil.
Walaupun strategi ini meningkatkan kekuatan entri, titik stop loss sering boleh dicetuskan di pasaran sampingan. Di samping itu, purata bergerak sendiri mempunyai inersia yang tinggi dan tidak dapat mengikuti perubahan harga dalam masa.
Ini bermakna bahawa strategi ini boleh menghasilkan sejumlah perdagangan maya yang sebenarnya tidak mencerminkan pergerakan harga pasaran.
Untuk mengurangkan risiko, kita boleh menyesuaikan kitaran purata bergerak sesuai; atau menambah modul stop loss untuk menghentikan kerugian apabila kerugian mencapai tahap tertentu.
Strategi ini boleh dioptimumkan ke arah berikut:
Sesuaikan parameter purata bergerak dan mengoptimumkan parameter kitaran untuk mencari kombinasi parameter optimum
Tambah penunjuk jumlah untuk mengelakkan isyarat palsu pada masa turun naik harga yang ganas
Meningkatkan modul stop loss dan menetapkan peraturan keluar untuk mengawal setiap kerugian perdagangan
Menggabungkan pilihan sektor panas pasaran untuk menjadikan strategi lebih disasarkan
Mengoptimumkan nisbah kedudukan pembukaan, mengoptimumkan skala yang berbeza untuk parameter yang berbeza
JBravo Quantitative Trend Strategy mengintegrasikan analisis purata bergerak dan penilaian trend VWAP. Ia mengejar keuntungan jangka panjang yang stabil sambil mempunyai beberapa mekanisme perdagangan yang agresif. Strategi ini sesuai untuk pegangan jangka menengah dan panjang, dengan risiko sederhana dan tinggi dan pulangan yang tinggi.
[/trans]
/*backtest start: 2022-12-20 00:00:00 end: 2023-12-26 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/ // © bradvaughn //@version=4 strategy("JBravo Swing", overlay = false) var buy_in_progress = false //Moving Averages smaInput1 = input(title="Display SMA 9", type=input.bool, defval=true) smaInput2 = input(title="Display EMA 20", type=input.bool, defval=true) smaInput4 = input(title="Display SMA 180", type=input.bool, defval=true) colored_180 = input(false, title="Color-code 180 trend direction") vwapInput = input(title="Display VWAP", type=input.bool, defval=true) sma9 = sma(close, 9) ema20 = ema(close, 20) sma180 = sma(close, 180) //Plot Moving Averages plot(smaInput1 ? sma9 : na, color= color.red, title="SMA 9") plot(smaInput2 ? ema20 : na, color = color.yellow, title="EMA 20") // Plot VWAP vwap1 = vwap(hlc3) plot(vwapInput ? vwap1 : na, color = color.blue, title="VWAP") vwaplong = vwap1 > ema20 vwapshort = vwap1 < ema20 //Color SMA 180 trend direction if selected sma180_uptrend = sma(close, 180) > sma(close[2], 180) colr = sma180_uptrend == true or colored_180 == false ? color.white : colored_180 == true ? color.gray : na plot(smaInput4 ? sma180 : na, color = colr, title="SMA 180") //Get value of lower end of candle buyLow = iff(lowest(open, 1) < lowest(close, 1), lowest(open, 1), lowest(close, 1)) sellLow = lowest(close, 1) // Find the lower MA for crossover sell condition sellma = iff((sma9<ema20), sma9, ema20) //SMA 9 trend direction sma9_uptrend = sma(close, 9) > sma(close[2], 9) //EMA 20 trend direction ema20_uptrend = ema(close, 20) > sma(close[2], 20) //Buy or sell if conditions are met // Buy when the candle low is above the SMA9 // Sell when the candle low is below the lower of SMA9 and EMA20 Buy = iff(buy_in_progress == false and buyLow > sma9 == true, true, false) Sell = iff(buy_in_progress == true and sellLow < sellma == true, true, false) // Determine stong buy and strong sell conditions. // If moving averages are all up, then this will qualify a buy as a strong buy. // If the moving averages are not up (ie. down) then this will qualify a sell as a strong sell StrongBuy = iff (Buy and sma9_uptrend and sma180_uptrend and ema20_uptrend and (sma9 > ema20) and (ema20 > sma180), true, false) StrongSell = iff (Sell and not sma9_uptrend and not sma180_uptrend and not ema20_uptrend and (sma9 < ema20) and (ema20 < sma180), true, false) //Update Trading status if bought or sold if Buy buy_in_progress := true if Sell buy_in_progress := false // Clear Buy and Sell conditions if StrongBuy or StrongSell conditions exist. // This disables plotting Buy and Sell conditions if StrongBuy Buy := false if StrongSell Sell := false //Display BUY/SELL indicators plotshape(Buy,title="Buy", color=color.green, style=shape.arrowup,location=location.belowbar, text="Buy") plotshape(StrongBuy,title="Strong Buy", color=color.green, style=shape.arrowup,location=location.belowbar, text="Strong Buy") plotshape(Sell,title="Sell", color=color.red, style=shape.arrowdown,text="Sell") plotshape(StrongSell,title="Strong Sell", color=color.red, style=shape.arrowdown,text="Strong Sell") strategy.entry("GoGo Long", strategy.long, 1, when=vwaplong and vwapInput) strategy.entry("GoGo Short", strategy.short, 1, when=vwapshort and vwapInput) strategy.close("GoGo Long", when = vwapshort and vwapInput) strategy.close("GoGo Short", when = vwaplong and vwapInput) alertcondition(Buy, title="Buy Signal", message="Buy") alertcondition(Sell, title="Sell Signal", message="Sell")