Стратегия быстрого трейдинга с низкой задержкой

Автор:Чао Чжан, Дата: 2023-12-25 14:24:38
Тэги:

Стратегия называется Low Lag Triple Moving Average Fast Trading Strategy. Ее основная идея заключается в определении входов и выходов на основе золотого креста и смертного креста трех скользящих средних с различными параметрами и дизайном низкой задержки.

Принцип стратегии

Стратегия использует три скользящих средних с низким задержкой, включая 12-, 26- и 55-периодную низкозадержную TEMA. Эти три MAs представляют собой быстрые, средние и медленные MAs. Когда быстрый MA пересекает средний MA, генерируется сигнал покупки. Когда быстрый MA пересекает ниже среднего MA, генерируется сигнал продажи. Используя перекресток трех MAs для определения точек входа и выхода на рынок, можно достичь высокочастотного трейдинга.

Функция шаблона tema() определена в коде для расчета TEMA с низким отставанием. Его формула расчета: TEMA = 2*EMA - EMA(EMA). Для расчета используется двойная экспоненциальная скользящая средняя EWMA. По сути, это двойная сглаженная EMA с основным достоинством значительного снижения эффекта отставания. Таким образом, она может быстрее реагировать на изменения цен и улучшать своевременность торговых сигналов.

В частности, правила входа в эту стратегию следуют: когда быстрый MA пересекает средний MA, а быстрый MA выше медленного MA, генерируется сигнал покупки. Когда быстрый MA пересекает средний MA, а быстрый MA ниже медленного MA, генерируется сигнал продажи.

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

Самое большое преимущество этой стратегии заключается в том, что входы и выходы определяются быстро и точно. Дизайн трех МА с низким задержкой значительно уменьшает эффект задержки, чтобы они могли быстро реагировать на изменения цен. Кроме того, использование перекрестка трех МА для определения сигналов избегает ложных сигналов.

Кроме того, эта стратегия подходит для высокочастотного трейдинга для получения прибыли от краткосрочных колебаний цен.

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

Наибольший риск заключается в том, что могут возникнуть ультракороткосрочные сдвиги. Из-за высокой чувствительности к изменениям цены от дизайна с низким задержкой некоторые рынки могут испытывать высокочастотные колебания. Тогда с большой вероятностью произойдут сдвиги.

Кроме того, высокочастотная торговля требует оплаты относительно высоких комиссионных и расходов на скольжение.

Кроме того, эта стратегия требует, чтобы трейдер имел сильные возможности мониторинга в режиме реального времени, чтобы своевременно обновлять стоп-лосс и получать прибыль.

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

Стратегия может быть оптимизирована из следующих аспектов:

  1. Оптимизировать параметры периодов трех МА, чтобы лучше соответствовать различным характеристикам рынка.

  2. Добавить индикаторы волатильности или показатели объема, чтобы подтвердить сигналы и избежать сбоев на различных рынках.

  3. Включить больше факторов для создания динамических механизмов остановки отслеживания.

  4. Оптимизировать размер позиций для контроля рисков, связанных с одной торговлей, с помощью методов управления деньгами.

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

Заключение

Это низкозадержная трехъяручная среднедвижная стратегия быстрого трейдинга. Благодаря ее низкозадержному дизайну можно достичь быстрых входов и выходов, что подходит для высокочастотного трейдинга для захвата краткосрочных возможностей. Наибольшее преимущество этой стратегии заключается в том, что ее определение сигнала быстрое и точное.
[/trans]


/*backtest
start: 2023-11-24 00:00:00
end: 2023-12-24 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("scalping low lag tema etal", shorttitle="Scalping tema",initial_capital=10000, overlay=true)
mav = input(title="Moving Average Type", defval="temadelay", options=["nkclose", "ema", "emadelay", "fastema", "tema", "temadelay"])
lenb = 3
N = input(8)
K = input(1.2)
fracCap = input(1.0)
in = close + K*mom(close,N)
source = close
length = 8
sigma  = 12.0
offset = 0.9
p = 4
// length = 10
// sigma  = 6.0
// offset = 0.85
tema(src,len) => fastemaOut = 2*ema(src, len) - ema(ema(src, len), len)


a = 0.0
b = 0.0
c = 0.0
if mav == "nkclose"
    a := ema(in, 12)
    b := a[1]
    c := a[2]
if mav == "ema"
    a := ema(close, 12)
    b := ema(close, 26)
    c := ema(close, 55)
if mav == "emadelay"
    a := ema(close, 12)
    b := a[1]
    c := a[2]
if mav == "fastema"
    a := ema(in, 12)
    b := ema(in, 26)
    c := ema(in, 55)
if mav == "tema"
    a := tema(close, 12)
    b := tema(close, 26)
    c := tema(close, 55)
if mav == "temadelay"
    a := tema(close, 12)
    b := a[1]
    c := a[2]

TP = input(200)
SL = input(130)
TS = input(1)
// TP = input(50)
// SL = input(110)
// TS = input(1)

orderSize = floor((fracCap * strategy.equity) / close)
long = cross(a, c) and a > b
short = cross(a, c) and a < b
plot(a, title="12", color=color.red, linewidth=1)
plot(b, title="26", color=color.blue, linewidth=1)
plot(c, title="55", color=color.green, linewidth=1)

strategy.entry("Long", strategy.long, qty=orderSize,  when=long)
strategy.entry("Short", strategy.short, qty=orderSize,  when=short)
// strategy.entry("Long", strategy.long,  100.0, when=long)
// strategy.entry("Short", strategy.short,  100.0, when=short)
// strategy.entry("Long", strategy.long, 100.0, when=long)
// strategy.entry("Short", strategy.short, 100.0, when=short)
// strategy.entry("Long", strategy.long, 1.0, when=long)
// strategy.entry("Short", strategy.short, 1.0, when=short)

TPP = (TP > 0) ? TP : na
SLP = (SL > 0) ? SL : na
TSP = (TS > 0) ? TS : na
// strategy.exit("Close Short", "Short", qty_percent=100, profit=TPP, loss=SLP, trail_points=TSP, when=long)
// strategy.exit("Close Long", "Long", qty_percent=100, profit=TPP, loss=SLP, trail_points=TSP, when=short)
// strategy.exit("Close Long", "Long", qty_percent=100, profit=TPP, loss=SLP, trail_points=TSP, when=long[1])
// strategy.exit("Close Short", "Short", qty_percent=100, profit=TPP, loss=SLP, trail_points=TSP, when=short[1])
strategy.exit("Close Long", "Long", qty_percent=100, profit=TPP, loss=SLP, trail_points=TSP)
strategy.exit("Close Short", "Short", qty_percent=100, profit=TPP, loss=SLP, trail_points=TSP)


Больше