Strategi MACD Multi Timeframe yang Dioptimalkan Waktu dan Ruang

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

img

Gambaran umum

Strategi ini mengoptimalkan parameter indikator MACD, dikombinasikan dengan moving average, price action dan waktu trading tertentu untuk mencapai strategi trading forex tingkat kemenangan tinggi.

Logika Strategi

  1. Gunakan 3 K-line untuk menilai tren harga. Jika harga penutupan dari 3 K-line terakhir lebih tinggi dari harga pembukaan, itu dinilai sebagai tren naik; jika harga penutupan dari 3 K-line terakhir lebih rendah dari harga pembukaan, itu dinilai sebagai tren turun.

  2. Menghitung garis cepat, garis lambat dan perbedaan MACD. parameter garis cepat adalah 12, parameter garis lambat adalah 26, dan parameter garis sinyal adalah 9.

  3. Waktu perdagangan ditetapkan untuk 09:00-09:15 setiap hari. Dalam periode waktu ini, masuk ke pasar jika kondisi berikut terpenuhi:

    • Pergi panjang ketika tren naik bertepatan dengan perbedaan MACD melintasi di atas 0
    • Pergi pendek ketika tren penurunan bertepatan dengan penyeberangan selisih MACD di bawah 0
  4. Take profit ditetapkan menjadi 0,3 pips, dan stop loss ditetapkan menjadi 100 pips.

  5. Tutup semua posisi selama 21:00-21:15.

Keuntungan dari Strategi

  1. Menggunakan kombinasi indikator multi-frame waktu untuk menilai secara komprehensif arah tren dan meningkatkan akurasi keputusan.

  2. Mengoptimalkan waktu perdagangan untuk menghindari periode volatilitas pasar yang tinggi, mengurangi risiko stop loss yang tidak perlu.

  3. Tetapkan rasio yang wajar untuk mengambil keuntungan dan stop loss untuk memaksimalkan profit lock dan menghindari pembesaran kerugian.

  4. Secara keseluruhan, strategi ini memiliki tingkat kemenangan yang sangat tinggi dan cocok untuk perdagangan jangka pendek yang sering.

Risiko dari Strategi

  1. Waktu perdagangan relatif tetap, mungkin kehilangan peluang perdagangan jika tidak dapat memasuki pasar tepat waktu.

  2. Indikator MACD rentan terhadap sinyal yang menyesatkan. Berdagang dengan hati-hati jika tren naik atau turun yang jelas tidak dapat ditentukan.

  3. Mengambil keuntungan dan stop loss dapat ditetapkan tidak wajar, mengakibatkan ketidakseimbangan kerugian keuntungan. parameter perlu disesuaikan sesuai dengan produk yang berbeda.

  4. Risiko keseluruhan kecil, tapi posisi yang terlalu besar dengan leverage tinggi masih bisa menyebabkan kerugian besar.

Arahan untuk Optimasi Strategi

  1. Menggabungkan dengan indikator lain untuk menentukan tren, menghindari sinyal yang menyesatkan dari MACD. Misalnya, menggabungkan Bollinger Bands, RSI dll.

  2. Mengoptimalkan rasio take profit/stop loss dengan menghitung parameter optimal dari data backtest.

  3. Memperluas varietas perdagangan yang berlaku untuk strategi, mengevaluasi efek pengaturan parameter pada produk yang berbeda.

  4. Memperkenalkan algoritma pembelajaran mesin untuk memilih parameter optimal secara dinamis berdasarkan kondisi pasar yang bervariasi.

Kesimpulan

Secara keseluruhan strategi ini sangat cocok untuk trader pemula. Logika jelas, ruang optimasi besar, dan risiko dapat dikendalikan. Dengan menyesuaikan waktu pembukaan dan menetapkan rasio kerugian keuntungan yang wajar, pengembalian yang tinggi dapat dicapai. Optimasi lebih lanjut dapat dilakukan untuk menyesuaikan parameter secara dinamis dan beradaptasi dengan lingkungan pasar 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 banyak