Стратегия обнаружения трендов на основе принципов ценового действия

Автор:Чао Чжан, Дата: 2023-09-20 11:11:46
Тэги:

Обзор

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

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

Эта стратегия использует M-минутные бары. В соответствии с отношением позиции между ценой закрытия и высокими и низкими точками определяется, принадлежит ли M-минутный K-линейный бар типу высокого закрытия (цена закрытия близка к высокой точке), низкого закрытия (цена закрытия близка к низкой точке) или нормального типа (цена закрытия близка к середине).

В частности, сначала вычислить delt = высокий - закрыть, что является разницей между высокой точкой и ценой закрытия, и высота = высокий - низкий, что является разницей между высоким и низким. Если delt > высота * 2/3, он определяется как высокий тип закрытия. Если delt < высота/3, он определяется как низкий тип закрытия, в противном случае это нормальный тип.

Затем подсчитайте количество высоких закрывающихся, низких закрывающихся и нормальных типов в самых последних NK-линейных барах, вычислите процент, на который они соотносятся, и используйте EMA, чтобы сгладить их в кривые подъема, падения и среднего.

Когда кривая роста пересекает кривую падения, это означает, что высокие закрывающие пороги начинают увеличиваться, что указывает на то, что рынок вступает в восходящую тенденцию, и выпускается длинный сигнал. Когда кривая падения пересекается ниже кривой подъема, это означает, что низкие закрывающие пороги начинают увеличиваться, что указывает на то, что рынок входит в нисходящую тенденцию, и выпускается короткий сигнал.

Преимущества стратегии

Эта стратегия оценки тренда, основанная на ценовых действиях, имеет следующие преимущества:

  1. Принцип ясен и легко понять и освоить.

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

  3. Есть несколько параметров, которые можно настроить, в основном параметры сглаживания N и EMA, которые легко оптимизировать.

  4. Он может широко применяться к любому цифровому активу с определенной ликвидностью, включая акции, валюту, криптовалюты и т. Д.

  5. Результаты обратных тестов хороши, и риски могут быть строго контролированы.

  6. Ее можно дополнительно комбинировать с линиями тренда, уровнями поддержки/сопротивления и другими техническими методами оптимизации.

  7. Стратегии стоп-лосса можно настроить для контроля одиночных потерь.

Риски стратегии

Несмотря на преимущества, стратегия также несет следующие риски:

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

  2. Неправильные настройки параметров N и EMA могут привести к отсутствию тенденций или слишком большому количеству недействительных сигналов.

  3. Судить о направлении тренда только на основе типов K-линии имеет некоторое отставание.

  4. Он не может эффективно отфильтровывать общие графические шаблоны, такие как сближение треугольников, флаги и т. Д., С риском обратного прорыва.

  5. Эта стратегия относится к тенденциям и не может эффективно использовать возможности для изменения.

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

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

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

  1. Комбинировать индикаторы волатильности, такие как ATR, для корректировки параметров N и EMA на основе волатильности рынка, избегая чрезмерных недействительных сигналов на рынках с диапазоном.

  2. Добавьте анализ объема для фильтрации ложных прорывов в условиях большого объема.

  3. Комбинировать линии тренда и ключевые уровни поддержки/сопротивления для определения направления тренда и подлинности прорыва.

  4. Добавьте анализ нескольких временных рамок, чтобы избежать ошибочных оценок в одном временном рамках.

  5. Добавление модулей распознавания моделей для своевременного изменения позиций при появлении значительных сигналов об обратном движении.

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

  7. Добавьте отслеживание стоп-лосса, движение стоп-лосса и т.д., чтобы зафиксировать прибыль и предотвратить возвращение.

Резюме

Эта стратегия оценивает направление тренда на основе ценового действия. Логика ясна и результаты бэкстеста хороши. Она может широко применяться к криптоторговле. Но есть также некоторые ограничения. Она должна быть объединена со стоп-лосом и оптимизациями для снижения риска. В целом эта стратегия обеспечивает простую и практичную идею для квантовой торговли и стоит того, чтобы учиться. С помощью непрерывных оптимизаций и комбинаций можно достичь стабильной избыточной доходности.


/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("trend detect", overlay=false)


lenght = input(34)
ema_smooth = input(5)

delt = high - close
height = high - low

color_plot=black
state=0

if delt > height/3*2
    state := 1
    color_plot := red
else
    if delt > height/3
        state := 2
        color_plot := blue
    else 
        state := 3
        color_plot := green
//plot(state, color=color_plot, style=histogram)
percOfType(len, state_for_count) =>
    num = 0
    for i=1 to len
        if state[i]==state_for_count
            num := num+1
    num/len*100
    
rise = ema(percOfType(lenght, 3), ema_smooth)
fall = ema(percOfType(lenght, 1), ema_smooth)
plot(rise, color = green)
plot(ema(percOfType(lenght, 2), ema_smooth), color = blue)
plot(fall, color = red)
plot(10, color=black)
plot(60, color=black)

longCondition = crossover(rise, fall)
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = crossunder(rise, fall)
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)

Больше