Стратегия тренда на несколько временных рамок

Автор:Чао ЧжанДата: 28-12-2023 11:57:00
Тэги:

img

Обзор

Эта стратегия использует 4 разных временных рамок для определения направления тренда, чтобы обнаружить долгосрочную тенденцию, используя краткосрочную как возможности входа. Когда открытые цены 4 временных рамок (ежедневные, еженедельные, 15-дневные, ежемесячные) все ниже, чем цены закрытия, это определяется как долгосрочный бычий тренд; когда открытые цены 4 временных рамок все выше, чем цены закрытия, это определяется как долгосрочный медвежий тренд. Стратегия откроет позиции при подтверждении долгосрочной тенденции и генерируется краткосрочный сигнал.

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

Эта стратегия использует 4 временных рамок: ежедневный, еженедельный, 15-дневный и ежемесячный.

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

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

После определения долгосрочного направления тренда стратегия будет открывать позиции, когда будет сгенерирован сигнал покупки/продажи в краткосрочной перспективе. То есть эта стратегия использует долгосрочный для определения основного тренда и краткосрочный для решения конкретных возможностей входа.

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

Эта стратегия имеет следующие преимущества:

  1. Многовременное суждение повышает точность

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

  2. Сочетание долгосрочной и краткосрочной гибкой стратегии

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

  3. Простые параметры, легко внедряемые

    Основными показателями оценки этой стратегии являются только цены открытия и закрытия четырех временных рамок.

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

В этой стратегии также есть некоторые риски:

  1. Долгосрочное изменение тенденции

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

  2. Низкие краткосрочные показатели

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

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

Для этой стратегии существуют дополнительные возможности оптимизации:

  1. Добавить стратегию стоп-лосса

    Движение или порядок остановки потери могут быть настроены для контроля максимальной потери.

  2. Оптимизировать краткосрочную стратегию

    Различные краткосрочные показатели могут быть проверены для поиска более подходящих краткосрочных стратегий и улучшения результатов вступления.

  3. Динамическое регулирование положений

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

  4. Комбинировать машинное обучение

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

Заключение

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


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

//@version=2
strategy("[RichG] Easy MTF Strategy", overlay=false)

TF_1_time = input("D", "Timeframe 1")
TF_2_time = input("5D", "Timeframe 2")
TF_3_time = input("15D", "Timeframe 3")
TF_4_time = input("45D", "Timeframe 4")

transaction_size = input(1, "Contract/Share Amount")

src = close, len = 20
out = sma(src, len)
width = 5
upcolor = green
downcolor = red
neutralcolor = blue
linestyle = line

TF_1 = request.security(syminfo.tickerid, TF_1_time, open) < request.security(syminfo.tickerid, TF_1_time, close) ? true:false
TF_1_color = TF_1 ? upcolor:downcolor

TF_2 = request.security(syminfo.tickerid, TF_2_time, open) < request.security(syminfo.tickerid, TF_2_time, close) ? true:false
TF_2_color = TF_2 ? upcolor:downcolor

TF_3 = request.security(syminfo.tickerid, TF_3_time, open) < request.security(syminfo.tickerid, TF_3_time, close) ? true:false
TF_3_color = TF_3 ? upcolor:downcolor


TF_4 = request.security(syminfo.tickerid, TF_4_time, open) < request.security(syminfo.tickerid, TF_4_time, close) ? true:false
TF_4_color = TF_4 ? upcolor:downcolor

TF_global = TF_1 and TF_2 and TF_3 and TF_4 
TF_global_bear = TF_1 == false and TF_2 == false and TF_3 == false and TF_4 == false
TF_global_color = TF_global ? green : TF_global_bear ? red : white
TF_trigger_width = TF_global ? 6 : width

plot(1, style=linestyle, linewidth=width, color=TF_1_color)
plot(5, style=linestyle, linewidth=width, color=TF_2_color)
plot(10, style=linestyle, linewidth=width, color=TF_3_color)
plot(15, style=linestyle, linewidth=width, color=TF_4_color)
plot(25, style=linestyle, linewidth=4, color=TF_global_color)    

exitCondition_Long = TF_global_bear
exitCondition_Short = TF_global

longCondition = TF_global
if (longCondition)
    strategy.entry("MTF_Long", strategy.long, qty=transaction_size, when=strategy.position_size == 0)

shortCondition = TF_global_bear
if (shortCondition)
    strategy.entry("MTF_Short", strategy.short, qty=transaction_size, when=strategy.position_size == 0)
    
strategy.close("MTF_Long", when=exitCondition_Long)    
strategy.close("MTF_Short", when=exitCondition_Short)


Больше