
Esta estratégia é uma estratégia de volume baseada em médias móveis. Ela gera sinais de negociação através da computação de médias móveis simples de diferentes períodos e comparando suas situações cruzadas.
A lógica central da estratégia é baseada no efeito de quantidade dinâmica, ou seja, a continuidade da tendência do preço das ações. A média móvel é capaz de refletir efetivamente a tendência de mudança do preço das ações. Quando a média móvel de curto prazo atravessa a média móvel de longo prazo, indica que o preço das ações começa a entrar em uma tendência ascendente; ao contrário, quando a média móvel de curto prazo atravessa a média móvel de longo prazo, indica que o preço das ações começa a entrar em uma tendência descendente.
Especificamente, a estratégia define uma média móvel simples de 13 dias e uma média móvel simples de 34 dias. Após o cálculo dos dois médios móveis de fechamento diário, comparando o tamanho e a relação de seus valores. Se a linha de 13 dias atravessar a linha de 34 dias, gerará um sinal de compra, indicando que o preço da ação entrará em uma tendência ascendente, e deve ser estabelecida uma posição de cabeça; Se a linha de 13 dias atravessar a linha de 34 dias, gerará um sinal de venda, indicando que o preço da ação entrará em uma tendência descendente, e deve ser liquidado.
A maior vantagem desta estratégia é a simplicidade e a facilidade de implementação. A média móvel é um dos indicadores técnicos mais básicos e mais usados, com princípios simples e fáceis de entender e aplicar. Além disso, a combinação de sinais de média móvel também se mostrou eficaz após uma longa prática.
Além disso, a configuração de parâmetros da estratégia é flexível, podendo ser ajustada de acordo com diferentes variedades e condições de mercado. Por exemplo, pode-se alterar o parâmetro periódico da média móvel, ajustando assim a sensibilidade da estratégia. Isso fornece espaço para otimização e ajuste da estratégia.
O maior risco desta estratégia é a possibilidade de ocorrência de muitos sinais errôneos e de ser coberto em mercados de turbulência. Quando os preços sofrem grandes turbulências, as médias móveis podem produzir cruzamentos frequentes, resultando na ocorrência de sinais errôneos. Nesse caso, é necessário ajustar os parâmetros do ciclo das médias móveis para filtrar algum ruído.
Além disso, quando ocorre uma grande reversão, o ponto de parada da estratégia pode ser ultrapassado, resultando em maiores perdas. Isso requer a otimização da estratégia de parada de perdas e a flexibilização apropriada da margem de parada.
A estratégia pode ser melhorada em alguns aspectos:
Otimizar os parâmetros periódicos das médias móveis para encontrar a combinação ideal de parâmetros em diferentes variedades e condições de mercado
Adicionar filtros para outros indicadores técnicos, como MACD, KD, etc., para evitar erros de sinalização em situações de tremores
Optimizar e ajustar dinamicamente a estratégia de stop loss, evitando que o ponto de parada fique muito próximo e tenha uma maior probabilidade de ser ultrapassado, garantindo ao mesmo tempo o stop loss
Aumento dos mecanismos de gerenciamento de posições, tais como a entrada de volumes fixos, a proporção de posições, etc., para controlar o risco de transações individuais
Esta estratégia é uma estratégia muito clássica de cruzamento de médias móveis, que gera sinais de compra e venda através do cálculo e comparação das relações entre médias móveis de curto e longo prazo. A vantagem da estratégia é que é simples e fácil de entender, com parâmetros flexíveis e adequados para os iniciantes; a desvantagem é que o sinal pode não ser estável o suficiente e ser facilmente manipulado em mercados turbulentos. Com a otimização adequada, ainda pode ser uma estratégia quantitativa muito prática.
/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
// TODO: update strategy name
strategy("{STRATEGY NAME}", overlay=true)
// === TA LOGIC ===
//
//
// TODO: PUT YOUR TA LOGIC HERE
LONG_SIGNAL_BOOLEAN = crossover(sma(close, 13), sma(close, 34))
SHORT_SIGNAL_BOOLEAN = crossunder(sma(close, 12), sma(close, 21))
// === INPUT BACKTEST DATE RANGE ===
enableShorts = input(false, title="Enable short entries?")
FromMonth = input(defval = 5, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 18, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2018, title = "From Year", minval = 2017)
ToMonth = input(defval = 9, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 2018, title = "To Year", minval = 2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
// === STRATEGY BUY / SELL ENTRIES ===
// TODO: update the placeholder LONG_SIGNAL_BOOLEAN and SHORT_SIGNAL_BOOLEAN to signal
// long and short entries
buy() => window() and LONG_SIGNAL_BOOLEAN
sell() => window() and SHORT_SIGNAL_BOOLEAN
if buy()
strategy.entry("Long", strategy.long, comment="Long")
if sell()
if (enableShorts)
strategy.entry("Short", strategy.short, comment="Short")
else
strategy.close("Long")
// === BACKTESTING: EXIT strategy ===
sl_inp = input(10, title='Stop Loss %', type=float)/100
tp_inp = input(30, title='Take Profit %', type=float)/100
stop_level = strategy.position_avg_price * (1 - sl_inp)
take_level = strategy.position_avg_price * (1 + tp_inp)
strategy.exit("Stop Loss/Profit", "Long", stop=stop_level, limit=take_level)