Chiến lược giao dịch giao dịch chéo với chỉ số MACD nhiều khung thời gian

Tác giả:ChaoZhang, Ngày: 2024-02-19 11:03:54
Tags:

img

Tổng quan

Chiến lược giao dịch chéo chỉ số MACD nhiều khung thời gian là một chiến lược theo xu hướng. Nó tạo ra tín hiệu giao dịch khi giá vượt qua chỉ số MACD được tính toán với các thiết lập tham số khác nhau, cho phép giao dịch tự động của cổ phiếu, chỉ số, ngoại hối và các sản phẩm tài chính khác.

Chiến lược logic

Chiến lược này tính toán 3 đường trung bình động đồng thời: một đường trung bình động được cân nhắc WMA và hai đường trung bình động theo cấp số nhân EMA. Các tham số của ba đường trung bình động này được đặt khác nhau, lần lượt là 25 ngày, 50 ngày và 100 ngày. Điều này cho phép đường trung bình động bao gồm các biến động giá trong các khoảng thời gian khác nhau.

Sau khi các đường trung bình động được tính toán, chiến lược theo dõi xem giá có phá vỡ hoặc giảm xuống dưới bất kỳ đường trung bình động nào không.

Ví dụ, tín hiệu mua được tạo ra khi giá trên tất cả 3 đường trung bình động cùng một lúc. tín hiệu bán được tạo ra khi giá giảm xuống dưới tất cả 3 đường trung bình động cùng một lúc. Theo dõi giá tương đối với đường trung bình động có thể xác định các điểm đảo ngược của chuyển động giá.

Bằng cách đánh giá chéo với các chỉ số nhiều khung thời gian, một số tín hiệu giả có thể được lọc ra, làm cho tín hiệu giao dịch đáng tin cậy hơn.

Phân tích lợi thế

  • Sử dụng phân tích nhiều khung thời gian để lọc các tín hiệu sai
  • Dễ dàng tối ưu hóa các thông số để thích nghi với điều kiện thị trường trong các giai đoạn khác nhau
  • Có thể áp dụng cho nhiều sản phẩm bao gồm cổ phiếu, chỉ số, ngoại hối, v.v.

Phân tích rủi ro

  • Sự chậm trễ của chỉ số có thể bỏ lỡ các cơ hội ngắn hạn
  • Rủi ro mất mát khi mức giá không duy trì
  • Fine tune PARAMETERS sau đó để tối ưu hóa dừng lỗ và lấy lợi nhuận

Hướng dẫn tối ưu hóa

Chiến lược có thể được tối ưu hóa trong các khía cạnh sau:

  1. Tối ưu hóa các khoảng thời gian trung bình động để thích nghi với nhiều chu kỳ thị trường hơn
  2. Thêm các chỉ số kỹ thuật khác để lọc, chẳng hạn như RSI cho quá mua và quá bán
  3. Thêm cơ chế dừng mất mát, có thể sử dụng chỉ báo ATR cho khoảng cách dừng
  4. Có thể mở rộng sang các sản phẩm khác như tương lai, tối ưu hóa các thông số

Tóm lại

Chiến lược giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch.


/*backtest
start: 2024-01-19 00:00:00
end: 2024-02-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("TC - MACDoscillator v2", overlay=true)
// ___________      .__                   _________               .__  __         .__   
// \__    ___/____  |  |    ____   ____   \_   ___ \_____  ______ |__|/  |______  |  |  
//   |    |  \__  \ |  |   / ___\ /  _ \  /    \  \/\__  \ \____ \|  \   __\__  \ |  |  
//   |    |   / __ \|  |__/ /_/  >  <_> ) \     \____/ __ \|  |_> >  ||  |  / __ \|  |__
//   |____|  (____  /____/\___  / \____/   \______  (____  /   __/|__||__| (____  /____/
//                \/     /_____/                  \/     \/|__|                 \/      
//
// MACDoscillator Strategy v2
// Josh Breitfeld 2016
//

/// INPUTS START ///

//tradeSize = input(title="Shares Per Trade",  defval=2500, step=1)
WMALength = input(title="WMA Length",  defval=25, step=1)
EMA1Length = input(title="EMA1 Length",  defval=50, step=1)
EMA2Length = input(title="EMA2 Length",  defval=100, step=1)
//security = input(title="Alternate Security", type=string, defval="SPX500")
//inverse = input(title="Inverse Signals", type=bool, defval=true)

/// INPUTS END ///

/// ALGORITHM START ///

/// Define calculations
WMA = wma(close,WMALength)
EMA1 = ema(close,EMA1Length)
EMA2 = ema(close,EMA2Length)

/// Grab values from alternate security
dWMA = WMA
dEMA1 = EMA1
dEMA2 = EMA2

aClose = close

/// Crossover signal system

/// Long crosses
lc1 = aClose > dWMA ? true : false
lc2 = aClose > dEMA1 ? true : false
lc3 = aClose > dEMA2 ? true: false

/// Short crosses
sc1 = aClose < dWMA ? true : false
sc2 = aClose < dEMA1 ? true : false
sc3 = aClose < dEMA2 ? true : false

//plot(lc1,color=green)
//plot(lc2,color=green)
//plot(lc3,color=green)
//plot(sc1,color=red)
//plot(sc2,color=red)
//plot(sc3,color=red)


/// ALGO ORDER CONDITIONS START ///

pBuyToOpen = (lc1 and lc2 and lc3 ? true : false)
pSellToOpen = (sc1 and sc2 and sc3 ?  true : false)
pSellToClose = (lc1 ? true : false) and not pBuyToOpen
pBuyToClose = (sc1 ? true : false) and not pSellToOpen

//plot(pBuyToOpen,color=lime)
//plot(pBuyToClose,color=lime)
//plot(pSellToOpen,color=red)
//plot(pSellToClose,color=red)
/// INVERT SIGNALS

//buyToOpen = inverse ? -pBuyToOpen : pBuyToOpen
//sellToOpen = inverse ? -pBuyToOpen : pSellToOpen
//sellToClose = inverse ? -pSellToClose : pSellToClose
//buyToClose = inverse ? -pBuyToClose : pBuyToClose

/// ALGO ORDER CONDITIONS END ///

/// ALGORITHM END ///

/// DEFINE PLOTS ///

plot(dWMA,"WMA",lime,1,line)
plot(dEMA1,"EMA1",blue,2,line)
plot(dEMA2,"EMA2",red,3,line)
//plot(aClose,"Close",orange,4,line)

/// PLOTS END ///

/// ORDER BLOCK ///

    //strategy.entry("My Long Entry Id", strategy.long)

/// OPENING ORDERS START ///
if(pBuyToOpen) 
    strategy.entry("BTO", strategy.long, comment="BTO")
if(pSellToOpen) 
    strategy.entry("STO", strategy.short, comment="STO")

/// OPENING ORDERS END ///

/// CLOSING ORDERS START ///
strategy.close("BTO", pBuyToClose)
strategy.close("STO", pSellToClose)
/// CLOSING ORDERS END ///

/// END ORDER BLOCK ///

// Josh Breitfeld - Talgo Capital 2016
/// STRATEGY END ///

Thêm nữa