
Strategi ini menggunakan petunjuk VWMA untuk menentukan arah trend, dan menggunakan petunjuk ATR untuk menetapkan garis hentian untuk trend. Strategi ini sesuai untuk persekitaran pasaran yang mempunyai trend yang jelas.
Gunakan penunjuk VWMA untuk menentukan arah trend. Apabila harga lebih tinggi daripada VWMA, anda akan melihat ia sebagai trend naik, jadi lebih banyak; apabila harga lebih rendah daripada VWMA, anda akan melihat ia sebagai trend menurun, jadi lebih banyak.
Untuk menyaring penipuan palsu, masukkan penilaian RSI oscillator. Isyarat lebih banyak akan dikeluarkan hanya apabila RSI lebih tinggi daripada 30.
Menggunakan indikator ATR untuk mengira garis hentian. Panjang ATR ditetapkan sama dengan VWMA, dan perkalian ditetapkan pada 3.5 . Garis hentian akan dikemas kini secara langsung mengikut harga.
Tetapan pengganda ATR akan mempengaruhi kadar pengurangan garis hentian. Semakin besar pengganda, semakin rendah frekuensi pengemaskinian garis hentian, lebih baik untuk mengikuti trend.
Peratusan stop loss dalam strategi dan saiz kedudukan yang dikira berdasarkan kepentingan akaun.
Apabila harga jatuh di bawah garis henti rugi, anda boleh keluar dari henti rugi dan mengambil kedudukan tambahan.
Menggunakan petunjuk VWMA untuk menentukan arah trend, anda boleh terus menangkap peluang trend.
Menambah filter RSI untuk menapis beberapa isyarat pecah palsu.
ATR Stop Lines membolehkan trend dijejaki dan mengelakkan pembalikan Stop out
Peratusan keuntungan dan kerugian yang dihitung berdasarkan peratusan hak milik dan kerugian yang dihitung berdasarkan peratusan hak milik dan kerugian yang dihitung berdasarkan peratusan hak milik dan kerugian yang dihitung berdasarkan peratusan hak milik dan kerugian yang dihitung berdasarkan peratusan kerugian yang dihitung berdasarkan peratusan hak milik dan kerugian yang dihitung berdasarkan peratusan kerugian yang dihitung berdasarkan peratusan kerugian yang dihitung berdasarkan peratusan kerugian yang dihitung berdasarkan peratusan kerugian yang dihitung berdasarkan peratusan kerugian yang dihitung berdasarkan peratusan kerugian yang dihitung berdasarkan peratusan kerugian yang dihitung berdasarkan peratusan kerugian yang dihitung berdasarkan peratusan kerugian yang dihitung berdasarkan peratusan kerugian.
Terdapat risiko kerugian pada titik perubahan trend. Kedudukan harus dikurangkan dengan sewajarnya untuk mengurangkan kerugian tunggal.
Tetapan parameter ATR yang tidak betul boleh menyebabkan garis henti terlalu sensitif atau lambat. Parameter yang sesuai harus diuji.
Jika trend berbalik terlalu cepat, pembaruan garis stop mungkin tidak datang pada masa yang sama, yang akan meningkatkan kerugian.
Dalam pasaran yang rendah turun naik, anda harus menurunkan kedudukan dan meningkatkan kekerapan pengurangan garis hentikan kerugian.
Anda boleh menguji kombinasi parameter VWMA yang berbeza untuk memilih parameter yang menghasilkan isyarat terbaik.
Tetapan parameter lain untuk pengayun RSI boleh diuji, seperti overbought dan oversold line.
Anda boleh menguji parameter perkalian ATR untuk mencari titik terbaik untuk melakukan tradeoff antara penarikan balik dan pengesanan.
Ia boleh digabungkan dengan penapis isyarat lain, seperti MACD, KD, dan lain-lain, untuk meningkatkan kualiti isyarat.
Anda boleh mengoptimumkan pengurusan kedudukan dan peratusan hentian kerugian mengikut turun naik pasaran.
Strategi ini adalah bias trend keseluruhan, sesuai untuk menangkap trend harga yang jelas. Strategi ini mempunyai kelebihan dalam penghakiman trend, penapisan isyarat, dan penjejakan hentian, dan juga terdapat risiko pembalikan trend. Dengan menetapkan parameter optimum dan pengurusan kedudukan, anda boleh mendapatkan kesan strategi yang lebih baik.
/*backtest
start: 2023-10-07 00:00:00
end: 2023-10-13 00:00:00
period: 1h
basePeriod: 15m
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/
// © mohanee
//@version=4
//strategy("", overlay=true)
strategy(title="VWMA_withATRstops_strategy V2", overlay=true, pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=20, initial_capital=10000, currency=currency.USD) //default_qty_value=10, default_qty_type=strategy.fixed,
float xATRTrailingStop=na
int pos=na
vwmalength = input(33, title="VWMA Length", minval=1, maxval=365)
//vwmalength2 = input(9, title="VWAM Short Term Length", minval=1, maxval=365)
nATRPeriod = input(33, title="ATR length", minval=1, maxval=365)
nATRMultip = input(3.5, title="ATR Multiplier")
rsiofVwmaLength=input(14, title="RSI of VWMA Length")
riskCapital = input(title="Risk % of capital", defval=10, minval=1)
stopLoss=input(5,title="Stop Loss",minval=1)
vwmaVal=vwma(close, vwmalength)
//vwmaVal2=vwma(close, vwmalength2)
//maVal=sma(close, vwmalength)
plot(vwmaVal, color=color.orange, linewidth=2, title="VWMA")
//plot(vwmaVal2, color=color.blue, title="VWMA Short Term")
//plot(maVal, color=color.blue, title="MA")
//rsi of vwma Longterm
rsiofVwmaVal=rsi(vwmaVal,rsiofVwmaLength)
xATR = atr(nATRPeriod)
nLoss = nATRMultip * xATR
xATRTrailingStop:= iff(close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), close - nLoss), iff(close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), close + nLoss), iff(close > nz(xATRTrailingStop[1], 0), close - nLoss, close + nLoss)))
pos:= iff(close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0), 1, iff(close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0)))
color1 = pos == -1 ? color.red: pos == 1 ? color.green : color.blue
//plot(xATRTrailingStop, color=color1, title="ATR Trailing Stop")
//Entry--
//Echeck how many units can be purchased based on risk manage ment and stop loss
qty1 = (strategy.equity * riskCapital / 100 ) / (close*stopLoss/100)
//check if cash is sufficient to buy qty1 , if capital not available use the available capital only
qty1:= (qty1 * close >= strategy.equity ) ? (strategy.equity / close) : qty1
//Long Entry
//strategy.entry(id="VWMA LE", long=true, qty=qty1, when= close >vwmaVal and open>vwmaVal and close>open and close > xATRTrailingStop and xATRTrailingStop> vwmaVal)
strategy.entry(id="VWMA LE", long=true, qty=qty1, when= rsiofVwmaVal>=30 and close>open and close>vwmaVal and pos == 1 ) ///pos == 1 means ATRStop line is green
//vwmaVal2>vwmaVal and
plot(strategy.position_size>=1 ? xATRTrailingStop : na, color=color1, style=plot.style_linebr, title="ATR Trailing Stop")
bgcolor(strategy.position_size>=1 ? color.blue : na )
//Exit
strategy.close(id="VWMA LE", when= strategy.position_size>=1 and crossunder(close, xATRTrailingStop) )
//strategy.close(id="VWMA LE", when= strategy.position_size>=1 and close<vwmaVal and open<vwmaVal and close<open )