
Стратегия пересечения равновесия Галилея - это торговая стратегия, основанная на движущихся средних. Стратегия генерирует торговый сигнал, рассчитывая показательную движущуюся среднюю за определенный период и перекрестно сравнивая ее с ценами. Она генерирует сигнал продажи, когда цена пересекает равновесие сверху вниз; она генерирует сигнал покупки, когда цена пересекает равновесие снизу вниз.
В основе стратегии пересечения средних линий Галилея лежит индикаторная скользящая средняя (EMA). EMA - это алгоритм скользящих средних, который имеет тенденцию придавать больший вес недавним ценам. Его формула:
EMA сегодня = (закрытие цены сегодня х равновесие) + (EMA вчера х - равновесие))
Из них, гладкое постоянное α=(2/(циклическое число+1)).
Стратегия рассчитывает EMA в режиме реального времени с помощью длины циклов, введенных пользователем. Затем цена сравнивается с EMA, чтобы определить их пересечение в качестве сигнала покупки и продажи:
Когда цена падает вверх и выходит за пределы EMA, создается сигнал продажи и совершается короткая линия.
Когда цена прорывает EMA с нижнего направления, генерируется сигнал покупки и проводится многооперация.
Эта стратегия одновременно отображает линию EMA и стрелку, которая указывает на сигнал “покупать” или “продавать”.
Стратегия пересечения равномерной линии Галилея имеет следующие преимущества:
Также существуют риски, связанные со стратегией пересечения равномерной линии Галилея:
Стратегия равнолинейного пересечения Галилея может быть оптимизирована в следующих направлениях:
В сочетании с другими показателями, строить комплексную стратегию, избежать ложных сигналов, повысить стабильность. Например, добавление объема торгов, индикатор тренда и т. д.
Добавление стратегии стоп-лосса, установка мобильного стоп-лосса или стоп-лосса в процентах, контроль одиночных потерь.
Тестировать эффективность различных параметров ЭМА, выбирая оптимальные комбинации параметров. Также можно тестировать другие типы скользящих средних.
Оценка возможности включения в механизм возобновления рынка, возобновления рынка после изменения цены, повышения доходности.
Стратегия равнолинейного пересечения Галилея - это простая, практичная, понятная и простая в использовании стратегия торговли, подходящая для новичков, которые хотят количественно торговать. С постоянной оптимизацией и улучшением ее эффективность будет только улучшаться.
/*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)