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


Дата создания: 2023-09-21 20:41:15 Последнее изменение: 2023-09-21 20:41:15
Копировать: 0 Количество просмотров: 935
1
Подписаться
1617
Подписчики

Обзор

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

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

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

Конкретные правила торговли таковы:

  • 9 на средней циклической линии 50 на средней циклической линии
  • 50 циклических средних ниже 100 циклических средних
  • 100 циклических средних ниже 200 циклических средних

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

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

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

  • Частые позиции, эффективно контролирующие одиночные убытки
  • Используйте среднюю линию, чтобы определить переломные моменты и найти потенциальные точки покупки.
  • Настройка ближайшей точки остановки, блокировка небольшой прибыли
  • Сокращение времени удержания позиций, снижение влияния больших тенденций
  • Высокий уровень использования средств для роста небольших объемов капитала

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

  • Промежуточный расчет задерживается и может пропустить оптимальный момент входа
  • Небольшая прибыль, подверженность торговым издержкам
  • Неэффективные сделки, частое их совершение, требующее времени и сил
  • Стоп-пойнты слишком консервативны и не вписываются в тенденции
  • Трудно получить прибыль на консолидированном рынке

Риски можно снизить следующими способами:

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

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

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

  1. Оптимизация комбинации средних параметров

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

  1. Расслабленная остановка

“Все, что мы делаем, - это пытаемся отвлечься от этого”, - сказал он.

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

К примеру, KDJ, MACD и т.д.

  1. Оптимизация управления позициями

Установка размера позиции для динамической корректировки в зависимости от конкретной точки остановки и точки остановки убытков.

  1. Присоединение к механизму реадмиссии

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

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

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

Исходный код стратегии
/*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)