Длинная и короткая стратегия скользящей средней


Дата создания: 2023-10-09 16:00:02 Последнее изменение: 2023-10-09 16:00:02
Копировать: 0 Количество просмотров: 617
1
Подписаться
1617
Подписчики

Обзор

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

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

Эта стратегия использует функцию sma, чтобы вычислить движущуюся среднюю длину len, ma. Затем, на основе ma, вычислить движущуюся среднюю длину с определенным количеством перемещений: longline1, longline2 и longline3. В ней longline1 перемещается на -4%, longline2 -5%, longline3 -6%.

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

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

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

Стратегические преимущества

  • Использование движущихся средних для определения направления тенденции может эффективно отфильтровывать рыночный шум и стабилизировать прибыль
  • Больше декодирования в группах, чтобы получить больше прибыли в тренде
  • В качестве входной точки можно использовать Flat Mobile Average, чтобы лучше понимать тенденции.
  • Относительно небольшие отступления, максимальные отступления контролируются около 20%

Стратегический риск

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

Решение риска:

  • Показатели могут быть добавлены для определения точек перехода.
  • Разумная настройка параметров движущейся средней, не слишком длинная, иначе сигнал будет задерживаться
  • Сокращение количества излишних партий, чтобы предотвратить их увеличение
  • Увеличение движущейся стоп-стадии для контроля потерь

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

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

  1. Добавление других показателей для определения направления тенденции, например, добавление MACD для определения сильной тенденции

  2. Оптимизация параметров скользящих средних, поиск оптимальных комбинаций параметров

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

  4. Добавление мобильного механизма остановки, который может быть настроен на остановку в соответствии с ATR

  5. Количество позиций может быть изменено в зависимости от динамики рыночных колебаний и снижается при больших колебаниях

  6. Тестирование эффективности параметров разных сортов для поиска наиболее подходящих для стратегии сортов

  7. Разработка модуля Exit, который учитывает остановку выхода при возникновении определенных форм

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

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

Исходный код стратегии
/*backtest
start: 2022-10-02 00:00:00
end: 2023-10-08 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2019

//@version=4
strategy(title = "Noro's ShiftMA-multi Strategy v1.0", shorttitle = "ShiftMA-multi", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3)

//Settings
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
len = input(3, minval = 1, title = "MA Lenghs")
src = input(ohlc4, title = "MA Source")
longlevel1 = input(-4.0, title = "Long line 1")
longlevel2 = input(-5.0, title = "Long line 2")
longlevel3 = input(-6.0, title = "Long line 3")
needoffset = input(true, title = "Offset")

//Variables
size = strategy.position_size
mult = 1 / syminfo.mintick

//MA
ma = sma(src, len)
longline1 = round(ma * ((100 + longlevel1) / 100) * mult) / mult
longline2 = round(ma * ((100 + longlevel2) / 100) * mult) / mult
longline3 = round(ma * ((100 + longlevel3) / 100) * mult) / mult

//Lines
offset = needoffset ? 1 : 0
plot(ma, color = color.blue)
plot(longline1, offset = offset, color = color.lime)
plot(longline2, offset = offset, color = color.lime)
plot(longline3, offset = offset, color = color.lime)

//Trading
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]
lots = 0.0
if ma > 0
    lots := round(size / lot)
    strategy.entry("L1", strategy.long, lot, limit = longline1, when = (lots == 0))
    lots := round(size / lot)
    strategy.entry("L2", strategy.long, lot, limit = longline2, when = (lots <= 1))
    lots := round(size / lot)
    strategy.entry("L3", strategy.long, lot, limit = longline3, when = (lots <= 2))
if size > 0
    strategy.entry("TP", strategy.short, 0, limit = ma)