Trend Mengikuti Strategi Pecahan EMA


Tarikh penciptaan: 2024-01-12 14:23:11 Akhirnya diubah suai: 2024-01-12 14:23:11
Salin: 0 Bilangan klik: 620
1
fokus pada
1617
Pengikut

Trend Mengikuti Strategi Pecahan EMA

Gambaran keseluruhan

Strategi ini adalah strategi penembusan jenis trend-tracking berdasarkan purata bergerak indeks ((EMA)). Ia menilai arah trend pada jangka masa bulan, garis putaran dan garis matahari, dan melakukan operasi masuk dan keluar tertentu pada garis matahari.

Prinsip Strategi

Penghakiman Trend

  1. Pada garis bulan, harga lebih tinggi daripada 8 hari EMA, 8 hari EMA lebih tinggi daripada 21 hari EMA, yang dinilai sebagai trend berbilang arah;
  2. Pada garis pusingan, harga lebih tinggi daripada EMA 8 hari, dan EMA 8 hari lebih tinggi daripada EMA 21 hari, yang dianggap sebagai trend berbilang arah;
  3. Pada hari ini, harga lebih tinggi daripada 8 hari EMA, 8 hari EMA lebih tinggi daripada 21 hari EMA, yang dinilai sebagai trend berbilang;

Isyarat masuk

  1. Pada hari ini, EMA turun ke bawah, dan pada hari ini, EMA turun ke bawah.
  2. Ring Low membentuk Lower High dan Lower Low;
  3. Harga penutupan lebih tinggi daripada harga tertinggi hari sebelumnya merupakan isyarat pembalikan trend;

Isyarat keluar

Tetapkan standard Stop Loss untuk mencapai penarikan diri.

Analisis kelebihan

  1. Meningkatkan ketepatan penilaian trend dalam tiga kerangka masa;
  2. Tahap penurunan yang menyentuh sokongan pembentukan EMA, meningkatkan kepastian kemasukan;
  3. Ini adalah satu-satunya cara untuk menjana wang di Malaysia, dan ini adalah satu-satunya cara untuk menjana wang.

Analisis risiko

  1. Tidak konsisten dalam tiga kerangka masa boleh menyebabkan isyarat yang salah;
  2. Ini adalah salah satu daripada beberapa perkara yang perlu diwaspadai.
  3. Ia juga boleh menyebabkan kemerosotan dalam pasaran.

Arah pengoptimuman

  1. Menambah penilaian tambahan untuk MACD, RSI dan lain-lain;
  2. Mengoptimumkan parameter EMA;
  3. Mengubah Stop Loss dalam kombinasi dengan Indeks Fluktuasi

ringkaskan

Strategi ini secara keseluruhannya berfungsi sebagai strategi pengesanan trend, dengan potensi keuntungan yang sangat baik apabila menilai trend dengan betul. Perlu berhati-hati untuk mengelakkan kesalahan penilaian trend dan penyesuaian yang berlebihan untuk menghasilkan isyarat yang salah.

