Стратегия прорыва максимумов и минимумов азиатской сессии


Дата создания: 2024-03-29 17:12:49 Последнее изменение: 2024-03-29 17:12:49
Копировать: 0 Количество просмотров: 1395
1
Подписаться
1617
Подписчики

Стратегия прорыва максимумов и минимумов азиатской сессии

Обзор

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

Стратегический принцип

  1. Определяя время торгов на азиатском диске, пользователь может настроить время начала и окончания торгов.
  2. В течение азиатского диска были зафиксированы максимальные и минимальные цены за день.
  3. Определенное время после открытия европейской и американской биржи (в зависимости от количества часов отклонения), если цена пробивает высокую точку азиатской биржи, она делает больше, а если она пробивает низкую точку азиатской биржи, она делает меньше.
  4. Настройка остановки и остановки, количество очков остановки и остановки может быть настроено.
  5. Каждый день открывается только одна новая сделка, при этом максимальное количество одновременных открытых позиций составляет 100000 .
  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)