Strategi ini menggabungkan purata bergerak eksponen 200 hari (200 EMA), harga purata berat volum (VWAP), dan indeks aliran wang (MFI) untuk menjana isyarat beli dan jual. Idea utama adalah untuk menggunakan gabungan tiga penunjuk ini untuk menentukan arah dan kekuatan trend, dan menjana isyarat perdagangan apabila harga memecahkan 200 EMA dan disahkan oleh penunjuk VWAP dan MFI. Di samping itu, 200 EMA dari jangka masa yang lebih tinggi diperkenalkan sebagai penapis trend, dan dagangan hanya dilaksanakan apabila trend pada jangka masa semasa dan yang lebih tinggi sejajar.
Dengan menggabungkan penunjuk EMA, VWAP, dan MFI 200 hari, sambil mempertimbangkan trend dalam bingkai masa yang lebih tinggi dan kesinambungan pergerakan harga, strategi ini membina sistem perdagangan trend yang agak kukuh. Strategi ini menapis isyarat palsu dengan menganalisis pelbagai keadaan secara komprehensif, meningkatkan ketepatan masa kemasukan. Pada masa yang sama, fleksibiliti parameter strategi membolehkan pengoptimuman berdasarkan pasaran dan gaya perdagangan yang berbeza. Walau bagaimanapun, strategi ini juga melibatkan risiko tertentu, seperti kerugian di pasaran yang berbelit-belit atau pada titik perubahan trend, dan prestasi yang buruk kerana tetapan parameter yang tidak betul. Pada masa akan datang, strategi ini boleh dioptimumkan dan dipertingkatkan lagi dari segi pengoptimuman parameter, memperkenalkan penunjuk tambahan, pengurusan risiko, dan aspek lain. Secara keseluruhan, strategi ini menyediakan kerangka kerja yang komprehensif dan berpotensi untuk mengikuti trend.
/*backtest start: 2023-05-08 00:00:00 end: 2024-05-13 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("200 EMA, VWAP, MFI Strategy - Visible Signals", overlay=true, pyramiding=0) // Inputs for dynamic adjustments buffer = input.float(0.2, title="EMA Buffer Percentage", step=0.1) / 100 higherTimeframe = input.timeframe("15", title="Higher Timeframe") mfiBuyThreshold = input(60, title="MFI Buy Threshold") mfiSellThreshold = input(40, title="MFI Sell Threshold") consecutiveCloses = input.int(1, title="Consecutive Closes for Confirmation") // Calculate the 200-period EMA ema200 = ta.ema(close, 200) emaBufferedHigh = ema200 * (1 + buffer) emaBufferedLow = ema200 * (1 - buffer) emaHigher = request.security(syminfo.tickerid, higherTimeframe, ta.ema(close, 200)) // VWAP calculation vwap = ta.vwap(hlc3) // Money Flow Index calculation mfiLength = 14 mfi = ta.mfi(close, mfiLength) // Plotting the indicators plot(ema200, title="200 EMA", color=color.blue) plot(vwap, title="VWAP", color=color.orange) plot(mfi, title="MFI", color=color.purple) hline(50, "MFI Reference", color=color.gray, linestyle=hline.style_dashed) plot(emaHigher, title="Higher TF EMA", color=color.red) // Price action confirmation isUpTrend = ta.rising(close, consecutiveCloses) isDownTrend = ta.falling(close, consecutiveCloses) // Define entry conditions longCondition = close > emaBufferedHigh and close > vwap and mfi > mfiBuyThreshold and close > emaHigher and isUpTrend shortCondition = close < emaBufferedLow and close < vwap and mfi < mfiSellThreshold and close < emaHigher and isDownTrend // Trading execution if (longCondition) strategy.entry("Buy", strategy.long) if (shortCondition) strategy.entry("Sell", strategy.short) // Plot shapes for signals plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, size=size.small, title="Buy Signal", text="Buy") plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, size=size.small, title="Sell Signal", text="Sell")