Стратегия открытия месяца и закрытия месяца

Автор:Чао Чжан, Дата: 2023-11-02 14:23:40
Тэги:

img

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

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

Эта стратегия сначала определяет первый торговый день (понедельник) каждого месяца как сигнал входа, а последний торговый день (пятница) как сигнал выхода.

При открытии позиции он будет напрямую длинный, если только длинный включен, и он будет открывать как длинные, так и короткие позиции, если короткий разрешен.

При закрытии позиций он закрывает все позиции, если разрешено короткое, и закрывает только длинные позиции, если разрешено только длинное.

Чтобы контролировать риски, добавляется простой стоп-лосс.

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

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

  1. Логика проста и понятна, очень подходит для обучения новичков.

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

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

  4. Добавление стоп-лосса может в некоторой степени контролировать риски отдельных акций.

Риски

  1. Фиксированное время входа и выхода, которое не может быть скорректировано в зависимости от рыночных условий, создает риск арбитража.

  2. Нет добавления количественных показателей, риски слепого следования.

  3. Однократный стоп-лосс легко преодолеть, не способный эффективно контролировать риск хвоста.

  4. Фиксированный размер позиции, не поддающийся корректировке на основе рыночных условий.

  5. Неопределенность исполнения, может не выполнять полностью по стратегии.

  6. Простой метод стоп-лосса может привести к небольшому стоп-лоссу, следует использовать динамический стоп-лосс, такой как стоп-волатильности.

Руководство по улучшению

  1. Внедрение количественных показателей для оценки рыночных условий и динамического регулирования темпов входа.

  2. Для определения относительной прочности запасов для входа в рынок следует рассматривать индексы сравнительной оценки.

  3. Динамически корректировать размер позиции на основе волатильности рынка и других показателей риска.

  4. Примите динамический стоп-лосс или несколько уровней стоп-лосса.

  5. Добавить алгоритмный торговый модуль для обеспечения успешного исполнения.

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

  7. Включить машинное обучение для оценки качества запасов для ввода.

Резюме

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


/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © Je_Buurman September 1st 2020

//@version=4
strategy("Buurmans Tutorial", overlay=true, initial_capital=1000, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_value=0.2)

// Some initial inputs, these are needed in case the strategy returns an error of "too many trades, > 3000" 

Year    = input(defval = 2020, title = "From Year", minval = 2010)              // 
Month   = input(defval = 1, title = "From Month", minval = 1, maxval=12)
LongOnly=input(true, title="Only go Long?")


// Phase I - the initial "Strategy" - buy Monday, sell Friday

longCondition = dayofweek==dayofweek.monday and (time > timestamp(Year, Month, 01, 00, 00, 00))
shortCondition = dayofweek==dayofweek.friday and (time > timestamp(Year, Month, 01, 23, 59, 59))


// Phase II - some rudimentary "risk-management" e.g. stoploss

Use_stoploss=input(false, title="Use stoploss ?")
stoploss_input=input(150, title="Stoploss in $")
Stoploss = Use_stoploss ? strategy.position_size>0 ? iff(strategy.position_size>0,strategy.position_avg_price - stoploss_input, na) : strategy.position_size<0 ? iff(strategy.position_size<0,strategy.position_avg_price + stoploss_input, na) : na : na
plot(Use_stoploss and strategy.position_size!=0 ? Stoploss : na, color=iff(Stoploss!=na,color.silver, color.red),style=plot.style_linebr)


// Phase III - make it more profitable by trying to filter conditions
// only buy on odd Mondays ? only buy on full moon Mondays ? something else entirely ?


// The actual trades, going Long, close Long, going Short and Stoploss

if (longCondition)
    strategy.entry("Buy on Monday", strategy.long)
    
if (shortCondition and LongOnly==false)
    strategy.entry("Short on Friday", strategy.short)

if (shortCondition and LongOnly)
    strategy.close("Buy on Monday", comment="Sell on Friday")

if (low < Stoploss)
    strategy.close("Buy on Monday", comment="Long Stopped on Someday")
if (high > Stoploss)
    strategy.close("Short on Friday", comment="Short Stopped on Someday")

Больше