Chiến lược này dựa trên chỉ số MACD và đường dài và đường đóng để thực hiện giao dịch dài hạn của cặp tiền tệ. Nó mở các vị trí khi đường chỉ số MACD vượt qua đường dài và đóng các vị trí khi đường chỉ số MACD vượt qua đường đóng. Chiến lược dừng lỗ cũng được cấu hình.
Chiến lược này sử dụng các đường nhanh và chậm của chỉ số MACD. Đường nhanh có tham số EMA 12 ngày và đường chậm có tham số EMA 26 ngày. Sự khác biệt giữa hai đường là biểu đồ MACD. Ngoài ra, EMA 9 ngày được tính như đường tín hiệu. Nó đi dài khi biểu đồ MACD vượt trên 0,04 và đóng các vị trí dài khi vượt dưới 0,015.
Đặc biệt, chiến lược đầu tiên tính toán đường nhanh, đường chậm và đường tín hiệu của chỉ số MACD. Sau đó đường dài được đặt ở -0.04, đường đóng được đặt ở 0.015. Nếu biểu đồ MACD hiện tại lớn hơn đường dài, nó sẽ đi dài. Nếu biểu đồ MACD hiện tại nhỏ hơn đường đóng, nó sẽ đóng vị trí dài. Ngoài ra, đường dừng lỗ được đặt ở mức 95% giá nhập cảnh.
Chiến lược có những lợi thế sau:
Chiến lược này cũng có một số rủi ro:
Các phương pháp như điều chỉnh các tham số, kết hợp các chỉ số khác có thể được sử dụng để tối ưu hóa và cải thiện.
Chiến lược có thể được tối ưu hóa trong các khía cạnh sau:
Kiểm tra các kết hợp tham số MACD khác nhau để tìm các tham số tốt hơn
Đường nhanh, đường chậm, đường tín hiệu với chiều dài khác nhau có thể được thử để tìm kết hợp phù hợp hơn
Hãy thử các chỉ số khác
Các chỉ số như RSI, KD có thể có kết quả rất khác nhau
Tối ưu hóa các thông số đường dài và đường gần
Các thông số phù hợp hơn có thể được tìm thấy thông qua kiểm tra ngược lặp đi lặp lại
Điều chỉnh chiến lược dừng lỗ
Xem xét dừng lại để làm cho dừng lỗ năng động hơn
Thử nghiệm trên các cặp tiền tệ khác nhau
Áp dụng chiến lược cho các cặp tiền khác và xem xét tác động
Tóm lại, đây là một chiến lược giao dịch dài hạn tổng thể rất đơn giản và trực quan. Nó đánh giá điều kiện thị trường bằng chỉ số MACD và thiết lập các tiêu chí lọc kép để giảm giao dịch sai. Kiểm soát rủi ro cũng được cấu hình thông qua dừng lỗ. Logic rõ ràng và chiếm dụng tài nguyên thấp. Nó dễ hiểu và thực hiện, đáng khuyến cáo. Tất nhiên, vẫn còn nhiều chỗ để cải thiện thông qua điều chỉnh tham số, thay đổi chỉ số và các phương tiện khác, để làm cho chiến lược trở nên nổi bật hơn.
/*backtest start: 2024-01-04 00:00:00 end: 2024-01-11 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(shorttitle = "GBPJPY MACD", title = "GBPJPY MACD") fastMA = input(title="Fast moving average", defval = 12, minval = 7) slowMA = input(title="Slow moving average", defval = 26, minval = 7) lastColor = yellow [currMacd,_,_] = macd(close[0], fastMA, slowMA, 9) [prevMacd,_,_] = macd(close[1], fastMA, slowMA, 9) plotColor = currMacd > 0 ? currMacd > prevMacd ? lime : green : currMacd < prevMacd ? maroon : red plot(currMacd, style = histogram, color = plotColor, linewidth = 3) plot(0, title = "Zero line", linewidth = 1, color = gray) //MACD // Getting inputs fast_length = input(title="Fast Length", defval=12) slow_length = input(title="Slow Length", defval=26) src = input(title="Source", defval=close) signal_length = input(title="Signal Smoothing", minval = 1, maxval = 50, defval =9) sma_source = input(title="Simple MA(Oscillator)", type=bool, defval=false) sma_signal = input(title="Simple MA(Signal Line)", type=bool, defval=false) // Plot colors col_grow_above = #26A69A col_grow_below = #FFCDD2 col_fall_above = #B2DFDB col_fall_below = #EF5350 col_macd = #0094ff col_signal = #ff6a00 // 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 //plot(hist, title="Histogram", style=columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 ) plot(macd, title="MACD", color=col_macd, transp=0) plot(signal, title="Signal", color=col_signal, transp=0) ///END OF MACD //Long and Close Long Lines linebuy = input(title="Enter Long", type=float, defval=-0.04) linesell = input(title="Close Long", type=float, defval=0.015) //Plot Long and Close Long Lines plot(linebuy,color=green),plot(linesell,color=red) //Stop Loss Input sl_inp = input(0.05, title='Stop Loss %', type=float)/100 //Order Conditions longCond = crossover(currMacd, linebuy) exitLong = crossover(currMacd, linesell) stop_level = strategy.position_avg_price * (1 - sl_inp) //Order Entries strategy.entry("long", strategy.long, when=longCond==true) strategy.close("long", when=exitLong==true) strategy.exit("Stop Loss", stop=stop_level)