Strategi Breakout EMA Mengikuti Tren


Tanggal Pembuatan: 2024-01-12 14:23:11 Akhirnya memodifikasi: 2024-01-12 14:23:11
menyalin: 0 Jumlah klik: 620
1
fokus pada
1617
Pengikut

Strategi Breakout EMA Mengikuti Tren

Ringkasan

Strategi ini adalah strategi breakout tipe trend tracking berdasarkan indeks moving average (EMA). Strategi ini menilai arah tren pada frame waktu bulan, bulan dan matahari, dan melakukan operasi masuk dan keluar tertentu pada matahari.

Prinsip Strategi

Pengadilan tren

  1. Pada garis bulan, harga lebih tinggi dari 8 EMA, 8 EMA lebih tinggi dari 21 EMA, dan dianggap sebagai tren multihead;
  2. Pada garis berputar, harga lebih tinggi dari 8 EMA, 8 EMA lebih tinggi dari 21 EMA, dan dianggap sebagai tren multihead;
  3. Pada hari ini, harga lebih tinggi dari 8 EMA, 8 EMA lebih tinggi dari 21 EMA, yang dinilai sebagai tren multihead;

Sinyal masuk

  1. Pada hari Kamis, sebuah resonansi turun muncul di garis matahari, dengan titik rendah menyentuh EMA 8 hari lalu.
  2. Pengulangan membentuk bentuk Lower High dan Lower Low dari Ring Low;
  3. Penutupan harga lebih tinggi dari harga tertinggi sehari sebelumnya merupakan sinyal pembalikan tren;

Sinyal keluar

Setting Stop Loss Standar untuk mencapai Keluar.

Analisis Keunggulan

  1. Meningkatkan akurasi penilaian dalam tiga kerangka waktu;
  2. Pada saat ini, ada beberapa hal yang perlu diperhatikan, yaitu:
  3. Ini adalah salah satu cara yang paling efektif untuk mendapatkan uang dari internet.

Analisis risiko

  1. Tidak konsistensi dalam tiga kerangka waktu dapat memicu sinyal yang salah;
  2. Terlalu banyak penyesuaian membuat strategi tidak efektif;
  3. “Pertama-tama, saya tidak tahu apa yang akan terjadi.

Arah optimasi

  1. Menambahkan penilaian tambahan dari indikator seperti MACD, RSI, dan lain-lain;
  2. Optimalkan pengaturan parameter EMA;
  3. Mengatur stop loss dengan indikator volatilitas;

Meringkaskan

Strategi ini secara keseluruhan berfungsi sebagai strategi pelacakan tren, dengan potensi keuntungan yang sangat baik ketika menilai tren dengan benar. Perlu diperhatikan untuk mencegah kesalahan penilaian tren dan sinyal yang salah karena over-reversal. Selain itu, pengoptimalan pengaturan stop loss juga merupakan kunci untuk meningkatkan keuntungan strategi lebih lanjut.

Kode 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---------------