Masa dan Ruang yang dioptimumkan Multi Timeframe MACD Strategy

Penulis:ChaoZhang, Tarikh: 2024-01-29 10:15:34
Tag:

img

Ringkasan

Strategi ini mengoptimumkan parameter penunjuk MACD, digabungkan dengan purata bergerak, tindakan harga dan masa perdagangan tertentu untuk mencapai strategi perdagangan forex dengan kadar kemenangan yang tinggi.

Logika Strategi

  1. Gunakan 3 K-garis untuk menilai trend harga. Jika harga penutupan 3 K-garis terakhir lebih tinggi daripada harga pembukaan, ia dinilai sebagai trend menaik; jika harga penutupan 3 K-garis terakhir lebih rendah daripada harga pembukaan, ia dinilai sebagai trend menurun.

  2. Mengira garisan pantas, garisan perlahan dan perbezaan MACD. parameter garisan pantas adalah 12, parameter garisan perlahan adalah 26, dan parameter garisan isyarat adalah 9.

  3. Waktu dagangan ditetapkan untuk 09:00-09:15 setiap hari. Dalam tempoh masa ini, masuk ke pasaran jika syarat-syarat berikut dipenuhi:

    • Pergi panjang apabila trend menaik bertepatan dengan perbezaan MACD melintasi di atas 0
    • Pergi pendek apabila trend menurun bertepatan dengan perbezaan MACD melintasi di bawah 0
  4. Ambil keuntungan ditetapkan kepada 0.3 pip, dan stop loss ditetapkan kepada 100 pip.

  5. Tutup semua kedudukan pada jam 21:00-21:15.

Kelebihan Strategi

  1. Menggunakan gabungan penunjuk pelbagai jangka masa untuk menilai arah trend secara komprehensif dan meningkatkan ketepatan keputusan.

  2. Mengoptimumkan masa perdagangan untuk mengelakkan tempoh turun naik pasaran yang tinggi, mengurangkan risiko stop loss yang tidak perlu.

  3. Tetapkan nisbah yang munasabah untuk mengambil keuntungan dan menghentikan kerugian untuk memaksimumkan kunci keuntungan dan mengelakkan pembesaran kerugian.

  4. Secara keseluruhan, strategi ini mempunyai kadar kemenangan yang sangat tinggi dan sesuai untuk perdagangan jangka pendek yang kerap.

Risiko Strategi

  1. Waktu dagangan agak tetap, mungkin terlepas peluang dagangan jika tidak dapat memasuki pasaran tepat pada masanya.

  2. Indikator MACD terdedah kepada isyarat yang mengelirukan. Berdagang dengan berhati-hati jika aliran naik atau penurunan yang jelas tidak dapat ditentukan.

  3. Mengambil keuntungan dan berhenti kerugian boleh ditetapkan tidak munasabah, mengakibatkan ketidakseimbangan kerugian keuntungan. Parameter perlu disesuaikan mengikut produk yang berbeza.

  4. Risiko keseluruhan adalah kecil, tetapi kedudukan yang terlalu besar dengan leverage tinggi masih boleh membawa kepada kerugian besar.

Arahan untuk Pengoptimuman Strategi

  1. Gabungkan dengan penunjuk lain untuk menentukan trend, mengelakkan isyarat yang mengelirukan dari MACD. Sebagai contoh, gabungkan Bollinger Bands, RSI dll.

  2. Mengoptimumkan nisbah mengambil keuntungan / berhenti kerugian dengan mengira parameter optimum dari data backtest.

  3. Memperluaskan jenis perdagangan yang boleh digunakan untuk strategi, menilai kesan penyesuaian parameter pada produk yang berbeza.

  4. Memperkenalkan algoritma pembelajaran mesin untuk memilih parameter optimum secara dinamik berdasarkan keadaan pasaran yang berbeza.

Kesimpulan

Secara keseluruhan strategi ini sangat sesuai untuk peniaga pemula. Logiknya jelas, ruang pengoptimuman besar, dan risiko boleh dikawal. Dengan menyesuaikan masa pembukaan dan menetapkan nisbah kerugian keuntungan yang munasabah, pulangan yang tinggi dapat dicapai. Pengoptimuman lanjut boleh dibuat untuk menyesuaikan parameter secara dinamik dan menyesuaikan diri dengan persekitaran pasaran yang lebih kompleks.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
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/
// © exlux99

//@version=4
strategy("Very high win rate strategy", overlay=true)


//

fast_length =12
slow_length= 26
src = close
signal_length = 9
sma_source = false
sma_signal = false

// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal

//ma

len=10
srca = input(close, title="Source")
out = hma(srca, len)

fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2000, title = "From Year", minval = 1970)
 //monday and session 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2021, title = "To Year", minval = 1970)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true


timeinrange(res, sess) => time(res, sess) != 0

// = input('0900-0915', type=input.session, title="My Defined Hours")
myspecifictradingtimes = '0900-0915'
exittime = '2100-2115'

optionmacd=true


entrytime = time(timeframe.period, myspecifictradingtimes) != 0
exit = time(timeframe.period, exittime) != 0     

if(time_cond and optionmacd )
    if(close > open and close[1] > open[1] and close[2] > open[2] and entrytime  and crossover(hist,0))
        strategy.entry("long",1)
    if(close< open and close[1] < open[1] and close[2] < open[2] and entrytime and crossunder(hist,0))
        strategy.entry("short",0)      


tp = input(0.0003, title="tp")
//tp = 0.0003
sl = input(1.0 , title="sl")
//sl = 1.0
strategy.exit("closelong", "long" , profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick, alert_message = "closelong")
strategy.exit("closeshort", "short" , profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick, alert_message = "closeshort")


Lebih lanjut