
Strategi ini adalah strategi perdagangan berdasarkan EMA, VWAP dan jumlah transaksi. Gagasan utamanya adalah pada masa perdagangan tertentu, apabila harga tutup menembusi VWAP dan EMA, dan jumlah transaksi lebih besar daripada jumlah transaksi pada baris K sebelumnya, isyarat bukaan kedudukan dihasilkan.
Strategi ini melakukan perdagangan dalam masa perdagangan tertentu dengan mempertimbangkan trend harga, nilai saksama pasaran dan jumlah transaksi secara menyeluruh. Walaupun menetapkan hentian kerugian dan masa perdagangan terhad, risiko seperti pasaran goyah dan titik tergelincir masih perlu diperhatikan dalam aplikasi praktikal. Di masa depan, kestabilan dan keuntungan strategi dapat ditingkatkan dengan cara menambahkan lebih banyak syarat penapisan, parameter optimasi dan pengurusan kedudukan.
/*backtest
start: 2024-04-27 00:00:00
end: 2024-04-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA, VWAP, Volume Strategy", overlay=true, process_orders_on_close=true)
// Inputs
emaLength = input.int(21, title="EMA Length")
vwapSource = input.source(defval=hlc3, title='VWAP Source')
stopLossPoints = input.float(100, title="Stop Loss (points)")
targetPoints = input.float(200, title="Target (points)")
session = input("0950-1430", title='Only take entry during')
exit = input(defval='1515-1525', title='Exit Trade')
tradein = not na(time(timeframe.period, session))
exit_time = not na(time(timeframe.period, exit))
// Calculate indicators
ema = ta.ema(close, emaLength)
vwapValue = ta.vwap(vwapSource)
// Entry Conditions
longCondition = close > vwapValue and close > ema and volume > volume[1] and close > open and tradein
shortCondition = close < vwapValue and close < ema and volume > volume[1] and open > close and tradein
// Exit Conditions
longExitCondition = ta.crossunder(close, vwapValue) or ta.crossunder(close, ema) or close - strategy.position_avg_price >= targetPoints or close - strategy.position_avg_price <= -stopLossPoints or exit_time
shortExitCondition = ta.crossover(close, vwapValue) or ta.crossover(close, ema) or strategy.position_avg_price - close >= targetPoints or strategy.position_avg_price - close <= -stopLossPoints or exit_time
// Plotting
plot(vwapValue, color=color.blue, title="VWAP")
plot(ema, color=color.green, title="EMA")
// Strategy
if longCondition
strategy.entry("Long", strategy.long)
if shortCondition
strategy.entry("Short", strategy.short)
if longExitCondition
strategy.close('Long', immediately=true)
if shortExitCondition
strategy.close("Short", immediately=true)