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