Динамическая стратегия прорыва от изменения пороговой цены

Автор:Чао Чжан, Дата: 2024-04-01 12:03:59
Тэги:

img

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

Принцип стратегии

Основой этой стратегии является вычисление коэффициента изменения цены, который получается путем деления текущей цены закрытия на предыдущую цену закрытия, а затем вычитания 1. Затем вычисленный коэффициент изменения цены сравнивается с пороговым вводом пользователя. Когда коэффициент изменения цены больше или равен порогу, если отсутствует текущая позиция или удерживается короткая позиция, генерируется сигнал покупки; когда коэффициент изменения цены меньше или равен отрицательному значению порога, если отсутствует текущая позиция или удерживается длинная позиция, генерируется сигнал продажи. После генерации сигнала покупки стратегия запишет самую низкую цену из 6 свечей как предыдущую цену остановки потери. Как только цена опустится ниже цены потери, стратегия остановит длинную позицию.

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

  1. Эта стратегия использует динамический порог, который может адаптироваться к различным рыночным условиям и обладает определенной гибкостью.
  2. Логика стратегии проста и понятна, легко понять и реализовать.
  3. Стоп-лосс устанавливается для контроля риска в определенной степени.
  4. Подходит для использования на развивающихся рынках, он может эффективно улавливать тенденцию к росту.

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

  1. Такая стратегия может привести к частым сделкам на волатильных рынках, что приводит к увеличению затрат на транзакции.
  2. Установка стоп-лосса может быть недостаточно гибкой и в некоторых случаях может привести к преждевременному стоп-лос.
  3. В стратегии рассматривается только фактор изменения курса цен и не учитываются другие факторы, которые могут повлиять на тенденцию цен, такие как объем торговли и настроение на рынке.

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

  1. Для повышения надежности стратегии можно рассмотреть возможность введения дополнительных показателей, таких как объем торговли и волатильность.
  2. Установка стоп-лосса может быть оптимизирована, например, с использованием последующей стоп-лосс или динамической стоп-лосс, чтобы сделать стоп-лосс более гибким.
  3. Параметры могут быть оптимизированы, например, размер порога и период расчета стоп-лосса, чтобы найти оптимальную комбинацию параметров.
  4. Управление позициями может быть добавлено для динамической корректировки позиций в соответствии с рыночными условиями для контроля риска.

Резюме

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


/*backtest
start: 2023-04-01 00:00:00
end: 2024-03-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Price Change", shorttitle="Price Change", overlay=true)

change = input(00.1, title="Change", minval=0.0001, maxval=1, type=input.float)


// Calculate price change
priceChange = close / close[1] - 1

// Buy and Sell Signals
buyp = priceChange >= change
sellp = priceChange <= (change * -1)

// Initialize position and track the current position
var int position = na

// Strategy entry conditions
buy_condition = buyp and (na(position) or position == -1)
sell_condition = sellp and (na(position) or position == 1)

var float stop = na

if (buy_condition)
    strategy.entry("Long", strategy.long)
    stop := lowest(low, 6)
    position := 1
if (sell_condition or low < stop)
    strategy.close("Long")
    position := -1

// Plot Buy and Sell signals using plotshape
plotshape(series=buy_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=sell_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)


Больше