Kod sumber strategi
/*backtest
start: 2023-01-11 00:00:00
end: 2024-01-11 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/
// © the_daily_trader

//@version=5
// ---------------------        Start of Code        ---------------------
strategy("Swing Trades Validator", overlay=true, margin_long=100, pyramiding = 0)

// Indicator Display Checks
TakeProfitPercent       = input.float(title="Profit Target %", defval=10, minval=1, step=0.05)
StopLossPercent         = input.float(title="Stop Loss %", defval=10, minval=1, step=0.05)
pullbackchoice          = input.bool(false, "Relaxed Entry Rules")

// EMAs
emaH            = ta.ema(close, 8)
emaHyest        = ta.ema(close[1], 8)
emaHyest1       = ta.ema(close[2], 8)
emaHyest2       = ta.ema(close[3], 8)
emaL            = ta.ema(close, 21)
emaLyest        = ta.ema(close[1], 21)
emaLyest1       = ta.ema(close[2], 21)
emaLyest2       = ta.ema(close[3], 21)
emaf            = ta.ema(close, 50)
emath           = ta.ema(close, 200)
emathhigh       = ta.ema(high, 200)
emathlow        = ta.ema(low, 200)
emaslowmonthly  = request.security(syminfo.tickerid, "M", emaL) // Monthly 21ema
emafastmonthly  = request.security(syminfo.tickerid, "M", emaH) // Monthly 8ema
emaslowweekly   = request.security(syminfo.tickerid, "W", emaL) // Weekly 21ema
emafastweekly   = request.security(syminfo.tickerid, "W", emaH) // Weekly 8ema
emaslowdaily    = request.security(syminfo.tickerid, "D", emaL) // Daily 21ema
emafastdaily    = request.security(syminfo.tickerid, "D", emaH) // Daily 8ema
emafdaily       = request.security(syminfo.tickerid, "D", emaf) // Daily 50ema
emathdaily      = request.security(syminfo.tickerid, "D", emath) // Daily ema
emathdailyhigh  = request.security(syminfo.tickerid, "D", emathhigh) // Daily ema High
emathdailylow   = request.security(syminfo.tickerid, "D", emathlow) // Daily ema Low
ema21yest       = request.security(syminfo.tickerid, "D", emaLyest) // Daily 21ema 1 day ago
ema21yest1      = request.security(syminfo.tickerid, "D", emaLyest1) // Daily 21ema 2 days ago
ema21yest2      = request.security(syminfo.tickerid, "D", emaLyest2) // Daily 21ema 3 days ago
ema8yest        = request.security(syminfo.tickerid, "D", emaHyest) // Daily 8ema 1 day ago
ema8yest1       = request.security(syminfo.tickerid, "D", emaHyest1) // Daily 8ema 2 days ago
ema8yest2       = request.security(syminfo.tickerid, "D", emaHyest2) // Daily 8ema 3 days ago


// Prices
monthopen       = request.security(syminfo.tickerid, 'M', open, barmerge.gaps_off, barmerge.lookahead_on)
monthclose      = request.security(syminfo.tickerid, 'M', close, barmerge.gaps_off, barmerge.lookahead_on)
weekopen        = request.security(syminfo.tickerid, 'W', open, barmerge.gaps_off, barmerge.lookahead_on)
weekclose       = request.security(syminfo.tickerid, 'W', close, barmerge.gaps_off, barmerge.lookahead_on)
dayopen         = request.security(syminfo.tickerid, 'D', open, barmerge.gaps_off, barmerge.lookahead_on)
dayclose        = request.security(syminfo.tickerid, 'D', close, barmerge.gaps_off, barmerge.lookahead_on)
threedayhigh    = request.security(syminfo.tickerid, 'D', high[3], barmerge.gaps_off, barmerge.lookahead_on)
twodayhigh      = request.security(syminfo.tickerid, 'D', high[2], barmerge.gaps_off, barmerge.lookahead_on)
yesthigh        = request.security(syminfo.tickerid, 'D', high[1], barmerge.gaps_off, barmerge.lookahead_on)
yestlow         = request.security(syminfo.tickerid, 'D', low[1], barmerge.gaps_off, barmerge.lookahead_on)

// Conditions 
monthlybullish          = emafastmonthly > emaslowmonthly
monthlybullishprice     = close > emafastmonthly
monthlybullishcandle    = monthclose > monthopen
weeklybullish           = emafastweekly > emaslowweekly
weeklybullishprice      = close > emafastweekly
weeklybullishcandle     = weekclose > weekopen
dailybullish1           = emafdaily > emathdaily
dailybullish2           = emafastdaily > emaslowdaily
dailybullishprice       = close > emafastdaily
dailybullishcandle      = dayclose > dayopen
ringlow                 = yestlow <= ema8yest
aggropullback           = twodayhigh < threedayhigh
pullback                = (pullbackchoice ? aggropullback : 0)
pullbackfailure         = dayclose > yesthigh and yesthigh < twodayhigh or pullback
emasetup                = ema8yest > ema21yest and ema8yest1 > ema21yest1 and ema8yest2 > ema21yest2

// Target Profit and Stop Loss Inputs
// Input parameters can be found at the beginning of the code
ProfitTarget        = (close * (TakeProfitPercent / 100)) / syminfo.mintick
StopLoss            = (close * (StopLossPercent / 100)) / syminfo.mintick

longCondition = monthlybullish and monthlybullishprice and weeklybullish and weeklybullishprice and dailybullish1 and dailybullish2 and dailybullishprice and monthlybullishcandle and weeklybullishcandle and dailybullishcandle and ringlow and pullbackfailure and emasetup

if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit ("Exit", "Long", profit = ProfitTarget, loss = StopLoss)
    // strategy.close("Long", qty_percent = 100)


// -----------xxxxxxxxxxx-------------    End of Code     -----------xxxxxxxxxxx---------------