JBravo Quantitative Trend Strategy adalah strategi trend-mengikuti berdasarkan moving average. Ini menggunakan rata-rata bergerak sederhana 9 hari, rata-rata bergerak eksponensial 20 hari, dan rata-rata bergerak sederhana 180 hari untuk menentukan arah tren pasar, serta sinyal beli dan jual akhir.
Nama strategi ini terinspirasi oleh karakter kartun Johnny Bravo, yang mewakili keputusan perdagangan yang percaya diri dan tegas.
Sinyal beli dihasilkan ketika harga penutupan melintasi di atas rata-rata bergerak sederhana 9 hari; Sinyal jual dihasilkan ketika harga penutupan melintasi di bawah rata-rata bergerak eksponensial 20 hari.
Jika rata-rata bergerak 9 hari, 20 hari dan 180 hari semuanya bergerak ke atas, dan rata-rata bergerak 9 hari berada di atas rata-rata bergerak 20 hari, rata-rata bergerak 20 hari berada di atas rata-rata bergerak 180 hari, sinyal beli yang kuat dihasilkan.
Jika rata-rata bergerak 9 hari, 20 hari dan 180 hari semuanya bergerak ke bawah, dan rata-rata bergerak 9 hari berada di bawah rata-rata bergerak 20 hari, rata-rata bergerak 20 hari berada di bawah rata-rata bergerak 180 hari, sinyal jual yang kuat dihasilkan.
Ketika garis Volume Weighted Average Price melintasi rata-rata bergerak eksponensial 20 hari ke atas, sinyal
Strategi ini menggabungkan ide-ide strategi trend following dan breakout. moving average dapat dengan jelas menentukan arah tren pasar dan mengurangi probabilitas perdagangan yang salah. pada saat yang sama, secara fleksibel menggunakan indikator VWAP untuk menentukan waktu masuk, mengendalikan risiko sambil mendukung terobosan di pasar.
Dibandingkan dengan menggunakan rata-rata bergerak saja, strategi ini menambahkan mekanisme masuk agresif
Secara keseluruhan, strategi ini memiliki pengeluaran kecil dan profitabilitas yang stabil.
Meskipun strategi ini meningkatkan kekuatan entri, titik stop loss dapat sering dipicu di pasar sampingan. Selain itu, moving average sendiri memiliki inersia yang tinggi dan tidak dapat mengikuti perubahan harga dalam waktu.
Ini berarti bahwa strategi dapat menghasilkan sejumlah perdagangan virtual yang tidak benar-benar mencerminkan pergerakan harga pasar.
Untuk mengurangi risiko, kita dapat menyesuaikan siklus moving average sesuai; atau menambahkan modul stop loss untuk menghentikan kerugian ketika kerugian mencapai tingkat tertentu.
Strategi dapat dioptimalkan dalam arah berikut:
Sesuaikan parameter rata-rata bergerak dan mengoptimalkan parameter siklus untuk menemukan kombinasi parameter optimal
Tambahkan indikator volume untuk menghindari sinyal palsu pada saat fluktuasi harga yang keras
Tingkatkan modul stop loss dan atur aturan keluar untuk mengendalikan kerugian per perdagangan
Menggabungkan pilihan sektor panas pasar untuk membuat strategi lebih ditargetkan
Optimalkan proporsi posisi pembukaan, optimalkan skala yang berbeda untuk parameter yang berbeda
JBravo Quantitative Trend Strategy mengintegrasikan analisis rata-rata bergerak dan penilaian tren VWAP. Strategi ini mengejar keuntungan jangka panjang yang stabil sambil memiliki beberapa mekanisme perdagangan yang agresif. Strategi ini cocok untuk kepemilikan jangka menengah-panjang, dengan risiko menengah-tinggi dan pengembalian 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")