В процессе загрузки ресурсов... загрузка...

Автор:Чао Чжан, Дата: 2024-05-17 15:45:13
Тэги:ATR

img

####Обзор Эта стратегия основана на индикаторе HalfTrend и идентифицирует сигналы покупки путем определения бычьих и медвежьих тенденций. Когда индикатор HalfTrend переходит от медвежьего к бычьему, ордер покупки с стоп-лимитом размещается по значению HalfTrend предыдущего медвежьего тренда. Стратегия использует индикатор AmplitudeTrend (ATR) для динамической корректировки параметра амплитуды для определения тренда.

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

  1. Вычислить значение индикатора HalfTrend, которое требует установки параметра длины периода просмотра и амплитуды.
  2. Сравните текущую цену закрытия с показателем HalfTrend за предыдущий период, чтобы определить бычий или медвежий тренд.
    • Когда цена закрытия пересекает значение индикатора HalfTrend на несколько амплитудных пунктов, тенденция становится bullish.
    • Когда цена закрытия пересекает ниже значения индикатора HalfTrend на несколько амплитудных точек, тренд становится медвежьим.
  3. Записывается значение индикатора HalfTrend, когда тенденция становится медвежей, что служит потенциальной будущей позицией покупки.
  4. Когда индикатор HalfTrend снова переходит от медвежьего к бычьему, разместите ордер на покупку со стоп-лимитом на позиции, зарегистрированной на этапе 3.

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

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

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

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

#### Стратегия оптимизации направления

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


/*backtest
start: 2023-05-11 00:00:00
end: 2024-05-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("HalfTrend Stop-Limit Buy", overlay=true)

// HalfTrend indicator parameters
length = 1
amplitude = 2.0

// HalfTrend calculation
float ph = na
float pl = na
var float dir = na
var float trend = na

if na(trend)
    trend := close
    ph := high
    pl := low
    dir := na
else
    if high > ph
        ph := high
    if low < pl
        pl := low
    if close > trend and na(dir)
        dir := 1
        trend := close
        ph := high
        pl := low
    if close < trend and na(dir)
        dir := -1
        trend := close
        ph := high
        pl := low
    if dir == 1 and close < trend - amplitude
        dir := -1
        trend := close
        ph := high
        pl := low
    if dir == -1 and close > trend + amplitude
        dir := 1
        trend := close
        ph := high
        pl := low

// Buy signal based on HalfTrend
buySignal = dir == 1 and ta.valuewhen(dir == -1, trend, 0)

// Plot HalfTrend
plot(dir == 1 ? trend : na, color=color.blue, linewidth=2, title="HalfTrend Bullish")
plot(dir == -1 ? trend : na, color=color.red, linewidth=2, title="HalfTrend Bearish")

// Place a stop-limit buy order
if (buySignal)
    stopPrice = ta.valuewhen(dir == -1, trend, 0)
    strategy.entry("HalfTrend Buy", strategy.long, stop=stopPrice, comment="HalfTrend Buy")



Связанные

Больше