Стратегия пересечения скользящих средних показателей Галилео Галилея - это стратегия торговли, основанная на скользящих средних показателях. Она генерирует торговые сигналы путем вычисления экспоненциальной скользящей средней (EMA) за определенный период и сравнения перекрестных показателей между EMA и ценой. Сигналы продажи генерируются, когда цена падает ниже EMA сверху вниз, а сигналы покупки возникают, когда цена превышает EMA снизу вверх.
Основой стратегии Galileo Galilei
EMA сегодня = (Цена закрытия сегодня × Коэффициент сглаживания) + (EMA вчера × (1 − Коэффициент сглаживания))
где коэффициент сглаживания α = (2/(количество периодов + 1))
Стратегия динамически рассчитывает EMA на основе параметров периода ввода пользователя. Затем она сравнивает перекрестки между ценой и EMA для определения торговых сигналов:
Когда цена падает ниже средней средней средней стоимости сверху вниз, генерируется сигнал продажи для короткой торговли.
Когда цена выходит за пределы EMA снизу, запускается сигнал покупки для длинной торговли.
Стратегия также отображает линию EMA на графике, а также знаки стрелки, указывающие на сигналы покупки и продажи.
Стратегия пересечения скользящих средних показателей Galileo Galilei имеет следующие преимущества:
Потенциальные риски этой стратегии включают:
Некоторые способы оптимизации стратегии:
Включить другие показатели для построения комплексной стратегии повышения надежности против ложных сигналов.
Добавить механизмы остановки потери, такие как отслеживание остановки потери или стоп-потеря на основе процента для контроля суммы потери по одной сделке.
Проверьте EMA с различными комбинациями параметров, чтобы найти оптимальные настройки.
Оценить логику реинтрота, чтобы зафиксировать отскоки после первоначальных переворотов цен, улучшая рентабельность.
Galileo Galilei's пересечение скользящей средней - это простая, но практичная стратегия с четкой логикой и легкой работоспособностью.
/*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)