
Strategi ini dengan menilai arah indeks bergerak rata-rata, menentukan arah kosong. Apabila terdapat bentuk yang lebih besar daripada yang lain dan jumlah transaksi meningkat, lakukan lebih banyak operasi. Apabila arah indeks bergerak rata-rata bertukar atau terdapat bentuk yang lebih besar daripada yang lain, lakukan operasi kosong.
Indeks bergerak rata-rata menggunakan dua parameter yang berbeza untuk menentukan arah trend pasaran. Garis EMA jangka pendek dianggap sebagai pasaran multihead di atas garis EMA jangka panjang, sebaliknya sebagai pasaran kosong.
Apabila pasaran berada dalam keadaan berbilang kepala, jika terdapat bentuk garis K yang telah ditelan oleh garis K sebelumnya, dan jumlah dagangan lebih besar daripada 1.2 kali ganda daripada garis K sebelumnya, maka menghasilkan isyarat melakukan banyak. Bentuk ini menunjukkan kekuatan berbilang kepala yang kuat, dan dapat mengejar melakukan banyak.
Apabila trend pasaran bertukar, iaitu EMA jangka pendek di bawah EMA jangka panjang, menunjukkan kekuatan berbilang lemah, harus meratakan kedudukan. Atau apabila terdapat bentuk yang merangkumi garis besar yang memakan garis matahari, menunjukkan kekuatan kosong yang memberi berat masuk ke dalam permainan, juga harus mengambil tindakan untuk menghentikan kedudukan yang merata.
Menggunakan dua EMA untuk menilai struktur pasaran, anda boleh lebih tepat menilai keadaan pasaran kosong.
Bentuk menelan menunjukkan bahawa kekuatan unilateral tiba-tiba meningkat, dan dapat menangkap keadaan yang lebih besar. Digabungkan dengan jumlah transaksi, penapis meningkat, untuk mengelakkan penundaan oleh penembusan palsu.
Terdapat mekanisme hentian kerugian. Oleh kerana tidak menetapkan titik hentian kerugian, hentian kerugian menggunakan perubahan struktur pasaran dapat mengurangkan kerugian titik slippage yang disebabkan oleh hentian kerugian yang tidak perlu.
Dual EMA menilai struktur pasaran juga boleh membuat keputusan yang salah, sehingga terlepas dari pasaran atau melakukan lebih banyak gangguan. Parameter kitaran EMA boleh disesuaikan dengan betul.
Metoda penelan mudah disesatkan oleh pergerakan gegaran. Anda boleh menambah lebih banyak syarat penapis untuk mengelakkan perdagangan yang salah.
Tiada tetapan titik hentian boleh membawa kepada kerugian yang lebih besar. Anda boleh mencuba kaedah seperti hentian pecah walaupun.
Ia boleh dikombinasikan dengan lebih banyak petunjuk untuk menilai kekosongan, seperti MACD, arus tenaga, dan sebagainya.
Anda boleh menambah Stop Loss yang lebih besar jika anda mahu.
Parameter kitaran EMA boleh dioptimumkan mengikut ciri-ciri varieti perdagangan.
Strategi ini secara keseluruhannya jelas dan mudah difahami, menggunakan struktur penghakiman rata-rata bergerak indeks, menangkap bentuk penembusan. Kelebihannya adalah bahawa logik penghakiman mudah, isyarat perdagangan jelas. Tetapi ada juga risiko terkurung. Dengan pengoptimuman lanjut, diharapkan untuk mendapatkan hasil yang lebih baik.
/*backtest
start: 2023-11-06 00:00:00
end: 2023-12-06 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// @version=5
// # ========================================================================= #
// # | STRATEGY |
// # ========================================================================= #
strategy(
title = "fpemehd Strategy001",
shorttitle = "f_001",
overlay = true,
default_qty_type = strategy.percent_of_equity,
default_qty_value = 100,
initial_capital = 10000000,
currency = currency.USD,
slippage = 0,
commission_type = strategy.commission.cash_per_order,
commission_value = 0.01,
process_orders_on_close = true)
// # ========================================================================= #
// # | STRATEGY |
// # ========================================================================= #
// Inputs
I_start_date = input (defval = timestamp("20 Jan 1990 00:00 +0900"))
I_finish_date = input(defval = timestamp("20 Dec 2030 00:00 +0900"))
I_short_ema = input.int(defval = 15 , title = "Short EMA", minval = 1 , maxval = 300 , step = 1)
I_long_ema = input.int(defval = 30 , title = "Long EMA", minval = 1 , maxval = 300 , step = 1)
I_body = input.float(defval = 1 , title = "Size of Body", minval = 1 , maxval = 5 , step = 0.1)
time_cond = true
// Calculate Engulfing Candles
C_uptrend = false
C_downtrend = false
C_ema_short = ta.ema(source = close, length = I_short_ema)
C_ema_long = ta.ema(source = close, length = I_long_ema)
C_uptrend := close > C_ema_short and C_ema_short > C_ema_long
C_downtrend := close < C_ema_short and C_ema_short < C_ema_long
C_pre_body = math.abs(open[1]-close[1])
C_pre_body_ratio = (math.abs(open[1]-close[1])) / (math.abs(high[1]-low[1])) * 100
C_now_body = math.abs(open-close)
C_now_body_ratio = (math.abs(open-close)) / (math.abs(high-low)) * 100
C_bullish_engulfing = (open[1] > close[1] and open <= close) and (low < low[1] and high > high[1])
C_bearish_engulfing = (open[1] < close[1] and open >= close) and (low < low[1] and high > high[1])
C_avoid_doge = (C_pre_body_ratio > I_body and C_now_body_ratio > I_body) ? true : false
C_volume_filter = volume > volume[1] * 1.2
// Signals
long_signal = C_uptrend and C_bullish_engulfing and C_avoid_doge and C_volume_filter
close_signal = C_downtrend or C_bearish_engulfing
if long_signal and time_cond
strategy.entry(id = "Long", direction = strategy.long)
if close_signal and time_cond
strategy.close(id = "Long")