Chiến lược chuyển động trung bình của Galileo Galilei là một chiến lược giao dịch dựa trên đường trung bình chuyển động. Nó tạo ra tín hiệu giao dịch bằng cách tính toán đường trung bình chuyển động theo cấp số nhân (EMA) trong một khoảng thời gian nhất định và so sánh đường chéo giữa đường EMA và giá.
Cốt lõi của chiến lược Galileo Galilei nằm ở trung bình động theo cấp số nhân (EMA). EMA là một loại trung bình động đặt nhiều trọng lượng hơn vào giá gần đây. Công thức tính toán của nó là:
EMA ngày hôm nay = (Giá đóng ngày hôm nay × Nhân tố làm mịn) + (EMA ngày hôm qua × (1 − Nhân tố làm mịn))
Trong đó hệ số làm mịn α = (2/(số thời gian + 1))
Chiến lược này tính toán EMA dựa trên các thông số thời gian đầu vào của người dùng. sau đó nó so sánh các giao thoa giữa giá và EMA để xác định tín hiệu giao dịch:
Khi giá giảm xuống dưới đường EMA từ trên xuống, một tín hiệu bán được tạo ra để giao dịch ngắn.
Khi giá vượt qua đường EMA từ dưới, tín hiệu mua được kích hoạt để giao dịch dài.
Chiến lược cũng vẽ đường EMA trên biểu đồ, cùng với các dấu mũi tên chỉ ra tín hiệu mua và bán.
Chiến lược chéo trung bình động của Galileo Galilei có những lợi thế sau:
Các rủi ro tiềm ẩn của chiến lược này bao gồm:
Một số cách để tối ưu hóa chiến lược:
Kết hợp các chỉ số khác để xây dựng một chiến lược tổng hợp để tăng độ bền chống lại các tín hiệu sai.
Thêm các cơ chế dừng lỗ như dừng lỗ sau hoặc dừng lỗ dựa trên tỷ lệ phần trăm để kiểm soát số tiền lỗ giao dịch duy nhất.
Kiểm tra EMA với các kết hợp tham số khác nhau để tìm các thiết lập tối ưu.
Đánh giá logic nhập lại để nắm bắt sự phục hồi sau khi đảo ngược giá ban đầu, cải thiện lợi nhuận.
Galileo Galilei
/*backtest start: 2022-12-11 00:00:00 end: 2023-12-17 00:00:00 period: 1d basePeriod: 1h 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/ // © armigoldman //@version=3 strategy(title="Galileo Galilei", shorttitle="Galileo Galilei", overlay=true, initial_capital = 100000, default_qty_type=strategy.cash, default_qty_value = 100000) len = input(11, minval=1, title="Length") src = input(open, title="Source") out = ema(src, len) plot(out, title="EMA", color=yellow) //last8h = highest(close, 8) //lastl8 = lowest(close, 8) //plot(last8h, color=red, linewidth=2) //plot(lastl8, color=green, linewidth=2) //////////////////////////////////////////////////////////////////////////////// // BACKTESTING RANGE // From Date Inputs 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=2020, title="From Year", minval=1970) // To Date Inputs toDay = input(defval=1, 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) // Calculate start/end date and time condition startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true bearish = cross(close, out) == 1 and close[1] > close bullish = cross(close, out) == 1 and close[1] < close plotshape(bearish, color=white, style=shape.arrowdown, text="BEAR", location=location.abovebar) plotshape(bullish, color=white, style=shape.arrowup, text="BULL", location=location.belowbar) buy = if cross(close, out) == 1 and close[1] < close strategy.entry("BUY", strategy.long, when=time_cond) //strategy.close_all(when=bearish) // strategy.exit("exit", "Long", profit =, loss = 35) sell = if cross(close, out) == 1 and close[1] > close strategy.entry("SELL", strategy.short, when=time_cond) //sell = if bearish //strategy.close_all(when=bullish) // strategy.exit("exit", "Long", profit = bullish, loss = 100) profit = strategy.netprofit if not time_cond strategy.close_all() //plotshape(true, style=shape.triangleup, location=location.abovebar)