Количественная стратегия торговли, основанная на скользящих средних от высокой до низкой точки

Автор:Чао Чжан, Дата: 2023-09-19 15:53:55
Тэги:

Обзор

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

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

  1. Вычислить 4-периодную простую скользящую среднюю высоких цен.

  2. Вычислить простую скользящую среднюю низких цен за 4 периода.

  3. Продолжите, когда цена закрытия превысит высокую точку SMA.

  4. Пройдите короткий, когда цена закрытия пройдет ниже минимальной точки SMA.

  5. Используйте фиксированные стоп-лосс и прибыль для управления рисками.

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

  1. Использует простые показатели, которые легко понять и реализовать.

  2. Своевременно фиксирует сигналы ценового прорыва от перекрестных SMA.

  3. Может быстро отфильтровать шум и определить тенденции.

  4. Легкие расчеты уменьшают стратегические накладные.

  5. Подходит как базовая стратегия для расширения.

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

  1. Требуются разумные параметры, чтобы избежать перечувствительности.

  2. Не в состоянии справиться с рисками от огромных побегов.

  3. Возможность потерь в диапазоне.

  4. Не может автоматически регулировать остановки и лимиты.

  5. Трудно судить о долгосрочном контексте тренда.

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

  1. Испытать различные параметры на предмет влияния на качество сигнала.

  2. Добавьте фильтры для проверки эффективности прорывов.

  3. Чтобы избежать ловушек, используйте анализ тенденций.

  4. Развивайте динамические остановки и ограничения.

  5. Оптимизируйте остановки, чтобы повысить процент побед.

  6. Проверка прочности в разные периоды времени.

Резюме

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


/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-13 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("HiLo", overlay=true)

// Testing a specific period
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(4, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2017, "Backtest Stop Year")
testStopMonth = input(5, "Backtest Stop Month")
testStopDay = input(1, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false


//HiLo Strategy
length = input(4, minval=0)
displace = input(0, minval=0)
highsma = sma(high, length)
lowsma = sma(low, length)

longCondition = close > highsma[displace]
if (longCondition)
    strategy.entry("long", true)

shortCondition = close < lowsma[displace]
if (shortCondition)
    strategy.entry("short", false)

// Exit seems with a problem. it keeps saying the order's limit (2000) was reached even if I back test it just for a day. 
// If the two lines bellow are commented, then it it works. Anyone? Any idea what's wrong?

// strategy.exit("exit", "long", profit=10, loss=5)
// strategy.exit("exit", "short", profit=10, loss=5)






    

Больше