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


Дата создания: 2023-10-23 17:08:51 Последнее изменение: 2023-10-23 17:08:51
Копировать: 0 Количество просмотров: 604
1
Подписаться
1617
Подписчики

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

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

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

  1. Расчет максимальной и минимальной цены за определенный период, построение каналов вверх и вниз.

  2. Когда цена пробивает верхний канал, делайте больше; когда цена пробивает нижний канал, делайте пустоту.

  3. Рассчитывается средняя линия двух SMA для быстрого и медленного периодов.

  4. При увеличении доли, на быстром SMA проносится медленный SMA, а при понижении доли, на быстром SMA проносится медленный SMA, а на уровне доли - пустые позиции.

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

  1. В сочетании с каналами и равнолинейной системой, можно повысить вероятность получения прибыли.

  2. Используйте канал для определения ротационного этапа анкелирования, используйте равнолинейный для определения конца тренда.

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

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

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

  1. Неправильное распределение коридоров может привести к пропущенным прорывам или к дополнительным ложным прорывам.

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

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

  4. Необходимо следить за эффективностью после прорыва, чтобы избежать преследования и падения.

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

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

  2. В сочетании с фильтрацией сигналов прорыва трендовыми индикаторами, повышается вероятность прорыва.

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

  4. Добавление механизмов сдерживания убытков для борьбы с единичными потерями.

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

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

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

//@version=4

// strategy("ChBrkOutStrategySMA", overlay=true, initial_capital = 200000)
length = input(title="Length", type=input.integer, minval=1, maxval=1000, defval=7)
     
fastSMA = sma(close,9)
slowSMA = sma(close,21)

upBound = highest(high, length)
downBound = lowest(low, length)

boundLongEntry = ((close >= upBound) or (high >= upBound)) and fastSMA>slowSMA and (close > open)
boundShortEntry =((close <= downBound) or (low <= downBound)) and fastSMA<slowSMA and (close <open)

u=plot(upBound, title = "Upper Bound",color=color.blue, linewidth=1)
l=plot(downBound, title = "Lower Bound",color=color.red, linewidth=1)
plot(fastSMA,title = "Fast SMA", color = color.red, linewidth =2)
plot(slowSMA,title = "Slow SMA" ,color = color.green, linewidth =1)
fill(u,l, transp=95)
plot(avg(upBound,downBound), title = "Avg", color=color.gray,linewidth =1)

     
if (boundLongEntry )
    strategy.entry("LE", long = true)
    
if (boundShortEntry)
    strategy.entry("SE", long = false)
    
SmaLongExit = crossunder(fastSMA,slowSMA)
SmaShortExit = crossover(fastSMA,slowSMA)

    
//Close TRades   
if (strategy.position_size > 0)
    strategy.close(id="LE",when= SmaLongExit)
if (strategy.position_size < 0)
    strategy.close(id="SE",when= SmaShortExit)