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


Дата создания: 2023-11-22 15:42:29 Последнее изменение: 2023-11-22 15:42:29
Копировать: 2 Количество просмотров: 596
1
Подписаться
1617
Подписчики

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

Обзор

Эта стратегия построена на основе показателей SMA с помощью простой многопрофильной стратегии. Сделайте больше, когда цена пересекает 20-циклическую высокую SMA, и сделайте пустоту, когда цена пересекает 20-циклическую низкую SMA.

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

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

В частности, стратегия сначала вычисляет 20-циклические SMA с наивысшей высокой ценой и наименьшей низкой ценой, а затем рисует индикаторную линию. Затем устанавливается следующая логика торговли:

Многоголовый вход: закрытие по высочайшей SMA Многоголовый старт: закрытие цены при прорыве ниже 0,99-кратной высочайшей SMA

Вход в пустой рынок: закрытие после прорыва по низкой средней средней цене
Появление на пустом рынке: закрытие на 1,01xlowest SMA

Таким образом, создается многоцелевая стратегия, которая работает в соответствии с тенденциями.

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

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

  1. Использование SMA для определения направления тренда просто и практично
    1. HIGHEST SMA и LOWEST SMA играют важную роль в качестве поддерживающих линий сопротивления
    2. Ограничение убытков с целью максимального предотвращения крупных потерь
    3. Удобство использования в разных периодах времени и разновидностях

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

Однако эта стратегия несет в себе определенные риски:

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

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

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

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

  1. В сочетании с другими показателями, такими как MACD, KDJ и т.д.
  2. Добавление защитных механизмов от непредвиденных событий, таких как приостановка лицензии, обращение с исключительными ситуациями, такими как лимиты цен
  3. Оптимизация параметров цикла SMA, поиск оптимальной комбинации параметров
  4. Рассмотрение оптимальных параметров для разных видов и разных временных периодов
  5. Оценка влияния стоимости сделки, установление оптимальных стоп-лосс и стоп-позиций

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2023-11-14 00:00:00
end: 2023-11-21 00:00:00
period: 10m
basePeriod: 1m
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/
// © AlanAntony

//@version=4


strategy("ma 20 high-low",overlay=true)

//compute the indicators

smaH = sma(high, 20)
smaL = sma(low, 20)


//plot the indicators
plot(smaH,title="smaHigh", color=color.green, linewidth=2)


plot(smaL,title="smaLow", color=color.red, linewidth=2)


//trading logic
enterlong = crossover(close,smaH) //positive ema crossover
exitlong = crossunder(close,0.99*smaH)  //exiting long


entershort = crossunder(close,smaL) //negative EMA Crossover
exitshort = crossover(close,1.01*smaH) //exiting shorts


notintrade = strategy.position_size<=0
bgcolor(notintrade ? color.red:color.green)

//execution logic

start = timestamp(2015,6,1,0,0)
//end = timestamp(2022,6,1,0,0)

if time >= start
    strategy.entry( "long", strategy.long,1, when = enterlong)
    strategy.entry( "short", strategy.short,1, when = entershort) 
    
    strategy.close("long", when = exitlong)
    strategy.close("short", when = exitshort)

//if time >= end
   // strategy.close_all()