Тенденция, следующая за сетевой стратегией

Автор:Чао Чжан, Дата: 2023-12-08 12:05:17
Тэги:

img

Обзор

Эта стратегия является тенденцией, следующей за сеткой стратегии, которая только длится долго и не идет коротко, выбирая периоды времени, когда основная тенденция растет. Размер сетки по умолчанию 1xATR, построение 1, 2, 3 уровней сетки вниз для преследования заказов, а 5-я сетка останавливает потери. Когда пустая позиция достигает предыдущей сетки, вся сетка движется вверх, чтобы отслеживать цену.

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

  1. Используйте линии EMA, чтобы судить о направлении основного тренда, EMA12 больше EMA144 означает, что основный тренд растет
  2. Открывать длинные позиции только при росте основного тренда
  3. Размер сетки по умолчанию 1xATR, мультипликатор может быть настроен
  4. Построить 1, 2, 3 уровня сетки вниз, чтобы отслеживать цену и открывать длинные позиции отдельно
  5. Установите точку остановки на 5-й сетке.
  6. После открытия позиций устанавливают точки остановки потери и точки получения прибыли.
  7. Закрыть позиции, когда цена прорвется через точку получения прибыли при росте
  8. Закрыть позиции, когда цена достигнет точки остановки потери на фоне падения
  9. После того, как все позиции закрыты, если цена снова проходит через последнюю сетку, пересчитайте местоположение сетки и количество, чтобы отслеживать вверх

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

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

  1. Использовать EMA для определения основного направления тренда, избегать открытия позиций против тренда
  2. Сетевая торговля может открывать позиции отдельно для снижения риска одной позиции
  3. Стоп-потеря и прибыль блокировать прибыль, контролировать максимальные потери
  4. После закрытия всех позиций, перерасчет сетки для продолжения погони может расширить пространство прибыли

Основное преимущество заключается в сочетании трендовой торговли и сетевой торговли, что обеспечивает правильность направления тренда, а также достигает дисперсии рисков сетевой торговли.

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

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

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

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

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

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

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

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

Резюме

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


/*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/
// © zxcvbnm3260

//@version=5
strategy("grid strategy long", overlay=true)


// 版本更新记录:
// v1.0 2021/11/09 只做多、不做空,选择大趋势向上的时间段。网格大小默认为1倍ATR,往下1、2、3个网格吃单,第5个网格止损。空仓时到达往上一个网格则网格整体抬升。(Only go long, not short, choose a time period when the general trend is up. The default grid size is 1x ATR, the next one, two, and three grids will take orders, and the fifth grid will stop loss. When the empty position reaches the upper grid, the grid as a whole rises.)


X_ATR = input.float(title='网格大小是多少倍ATR?', defval = 1)


// 1.基础变量
ema169 = ta.ema(close, 169)
ema144 = ta.ema(close, 144)
ema12 = ta.ema(close, 12)

ema576 = ta.ema(close, 576)
ema676 = ta.ema(close, 676)

plot(ema169, color=color.new(color.orange, 0), linewidth=2)
// plot(ema144, color=color.orange)
plot(ema12,  color=color.blue)
// plot(ema676, color=color.orange, linewidth=1)

mtr = math.max(high - low, math.abs(close[1] - high), math.abs(close[1] - low))
atr = ta.ema(mtr, 30)

is_0930 = hour(time, 'GMT-4') == 9  and minute(time, 'GMT-4') == 30
is_1500 = hour(time, 'GMT-4') == 15 and minute(time, 'GMT-4') == 00
is_1530 = hour(time, 'GMT-4') == 15 and minute(time, 'GMT-4') == 30

is_yangxian = close>open
is_yinxian = close<open

// 2.基本趋势标记

big_trend  = ema12 >= ema169 ? 1 : 0
big_trend2 = ema12 <= ema169 ? 1 : 0

// 背景的变色处理:
bgcolor(big_trend == 1 ? color.new(color.green, 90) : color.new(color.red, 90) )

// 3.网格点位初始化

grid_size = atr * X_ATR // 网格大小
        
price_entry1 = open - grid_size*1
price_entry2 = open - grid_size*2
price_entry3 = open - grid_size*3
price_stop_loss = open - grid_size*5

price_exit1 = price_entry1 + grid_size*1
price_exit2 = price_entry2 + grid_size*1
price_exit3 = price_entry3 + grid_size*1

qty1 = int(1000/price_entry1)
qty2 = int(1000/price_entry2)
qty3 = int(1000/price_entry3)


// 标出各种点位
slm_lines_time(time, price_entry1, price_entry2, price_entry3, price_stop_loss, price_exit1)=>
    time2 = time + 1000*3600*24*5
    line.new(time, price_stop_loss, time2, price_stop_loss, color=color.red, xloc = xloc.bar_time, width=2)  // 止损位
    line.new(time, price_entry1, time2, price_entry1, color=color.green, xloc = xloc.bar_time)  // 
    line.new(time, price_entry2, time2, price_entry2, color=color.green, xloc = xloc.bar_time)  // 
    line.new(time, price_entry3, time2, price_entry3, color=color.green, xloc = xloc.bar_time)  // 
    line.new(time, price_exit1,  time2, price_exit1,  color=color.green, xloc = xloc.bar_time, width=2)  // 

slm_lines(time, price_entry1, price_entry2, price_entry3, price_stop_loss, price_exit1)=>
    line.new(bar_index, price_stop_loss, bar_index[5], price_stop_loss, color=color.red, xloc = xloc.bar_index, width=2)  // 止损位
    line.new(bar_index, price_entry1, bar_index[5], price_entry1, color=color.green, xloc = xloc.bar_index)  // 
    line.new(bar_index, price_entry2, bar_index[5], price_entry2, color=color.green, xloc = xloc.bar_index)  // 
    line.new(bar_index, price_entry3, bar_index[5], price_entry3, color=color.green, xloc = xloc.bar_index)  // 
    line.new(bar_index, price_exit1,  bar_index[5], price_exit1,  color=color.green, xloc = xloc.bar_index, width=2)  // 


// 4.网格点位更新和下单

is_entry0 = big_trend==1 and year>=2020

var is_entry = false

// 未进场时:
if is_entry0 and not is_entry
    is_entry := true
    
    grid_size := atr * X_ATR // 网格大小
    
    price_entry1 := close - grid_size*1
    price_entry2 := close - grid_size*2
    price_entry3 := close - grid_size*3
    price_stop_loss := close - grid_size*5
    
    price_exit1 := price_entry1 + grid_size*1
    price_exit2 := price_entry2 + grid_size*1
    price_exit3 := price_entry3 + grid_size*1
    
    qty1 := int(1000/price_entry1)
    qty2 := int(1000/price_entry2)
    qty3 := int(1000/price_entry3)
    
    // slm_lines(time, price_entry1, price_entry2, price_entry3, price_stop_loss, price_exit1)
    
    strategy.entry("open1", strategy.long, qty1, limit = price_entry1)
    strategy.entry("open2", strategy.long, qty2, limit = price_entry2)
    strategy.entry("open3", strategy.long, qty3, limit = price_entry3)
    
    strategy.exit("close1", qty = qty1, limit = price_exit1, stop = price_stop_loss)
    strategy.exit("close2", qty = qty2, limit = price_exit2, stop = price_stop_loss)
    strategy.exit("close3", qty = qty3, limit = price_exit3, stop = price_stop_loss)

// 已进场的各类情况

// 1.止损
if is_entry and close <= price_stop_loss
    strategy.close_all()
    is_entry := false

// 2.网格抬升
if is_entry and close >= price_exit1
    is_entry := false
        




Больше