
Эта стратегия является простой классической стратегией пересечения движущихся средних, созданной известным трейдером Ларри Уильямсом. Стратегия использует 9-дневную простую движущуюся среднюю в качестве быстрой линии, 21-дневную индексную движущуюся среднюю в качестве медленной линии.
Эта стратегия основана на движущихся средних золотых и мертвых крестах для определения возможностей для выручки и дефолта. Когда быстрая линия сверху пересекает медленную линию в качестве золотой, это означает, что рынок становится бычьим, и такие прорывы делаются; когда быстрая линия сверху пересекает медленную линию в качестве мертвой, это означает, что рынок становится медленным, и такие прорывы делаются.
Чтобы избежать ложных прорывов, которые приводят к виртуальным убыткам, стратегия также вводит определение большой тенденции на 21-й день. Торговые действия могут быть предприняты только в том случае, если цена одновременно с прорывом быстрой линии также пересекает 21-й день. Таким образом, можно эффективно отфильтровать многие ложные прорывы.
В частности, сигнал “сделать больше” заключается в следующем: скоростная линия всплывает, прорывая вчерашний максимум, и в то же время скоростная линия прорывает 21-ю линию, чтобы установить многоголовие; сигнал “сделать пустоту” заключается в следующем: скоростная линия опускается, прорывая вчерашний минимум, и в то же время скоростная линия прорывает 21-ю линию, чтобы установить пустоту.
Основными преимуществами этой стратегии являются:
Основные риски этой стратегии:
Оптимизировать и контролировать указанные риски можно следующим образом:
Эта стратегия может быть оптимизирована в следующих направлениях:
Оптимальные параметры. Можно использовать более систематический метод для тестирования комбинации параметров цикла MA, чтобы найти более оптимальные параметры.
Увеличение убытков. Установление разумных методов, таких как перемещение убытков, уменьшение убытков, эффективное управление одиночными убытками.
В сочетании с другими индикаторами. Введение других индикаторных сигналов, таких как MACD, ATR, KD, чтобы получить больше измерений подтверждения и повысить стабильность стратегии.
Оптимизация механизмов выхода из игры. Исследование различных типов стратегий выхода из игры, таких как обратный сигнал выхода из игры, мобильные блокировки выхода из игры и другие методы.
Стратегия пересечения движущейся средней в целом является очень типичной и практической стратегией отслеживания тенденций. Она обладает преимуществами в том, что ее легко понять и реализовать, но есть также место для некоторых улучшений.
// @_benac
//@version=5
strategy('Larry', overlay=true , initial_capital=1000 )
////////////////////////////////////////////////////////
// //
// //
// Codigo Operacional //
// //
// //
////////////////////////////////////////////////////////
// Usage for Stocks , or Criptos with value bigger then 1, cuz of 0.01 ´pip.
// Daily timeframe
//Observation Point
start = timestamp(2020, 00, 00, 00, 00) // backtest start window
finish = timestamp(2022, 01, 07, 23, 59) // backtest finish window
window() => true // create function "within window of time"
if time < start
strategy.close_all("Closing All")
// Take infos from inputs.
inp_mmshort = input.int(defval = 9, title = "Media Curta" )
inp_mminter = input.int(defval = 21, title = "Media Curta" )
// Risk Manager, here define max and min
inp_max = input.int(defval = 15, title = "Percentual Ganho" )
inp_min = input.int(defval = 5, title = "Percental Perda" )
// Converting the input to %
pmax = (inp_max / 100 )
pmin = (inp_min / 100)
// Infos From Moving Average
mm_short = ta.sma(close , inp_mmshort)
mm_inter = ta.ema(close , inp_mminter)
// Trend Logic
//Long Condition
//Setup do Larry Willians Bem Simples , media virou para cima e rompeu a maxima de referencia, compra.
tendencia_alta = mm_short[2] > mm_short[1] and mm_short > mm_short[1] and close > high[1] and close > mm_short and mm_short > mm_inter
tendencia_baixa = mm_short[2] < mm_short[1] and mm_short < mm_short[1] and close > low[1] and close < mm_short and mm_short < mm_inter
// Creating the entry
if tendencia_alta
strategy.entry("Compra" , strategy.long , stop = low - 0.01 )
stop_inst = low - 0.01
if tendencia_baixa
strategy.entry("Venda" , strategy.short , stop= high + 0.01 )
stop_inst = high + 0.01
// TrailingStop Creation
// Sell Position
if strategy.position_size < 0
gain_p = strategy.opentrades.entry_price(0) - (strategy.opentrades.entry_price(0) * pmax)
stop_p = strategy.opentrades.entry_price(0) + (strategy.opentrades.entry_price(0) * pmin)
// Managing the position
if close < gain_p
strategy.close_all(comment = " 1 - Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p) )
if close > stop_p
strategy.close_all(comment = " 2 - Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p) )
if high > mm_short[1]
strategy.close_all(comment = " 3 - Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p) )
// Buy Position
if strategy.position_size > 0
gain_p = strategy.opentrades.entry_price(0) + (strategy.opentrades.entry_price(0) * pmax)
stop_p = strategy.opentrades.entry_price(0) - (strategy.opentrades.entry_price(0) * pmin)
// Managing the position
if close > gain_p
strategy.close_all(comment = " 1- Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p) )
if close < stop_p
strategy.close_all(comment = " 2 -Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p) )
if low < mm_short[1]
strategy.close_all(comment = " 3 -Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p) )