
A estratégia de cruzamento de linha média produz um sinal de negociação através do cálculo do cruzamento de duas linhas médias de SMA com diferentes configurações de parâmetros. Quando uma linha média de SMA mais rápida atravessa uma linha média de SMA mais lenta, produz um sinal de compra; Quando uma linha média de SMA mais lenta atravessa uma linha média de SMA mais rápida, produz um sinal de venda. A estratégia usa simultaneamente dois conjuntos de parâmetros de linha média de SMA, um grupo para determinar o ponto de compra e outro para determinar o ponto de venda.
A estratégia usa dois conjuntos de parâmetros de linha média SMA:smaB1、smaB2esmaS1、smaS2。smaB1esmaB2Para determinar os sinais de compra, eles representam uma média mais lenta e uma média mais rápida.smaB1Coloque-o.smaB2O que é um sinal de compra?smaS1esmaS2Usado para determinar o sinal de venda, também representa uma linha média mais lenta e mais rápida, respectivamente.smaS2Despir-se.smaS1Assim, é possível ajustar as condições de compra e venda de forma flexível, adaptando-se a diferentes condições de mercado.
Concretamente, a estratégia determina o momento de compra e venda, calculando o SMA do preço de fechamento e monitorando em tempo real a interseção de dois conjuntos de médias SMA. Ao atravessar a linha lenta no SMA rápido, considere que o preço está em alta, então faça mais; e ao atravessar a linha lenta do SMA abaixo, considere que o preço está em baixa, então leve mais.
As principais vantagens desta estratégia são:
A estratégia também apresenta alguns riscos:
Para controlar os riscos acima, pode-se melhorar métodos como o bloqueio de lucros com parâmetros de SMA de otimização, combinados com stop loss dinâmico.
A estratégia pode ser melhorada em vários aspectos:
A estratégia de cruzamento de linha média produz um sinal de negociação simples e eficaz, calculado através da interseção de dois conjuntos de linhas médias de SMA. A estratégia permite o ajuste flexível dos parâmetros, é aplicável a diferentes variedades e é uma estratégia de acompanhamento de tendências comum.
/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-22 00:00:00
period: 5m
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/
// © melihtuna
//@version=4
strategy("SMA Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=10000, currency=currency.USD, commission_value=0.1, commission_type=strategy.commission.percent)
smaB1 = input(title="smaB1",defval=377)
smaB2 = input(title="smaB2",defval=200)
smaS1 = input(title="smaS1",defval=377)
smaS2 = input(title="smaS2",defval=200)
smawidth = 2
plot(sma(close, smaB1), color = #EFB819, linewidth=smawidth, title='smaB1')
plot(sma(close, smaB2), color = #FF23FD, linewidth=smawidth, title='smaB2')
plot(sma(close, smaS1), color = #000000, linewidth=smawidth, title='smaS1')
plot(sma(close, smaS2), color = #c48dba, linewidth=smawidth, title='smaS2')
// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2020, title = "From Year", minval = 2017)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
window() => time >= start and time <= finish ? true : false
longCondition = crossover(sma(close, smaB1),sma(close, smaB2))
if (window() and longCondition)
strategy.entry("BUY", strategy.long)
shortCondition = crossover(sma(close, smaS2),sma(close, smaS1))
if (window() and shortCondition)
strategy.entry("SELL", strategy.short)