Стратегия прорыва по тренду


Дата создания: 2023-12-08 17:16:34 Последнее изменение: 2023-12-08 17:16:34
Копировать: 1 Количество просмотров: 573
1
Подписаться
1621
Подписчики

Стратегия прорыва по тренду

Обзор

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

Стратегический принцип

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

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

В частности, основная логика стратегии заключается в следующем:

  1. Максимальные и минимальные цены в течение определенного статистического периода (смещается)
  2. Определить, является ли реальная цена сделки выше максимальной
    1. Если выше, появляется возможность сделать больше, открыть больше позиции в соответствии с ценовым уровнем, установленным параметром ENTRY
    2. Если фактическая цена сделки ниже минимальной цены, возникают возможности для депонирования, открывая позиции на уровне цены, установленной параметром пары EXIT
  3. После открытия позиции сверхвысокой ставки, когда цена ниже цены, установленной параметром на ячейке EXIT
  4. После открытия пустой позиции, когда цена выше цены, установленной параметром ENTRY

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

Стратегические преимущества

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

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

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

Стратегический риск

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

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

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

Направление оптимизации стратегии

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

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

  2. Добавление фильтров на технические показатели, такие как движущиеся средние. Используйте такие показатели, как MA, KDJ, чтобы определить большую тенденцию и избежать слишком многого торговли из-за краткосрочного шума.

  3. Логика оптимизации параметров. Можно установить адаптивный механизм изменения параметров ENTRY, EXIT, а не статические настройки, что позволяет корректировать параметры в зависимости от рыночной среды.

  4. Использование оптимальных параметров обучения с помощью машинного обучения. Обучение с большим количеством исторических данных для получения оптимальных настроек ENTRY и EXIT для текущей рыночной среды.

Подвести итог

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

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

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

Исходный код стратегии
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © JstMtlQC

//@version=4
strategy("Trend Following Breakout",calc_on_order_fills=true,calc_on_every_tick =false, overlay=true, initial_capital=2000,commission_value=.1,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)


/////////////// INPUT ENTRY EXIT
entry= input(100, "ENTRY H/L")
exit= input(50, "EXIT H/L")

/////////////// Backtest Input
FromYear = input(2015, "Backtest Start Year")
FromMonth = input(1, "Backtest Start Month")
FromDay = input(1, "Backtest Start Day")
ToYear = input(2999, "Backtest End Year")
ToMonth = input(1, "Backtest End Month")
ToDay = input(1, "Backtest End Day")

/////////////// Backtest Setting
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)       
window()  => time >= start and time <= finish ? true : false 

/////////////// BUY OPEN PLOT
highestpricelong = highest(high,entry)[1]
plot(highestpricelong, color=color.green, linewidth=2)

/////////////// BUY CLOSE PLOT
lowestpricelong = lowest(high,exit)[1]
plot(lowestpricelong, color=color.green, linewidth=2)

/////////////// SHORT OPEN PLOT
lowestpriceshort = lowest(low,entry)[1]
plot(lowestpriceshort, color=color.red, linewidth=2)

/////////////// SHORT CLOSE PLOT
highestpriceshort = highest(low,exit)[1]
plot(highestpriceshort, color=color.red, linewidth=2)

///////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// CONDITION LONG SHORT //////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////

/////////////// SHORT 

entryshort= crossunder(close, lowestpriceshort)
exitshort= crossover(close,highestpriceshort)

/////////////// LONG 

exitlong= crossover(close, lowestpricelong)
entrylong= crossover(close,highestpricelong)

///////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// LONG and SHORT ORDER //////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////

/////////////// LONG 

if (entrylong)
    strategy.entry("LongEntry", strategy.long, when = window())
if (exitlong or entryshort)
    strategy.close("LongEntry", when=window())

/////////////// SHORT 

if (entryshort)
    strategy.entry("short", strategy.short, when = window())
if (exitshort or entrylong)
    strategy.close("short", when=window())