Chiến lược chéo trung bình động của Galileo Galilei

Tác giả:ChaoZhang, Ngày: 2023-12-18 12:07:07
Tags:

img

Tổng quan

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á.

Chiến lược logic

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:

  1. 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.

  2. 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.

Phân tích lợi thế

Chiến lược chéo trung bình động của Galileo Galilei có những lợi thế sau:

  1. Logic đơn giản dễ hiểu và thực hiện, phù hợp cho người mới bắt đầu.
  2. Phản ứng nhanh hơn với sự thay đổi giá bằng cách sử dụng EMA.
  3. Các tín hiệu chéo rõ ràng mà không bị chém quá mức.
  4. Tính linh hoạt để thích nghi với môi trường thị trường khác nhau bằng cách điều chỉnh các thông số EMA.
  5. Các tín hiệu vào và ra được xác định cung cấp kiểm soát rủi ro.

Phân tích rủi ro

Các rủi ro tiềm ẩn của chiến lược này bao gồm:

  1. Một chiến lược dừng lỗ có thể giúp tối ưu hóa.
  2. Việc dựa vào một chỉ số duy nhất làm cho nó dễ bị thao túng giá.
  3. Hiệu ứng chậm trễ, đặc biệt là sau các sự kiện đột ngột.
  4. Không thể thích nghi với xu hướng giá đơn phương kéo dài, một hạn chế phổ biến giữa các chiến lược trung bình động.

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

Một số cách để tối ưu hóa chiến lược:

  1. 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.

  2. 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.

  3. 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.

  4. Đá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.

Kết luận

Galileo Galilei crossover trung bình động là một chiến lược đơn giản nhưng thực tế với logic rõ ràng và dễ dàng vận hành. Nó phù hợp với các nhà giao dịch lượng mới. Với những cải tiến liên tục, hiệu suất của nó có thể trở nên ngày càng vượt trội theo thời gian.


/*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)


Thêm nữa