Стратегия, основанная на времени с ATR Take Profit

Автор:Чао Чжан, Дата: 2024-01-29 16:13:57
Тэги:

img

Обзор

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

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

Эта стратегия использует часовые и минутовые переменные в сочетании с условиями, чтобы запустить открытие позиций в момент времени, указанный в параметре стратегии tradeTime. Например, установка на 0700 означает, что она запустит открытие позиций в 7 утра по пекинскому времени.

После открытия позиций стратегия будет использовать функцию ta.atr() для расчета значения индикатора ATR за последние 5 минут и использовать его в качестве основы для остановки потерь и получения прибыли. Например, после покупки, возьмите цену прибыли = цену покупки + стоимость ATR; после продажи, возьмите цену прибыли = цену продажи - стоимость ATR.

Это обеспечивает автоматическое открытие на основе временных точек, а также остановку потерь и получение прибыли на основе индикатора ATR. Таким образом, снижается частота ручных операций, одновременно эффективно контролируя риски.

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

Эта стратегия имеет следующие преимущества:

  1. Высокая степень автоматизации. Он может открывать позиции без присмотра в указанное время, значительно сокращая частоту ручных операций.

  2. Stop loss и take profit, основанные на индикаторе ATR, могут эффективно контролировать одиночные потери.

  3. Сильная масштабируемость. Легко объединить больше индикаторов или алгоритмов машинного обучения для принятия решений. Например, объединить скользящую среднюю для определения тенденций.

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

  5. В сочетании с планируемым управлением задачами программа стратегии может работать 24 часа без присмотра для достижения полной автоматизации.

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

Эта стратегия также сопряжена с некоторыми рисками:

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

  2. Риск ликвидности. Некоторые продукты имеют низкую ликвидность и не могут быть полностью закрыты на предельной точке получения прибыли.

  3. Риск оптимизации параметров ATR. Параметры ATR требуют повторного тестирования и оптимизации, неправильные настройки повлияют на эффективность стратегии.

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

Оптимизация стратегии

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

  1. Объединяйте больше индикаторов для оценки рыночных условий, избегайте открытия в неблагоприятных условиях, таких как MACD, RSI и т.д.

  2. Используйте алгоритмы машинного обучения для прогнозирования оптимальных временных точек. Собирайте больше исторических данных, используйте модели LSTM и т. Д.

  3. Расширьте свои возможности на арбитражном рынке, используя такие платформы, как Heartbeat.

  4. Оптимизировать параметры ATR и установку стоп-лосса/стоп-прибыли с помощью дополнительного обратного тестирования.

  5. Запустите стратегию на сервере, интегрируйте задачи по времени, достигните полностью автоматизированной торговли 24×7.

Заключение

Эта стратегия объединяет время и ATR для достижения эффективной автоматизированной стоп-лосса и получения прибыли.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Time-based Strategy with ATR Take Profit Sell", overlay=true)

// Initialize take profit levels
var float takeProfitLevel = na
var float takeProfitLevelForSell = na
var float buyprice = na
var float sellprice = na



// Input for the time when the trade should be executed
tradeTime = input(0700, "Trade Execution Time (HHMM)", "Specify the time in HHMM format", group="Time Settings")

// Calculate ATR for the last 5 minutes
atrLength = input(14, "ATR Length", "Specify ATR length", group="ATR Settings")
atrValue = request.security(syminfo.tickerid, "5", ta.atr(atrLength))

// Define conditions for buy and sell
buyCondition = hour * 100 + minute == tradeTime // and strategy.position_size == 0
sellCondition = hour * 100 + minute == tradeTime // and strategy.position_size > 0
// Execute Buy and Sell orders


// if (buyCondition)
//     strategy.entry("Buy", strategy.long)
//     buyprice := close
//     takeProfitLevel := buyprice + atrValue
// strategy.exit("Take Profit BUY", from_entry="Buy", limit =takeProfitLevel) 
    

  

if (sellCondition)
    strategy.entry("Sell", strategy.short)
    sellprice := close
    takeProfitLevelForSell := sellprice -atrValue
strategy.exit("Take Profit Sell", from_entry="Sell", limit=takeProfitLevelForSell)


// Plot horizontal lines for take profit levels


plot(takeProfitLevel, color=color.green, title="Take Profit Level (Buy)")
plot(takeProfitLevelForSell, color=color.red, title="Take Profit Level (Sell)")


Больше