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

Стратегия высокого низкого выхода азиатской сессии

Автор:Чао Чжан, Дата: 2024-03-29 17:12:49
Тэги:

img

Обзор

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

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

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

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

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

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

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

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

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

Резюме

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


/*backtest
start: 2024-02-27 00:00:00
end: 2024-03-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Asia Session", overlay=true)

var hourSessionStart = input(19, "Asia session start hour", minval=0, maxval=23)
var hourSessionStop  = input(1, "Asia session end hour", minval=0, maxval=23)
var offsetHours = input(3, "Offset hours after Asia session end")

var float hi              = na
var float lo              = na
var float plotHi          = na
var float plotLo          = na

var bool  inSession       = na
var bool  enteringSession = na
var bool  exitingSession  = na

inSession       := (hour >= hourSessionStart or hour < hourSessionStop)
enteringSession := inSession and not inSession[1]
exitingSession  := not inSession and inSession[1]

if enteringSession
    plotLo := na
    plotHi := na

if inSession
    lo := min(low,  nz(lo, 1.0e23))
    hi := max(high, nz(hi))

if exitingSession
    plotLo := lo
    plotHi := hi
    lo     := na
    hi     := na

bgcolor(inSession ? color.blue : na)

plot(plotLo, "Asia session Low",  color.red,   style=plot.style_linebr)
plot(plotHi, "Asia session High", color.green, style=plot.style_linebr)

// Implementazione delle condizioni di entrata
var float asiaSessionLow = na
var float asiaSessionHigh = na
var int maxTrades = 100000 // Impostiamo il massimo numero di operazioni contemporanee
var int tradesOpened = 0 // Variabile per tenere traccia del numero di operazioni aperte
var bool tradeOpened = false
var bool operationClosed = false // Nuova variabile per tenere traccia dello stato di chiusura dell'operazione

// Calcolo del range asiatico
if (inSession)
    asiaSessionLow := lo
    asiaSessionHigh := hi

// Apertura di un solo trade al giorno
if (enteringSession)
    tradeOpened := false

// Condizioni di entrata
var float stopLoss = 300 * syminfo.mintick
var float takeProfit = 300 * syminfo.mintick

if (not tradeOpened and not operationClosed and close < asiaSessionLow and tradesOpened < maxTrades and hour >= hourSessionStop + offsetHours)
    strategy.entry("Buy", strategy.long)
    tradeOpened := true
    tradesOpened := tradesOpened + 1 // Incrementiamo il contatore delle operazioni aperte

if (not tradeOpened and not operationClosed and close > asiaSessionHigh and tradesOpened < maxTrades and hour >= hourSessionStop + offsetHours)
    strategy.entry("Sell", strategy.short)
    tradeOpened := true
    tradesOpened := tradesOpened + 1 // Incrementiamo il contatore delle operazioni aperte

// Impostazione dello stop loss e del take profit
strategy.exit("Stop Loss / Take Profit", "Buy", stop=close - stopLoss, limit=close + takeProfit)
strategy.exit("Stop Loss / Take Profit", "Sell", stop=close + stopLoss, limit=close - takeProfit)


Больше