
Chiến lược này tạo ra chiến lược giao dịch ngoại hối có tỷ lệ thắng cao bằng cách tối ưu hóa các tham số của chỉ số MACD, kết hợp với moving average, hành động giá và thời gian giao dịch cụ thể.
Sử dụng 3 đường K để xác định xu hướng giá. Nếu giá đóng cửa 3 đường K cuối cùng cao hơn giá mở cửa, thì được đánh giá là xu hướng tăng; Nếu giá đóng cửa 3 đường K cuối cùng thấp hơn giá mở cửa, thì được đánh giá là xu hướng giảm.
Tính toán độ chênh lệch của đường nhanh, đường chậm và MACD. Các tham số đường nhanh là 12, tham số đường chậm là 26 và tham số đường tín hiệu là 9.
Thời gian giao dịch được thiết lập là 09:00-09:15 mỗi ngày. Trong khoảng thời gian này, nếu đáp ứng các điều kiện sau:
Stop Loss được thiết lập ở 0.3 điểm và Stop Loss là 100 điểm.
Khoảng từ 21:00 đến 21:15 là khoảng trống.
Sử dụng các chỉ số đa khung thời gian để đánh giá tổng hợp các xu hướng và cải thiện độ chính xác của quyết định.
Tối ưu hóa thời gian giao dịch, tránh biến động mạnh mẽ của thị trường, giảm rủi ro dừng lỗ không cần thiết.
Thiết lập tỷ lệ dừng lỗ hợp lý, tối đa hóa lợi nhuận và tránh thiệt hại.
Nhìn chung, chiến lược này có tỷ lệ chiến thắng cao, phù hợp với các giao dịch ngắn và thường xuyên.
Thời gian giao dịch của chiến lược là khá cố định, nếu không vào sân kịp thời, bạn có thể bỏ lỡ cơ hội giao dịch.
Chỉ số MACD dễ gây ra tín hiệu sai lệch, nên sử dụng thận trọng nếu không thể xác định được xu hướng tăng hoặc giảm rõ ràng.
Cài đặt điểm dừng lỗ là không hợp lý, có thể gây ra sự mất cân bằng tỷ lệ lợi nhuận, cần điều chỉnh tham số theo các giống khác nhau.
Nhìn chung, rủi ro chiến lược nhỏ hơn. Tuy nhiên, trong trường hợp có đòn bẩy cao, vị trí quá lớn cũng có thể gây ra tổn thất lớn hơn.
Có thể kết hợp các chỉ số khác để đánh giá xu hướng, tránh MACD tạo ra tín hiệu sai. Ví dụ, kết hợp các chỉ số như đường Brin, RSI để sử dụng kết hợp.
Có thể tối ưu hóa tỷ lệ dừng lỗ bằng cách tính toán tham số tối ưu bằng dữ liệu đo đạc.
Có thể mở rộng các loại giao dịch mà chiến lược áp dụng, đánh giá hiệu quả điều chỉnh tham số của các loại khác nhau.
Có thể giới thiệu các thuật toán học máy để chọn tham số tối ưu theo các tình huống thị trường khác nhau, để thực hiện điều chỉnh động.
Chiến lược này nói chung rất phù hợp với các nhà giao dịch mới bắt đầu, tư duy chiến lược rõ ràng, không gian tối ưu hóa tham số lớn, rủi ro có thể kiểm soát được. Bằng cách tùy chỉnh thời gian mở vị trí và thiết lập tỷ lệ thua lỗ hợp lý, có thể đạt được tỷ lệ lợi nhuận cao hơn.
/*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")