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

Автор:Чао Чжан, Дата: 2023-09-21 20:41:15
Тэги:

Обзор

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

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

Стратегия использует 4 скользящих средних - 9, 50, 100 и 200 периодов.

Специфическими правилами торговли являются:

  • Пройти длинный курс, когда 9 MA пересекает 50 MA
  • 50 MA меньше 100 MA
  • 100 MA - это меньше 200 MA

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

Правило выхода заключается в том, когда 9 MA пересекает 200 MA. Цель близкая к прибыли используется для блокировки частых небольших прибылей для стабильной прибыли.

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

  • Контроль частого открытия и закрытия с одной потерей
  • Кроссовер MA ловит потенциальные дно
  • Ближайшие к прибыли цели блокируются в небольших определенных выигрышей
  • Сокращенное время хранения минимизирует влияние тренда
  • Высокое использование капитала, подходящее для небольших счетов

Риски

  • Отставание MA может пропустить лучшие точки входа
  • Малый диапазон прибыли, подверженный воздействию комиссионных
  • Больше недействительных профессий увеличивают затраты времени и энергии
  • Чрезмерно консервативная ТП не справляется с тенденциями
  • Трудно получить прибыль на рынках с ограниченным диапазоном

Риски могут быть уменьшены:

  • Оптимизация параметров MA для лучшей точности сигнала
  • Расслабление ТП для получения большей прибыли от тренда
  • Добавление других показателей для подтверждения, сокращение недействительных сделок
  • Оптимизация использования капитала и размещения позиций
  • Рассмотрение повторного въезда

Руководство по оптимизации

Стратегия может быть улучшена путем:

  1. Оптимизация комбинаций MA

    Испытание большего количества периодов MA для лучшего обнаружения обратной реакции.

  2. Увеличение уровня прибыли

    Допустить более широкое расстояние TP для большей прибыли тренда.

  3. Добавление других показателей

    Например, KDJ, MACD для подтверждения, чтобы уменьшить недействительные сделки.

  4. Оптимизация размеров позиций

    Динамические позиции размеров, основанные на конкретных TP и SL.

  5. Добавление правил повторного въезда

    Подумайте о повторном входе после TP, если тенденция сохранится.

Резюме

Эта стратегия скальпинга определяет потенциальные краткосрочные реверсии с комбинациями MA для частых небольших прибылей. Это эффективно контролирует одиночные потери и риски, что делает ее подходящей для роста небольших счетов. Однако существуют ограничения, такие как небольшой диапазон прибыли и чрезмерные сделки. Улучшения могут быть сделаны с помощью настройки параметров, корректировки TP, добавления фильтров и т. Д., Чтобы расширить прибыль, сохраняя свои сильные стороны, делая стратегию более надежной и эффективной.


/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//strategy(shorttitle='Moving Average Scalper (by Coinrule)',title='Moving Average Scalper', overlay=true, initial_capital = 1000, default_qty_type = strategy.percent_of_equity, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1)

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 10,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2019, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true       // create function "within window of time"

//MA inputs and calculations
movingaverage_signal = sma(close, input(9))
movingaverage_fast = sma(close, input(50))
movingaverage_slow = sma(close, input(200))
movingaverage_mid= sma(close, input(100))

//Entry 
bullish = crossover(movingaverage_signal, movingaverage_fast)

strategy.entry(id="long", long = true, when = bullish and movingaverage_fast < movingaverage_mid and movingaverage_mid < movingaverage_slow and window())

//Exit

bearish = crossover(movingaverage_signal, movingaverage_slow)


Stop_loss= ((input (2))/100)
Take_profit= ((input (8))/100)

longStopPrice  = strategy.position_avg_price * (1 - Stop_loss)
longTakeProfit = strategy.position_avg_price * (1 + Take_profit)

strategy.close("long", when = bearish)

// close < longStopPrice or close > longTakeProfit and window())

//PLOT
plot(movingaverage_signal, color=color.black, linewidth=2 )
plot(movingaverage_fast, color=color.orange, linewidth=2)
plot(movingaverage_slow, color=color.purple, linewidth=2)
plot(movingaverage_mid, color=color.blue, linewidth=2)


Больше