Торговая стратегия Ричарда

Автор:Чао Чжан, Дата: 2024-02-06 11:56:47
Тэги:

img

Обзор

Торговая стратегия Черепахи Ричарда - это торговая стратегия, основанная на торговых методах черепахи Ричарда Денниса.

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

Основная логика торговой стратегии Ричарда заключается в отслеживании тенденций на основе ценового прорыва. В частности, стратегия непрерывно отслеживает самые высокие (_20_day_highest) и самые низкие (_20_day_lowest) цены за последние 20 дней. Когда цена закрытия прорывается через 20-дневный максимум, это сигнализирует об увеличении, запуская длинный ордер. Когда цена закрытия падает ниже 20-дневного минимума, это сигнализирует о снижении, запуская короткий ордер.

После входа в позиции стратегия использует средний истинный диапазон (ATR) для расчета цены стоп-лосса. Она также отслеживает 10-дневные высокие и низкие цены для сдвига стоп-лосса. Когда запускается длинный стоп-лосс или сдвиг стоп-лосс, она закрывает длинную позицию. Когда запускается короткий стоп-лосс или сдвиг стоп-лосс, она закрывает короткую позицию.

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

Стратегия торговли черепахами Ричарда имеет следующие преимущества:

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

Риски

Есть также некоторые риски в торговле черепахами Ричарда:

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

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

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

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

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

Заключение

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


/*backtest
start: 2023-02-05 00:00:00
end: 2024-02-05 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/
// © melodyera0822

//@version=4
strategy("Richard Strategy", overlay=true)

// User input
variable_for_stoploss = input(4,title="stop loss var")
lenght = input(20,title="lenght")

// high_low
_20_day_highest = highest(nz(close[1]), lenght)
_20_day_lowest = lowest(nz(close[1]), lenght)

_10_day_low = lowest(nz(close[1]), lenght/2)
_10_day_high = highest(nz(close[1]), lenght/2)

//indicators
atr20 = atr(20)
ema_atr20 = ema(atr20,20)

//vars
var traded = "false"
var buy_sell = "none"
var buyExit = false
var sellExit = false
var stoploss = 0

buyCon = close > _20_day_highest and traded == "false"
plotshape(buyCon,style = shape.triangleup,location = location.belowbar, color = color.green )
if (buyCon)
    strategy.entry("long", strategy.long, when = buyCon)
    traded := "true"
    buy_sell := "buy"
    stoploss := round(close - variable_for_stoploss * ema_atr20)
    
sellCon = close < _20_day_lowest and  traded == "false"
plotshape(sellCon,style = shape.triangledown, color = color.red )
if (sellCon)
    strategy.entry("short", strategy.short)
    traded := "true"
    buy_sell := "sell"
    stoploss := round(close - variable_for_stoploss * ema_atr20)

if traded == "true"
    if buy_sell == "buy" and ((close<stoploss)or(close<_10_day_low))
        strategy.close("long")
        buyExit := true
        traded := "false"
        
    if buy_sell == "sell" and ((close>stoploss)or(close>_10_day_high))
        strategy.close("short")
        sellExit := true
        traded := "false"
        
plotshape(buyExit,style = shape.triangleup,location = location.belowbar, color = color.yellow )
buyExit := false
plotshape(sellExit,style = shape.triangledown, color = color.yellow )
sellExit := false

Больше