Стратегия пересечения скользящей средней Галилея

Автор:Чао Чжан, Дата: 2023-12-18 12:07:07
Тэги:

img

Обзор

Стратегия пересечения скользящих средних показателей Галилео Галилея - это стратегия торговли, основанная на скользящих средних показателях. Она генерирует торговые сигналы путем вычисления экспоненциальной скользящей средней (EMA) за определенный период и сравнения перекрестных показателей между EMA и ценой. Сигналы продажи генерируются, когда цена падает ниже EMA сверху вниз, а сигналы покупки возникают, когда цена превышает EMA снизу вверх.

Логика стратегии

Основой стратегии Galileo Galilei является экспоненциальная скользящая средняя (EMA).

EMA сегодня = (Цена закрытия сегодня × Коэффициент сглаживания) + (EMA вчера × (1 − Коэффициент сглаживания))

где коэффициент сглаживания α = (2/(количество периодов + 1))

Стратегия динамически рассчитывает EMA на основе параметров периода ввода пользователя. Затем она сравнивает перекрестки между ценой и EMA для определения торговых сигналов:

  1. Когда цена падает ниже средней средней средней стоимости сверху вниз, генерируется сигнал продажи для короткой торговли.

  2. Когда цена выходит за пределы EMA снизу, запускается сигнал покупки для длинной торговли.

Стратегия также отображает линию EMA на графике, а также знаки стрелки, указывающие на сигналы покупки и продажи.

Анализ преимуществ

Стратегия пересечения скользящих средних показателей Galileo Galilei имеет следующие преимущества:

  1. Простая логика, которую легко понять и реализовать, подходящая для новичков.
  2. Быстрее реагировать на изменения цен с помощью EMA.
  3. Чистые перекрестные сигналы без чрезмерных ударов.
  4. Гибкость адаптации к различным рыночным условиям путем корректировки параметров EMA.
  5. Определенные сигналы входа и выхода обеспечивают контроль рисков.

Анализ рисков

Потенциальные риски этой стратегии включают:

  1. При высокой волатильности цены может возникнуть больше ложных сигналов.
  2. Опираясь на один индикатор, он становится уязвимым для манипулирования ценами.
  3. Эффект задержки, особенно после внезапных событий.
  4. Невозможность адаптироваться к длительному одностороннему ценовому тренду, общее ограничение среди стратегий скользящих средних.

Руководство по оптимизации

Некоторые способы оптимизации стратегии:

  1. Включить другие показатели для построения комплексной стратегии повышения надежности против ложных сигналов.

  2. Добавить механизмы остановки потери, такие как отслеживание остановки потери или стоп-потеря на основе процента для контроля суммы потери по одной сделке.

  3. Проверьте EMA с различными комбинациями параметров, чтобы найти оптимальные настройки.

  4. Оценить логику реинтрота, чтобы зафиксировать отскоки после первоначальных переворотов цен, улучшая рентабельность.

Заключение

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)


Больше