
A estratégia é baseada em uma estratégia de negociação quantitativa baseada no cruzamento do preço com o SMA, que gera sinais de negociação principalmente por meio da computação do SMA em diferentes períodos e do acompanhamento do cruzamento do preço com o SMA. Quando o preço se move de baixo para cima, ele gera um sinal de compra; Quando o preço se move de cima para baixo, ele gera um sinal de venda.
A lógica central da estratégia é acompanhar a interseção do preço com a média móvel simples de 21 dias (SMA). Além disso, a estratégia também calcula a SMA de 50 dias e a SMA de 200 dias, o que ajuda a determinar a tendência geral.
Especificamente, a estratégia solicita o preço de fechamento das ações em um intervalo de datas especificadas e calcula o SMA diferente com base no ciclo de SMA de entrada. Se o preço for superior a partir de baixo e ultrapassar o SMA de 21 dias, um sinal de compra será configurado; Se o preço for inferior a partir de cima e ultrapassar o SMA de 21 dias, um sinal de venda será configurado.
Ao mesmo tempo em que calcula o SMA e julga o cruzamento, a estratégia acompanha a posição atual. Quando o sinal de compra é acionado, a estratégia entra em posição; Quando o sinal de venda é acionado, a estratégia se equilibra. Deste modo, a negociação automática baseada no sistema de cruzamento SMA é concluída.
A maior vantagem da estratégia é que é simples, fácil de usar, fácil de entender e de implementar. O SMA é um indicador de análise técnica comum, e o cruzamento do SMA é um dos sinais de negociação mais comuns. Esta estratégia baseada em cruzamento de indicadores pode ser facilmente aplicada a diferentes ações e períodos de tempo, sendo adequada para negociação automatizada.
Outra vantagem é que a estratégia pode ser otimizada por meio do ajuste dos parâmetros do SMA. Por exemplo, pode-se testar diferentes combinações de ciclos do SMA, buscando o melhor parâmetro para se adaptar à lei de flutuação de um determinado estoque. Além disso, a estratégia pode ser confirmada e otimizada por meio da adição de outros indicadores.
O maior risco desta estratégia é que a estratégia de indicadores pode gerar mais sinais errados. Por exemplo, durante os períodos de balanço oscilante, os preços podem atravessar frequentemente a SMA abaixo do solo, resultando em sinais de negociação desnecessários.
As soluções comuns incluem a configuração de stop loss, ajuste de parâmetros, ou adicionar condições de filtragem, etc. Por exemplo, pode-se definir a proporção de perda máxima para limitar o risco; também pode ser ajustado o ciclo SMA, escolher uma combinação de parâmetros mais estável; ou adicionar a confirmação de outros indicadores para filtrar parte do sinal.
A estratégia pode ser otimizada em várias direções:
Teste e escolha a melhor combinação de parâmetros de SMA. Pode reverter diferentes comprimentos de SMA para encontrar o ciclo mais adequado.
Adicione outros indicadores de confirmação do FilterSignal, como RSI, MACD, etc. Isso pode filtrar alguns sinais errados.
Adição de lógica de stop loss. Definir a perda máxima tolerável ou mover o stop loss pode controlar o risco.
Otimização do tempo de entrada. Pode-se considerar a entrada perto de pontos de ruptura importantes, em vez de seguir rigorosamente o cruzamento SMA.
Teste estratégias combinadas. Pode ser considerado o uso de estratégias combinadas com outros tipos de estratégias, como o acompanhamento de tendências.
A estratégia permite a automação de negociação através de um simples cruzamento de indicadores SMA. A vantagem é que é simples, fácil de usar e de entender; a desvantagem é que os sinais são frequentes e fáceis de serem manipulados. Podemos melhorar a eficácia da estratégia por meio de otimização de parâmetros, adição de filtros, parada de perdas, etc. A estratégia fornece uma estrutura básica que pode enriquecer e melhorar a estratégia adicionando novos elementos.
/*backtest
start: 2023-02-15 00:00:00
end: 2024-02-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Price Cross Above/Below SMA Strategy", shorttitle="Tressy Strat", overlay=true)
// Define start and end year inputs
start_year = input.int(2022, title="Start Year")
end_year = input.int(2022, title="End Year")
// Define start and end month inputs
start_month = input.int(1, title="Start Month", minval=1, maxval=12)
end_month = input.int(12, title="End Month", minval=1, maxval=12)
// Define SMA length inputs
sma_length = input.int(21, title="SMA Length")
sma_length_50 = input.int(50, title="50 SMA Length")
sma_length_200 = input.int(200, title="200 SMA Length")
// Filter data within the specified date range
filter_condition = true
filtered_close = request.security(syminfo.tickerid, "D", close[0], lookahead=barmerge.lookahead_on)
// Define SMAs using the input lengths
sma = ta.sma(filtered_close, sma_length)
sma_50 = ta.sma(filtered_close, sma_length_50)
sma_200 = ta.sma(filtered_close, sma_length_200)
// Initialize position
var bool in_position = false
// Condition for a price cross above SMA within the date range
cross_above = filter_condition and ta.crossover(filtered_close, sma)
// Condition for a price cross below SMA within the date range
cross_below = filter_condition and ta.crossunder(filtered_close, sma)
// Buy condition
if cross_above
in_position := true
// Sell condition
if cross_below
in_position := false
// Strategy entry and exit
if cross_above
strategy.entry("Buy", strategy.long)
if cross_below
strategy.close("Buy")
// Plot the SMAs on the chart
plot(sma, color=color.blue, title="21 SMA")
plot(sma_50, color=color.red, title="50 SMA")
plot(sma_200, color=color.orange, title="200 SMA")
// Plot the Buy and Sell signals with "tiny" size
plotshape(cross_above, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.tiny, title="Buy Signal")
plotshape(cross_below, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.tiny, title="Sell Signal")