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.
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.
Mengira garisan pantas, garisan perlahan dan perbezaan MACD. parameter garisan pantas adalah 12, parameter garisan perlahan adalah 26, dan parameter garisan isyarat adalah 9.
Waktu dagangan ditetapkan untuk 09:00-09:15 setiap hari. Dalam tempoh masa ini, masuk ke pasaran jika syarat-syarat berikut dipenuhi:
Ambil keuntungan ditetapkan kepada 0.3 pip, dan stop loss ditetapkan kepada 100 pip.
Tutup semua kedudukan pada jam 21:00-21:15.
Menggunakan gabungan penunjuk pelbagai jangka masa untuk menilai arah trend secara komprehensif dan meningkatkan ketepatan keputusan.
Mengoptimumkan masa perdagangan untuk mengelakkan tempoh turun naik pasaran yang tinggi, mengurangkan risiko stop loss yang tidak perlu.
Tetapkan nisbah yang munasabah untuk mengambil keuntungan dan menghentikan kerugian untuk memaksimumkan kunci keuntungan dan mengelakkan pembesaran kerugian.
Secara keseluruhan, strategi ini mempunyai kadar kemenangan yang sangat tinggi dan sesuai untuk perdagangan jangka pendek yang kerap.
Waktu dagangan agak tetap, mungkin terlepas peluang dagangan jika tidak dapat memasuki pasaran tepat pada masanya.
Indikator MACD terdedah kepada isyarat yang mengelirukan. Berdagang dengan berhati-hati jika aliran naik atau penurunan yang jelas tidak dapat ditentukan.
Mengambil keuntungan dan berhenti kerugian boleh ditetapkan tidak munasabah, mengakibatkan ketidakseimbangan kerugian keuntungan. Parameter perlu disesuaikan mengikut produk yang berbeza.
Risiko keseluruhan adalah kecil, tetapi kedudukan yang terlalu besar dengan leverage tinggi masih boleh membawa kepada kerugian besar.
Gabungkan dengan penunjuk lain untuk menentukan trend, mengelakkan isyarat yang mengelirukan dari MACD. Sebagai contoh, gabungkan Bollinger Bands, RSI dll.
Mengoptimumkan nisbah mengambil keuntungan / berhenti kerugian dengan mengira parameter optimum dari data backtest.
Memperluaskan jenis perdagangan yang boleh digunakan untuk strategi, menilai kesan penyesuaian parameter pada produk yang berbeza.
Memperkenalkan algoritma pembelajaran mesin untuk memilih parameter optimum secara dinamik berdasarkan keadaan pasaran yang berbeza.
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")