A estratégia de ruptura de média móvel dupla é uma tendência típica após a estratégia de negociação quantitativa.
A lógica central da estratégia de MA dupla é a de:utilizar médias móveis de diferentes períodos para capturar as tendências de preços e gerar sinais de negociação quando o preço ultrapassa as médias móveis.
Especificamente, esta estratégia emprega médias móveis simples de 20 dias e 60 dias. Estas duas médias móveis podem ser vistas como ferramentas para capturar tendências de curto e médio prazo, respectivamente. Quando o preço de curto prazo quebra o preço de médio e longo prazo, ele sinaliza que o mercado está em uma tendência ascendente e, portanto, deve ir longo. Quando o preço de curto prazo cai abaixo do preço de médio e longo prazo, ele sinaliza que o mercado está em uma tendência descendente e, portanto, as posições devem ser reduzidas.
O código utilizata.crossover
eta.crossunder
Para determinar se o preço rompeu ou caiu abaixo de uma média móvel, os sinais de negociação de posição longa ou de redução são emitidos de acordo quando ocorre uma ruptura.
A estratégia de ruptura da média móvel dupla tem as seguintes vantagens:
Há também alguns riscos com a estratégia:
A estratégia pode ser reforçada pelas seguintes dimensões:
A estratégia de ruptura de média móvel dupla é uma estratégia simples e prática de tendência. Ela pode capturar efetivamente tendências de médio e longo prazo, evitando o ruído do mercado de curto prazo. Além disso, a lógica fácil de entender e os parâmetros limitados tornam-na muito adequada para negociação quantitativa.
/*backtest start: 2024-01-04 00:00:00 end: 2024-02-03 00:00:00 period: 4h basePeriod: 15m 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/ // © Astorhsu //@version=5 strategy("Astor SMA20/60", overlay=true) backtest_year = input(2018, title='backtest_year') //回測開始年分 backtest_month = input.int(01, title='backtest_month', minval=1, maxval=12) //回測開始月份 backtest_day = input.int(01, title='backtest_day', minval=1, maxval=31) //回測開始日期 start_time = timestamp(backtest_year, backtest_month, backtest_day, 00, 00) //回測開始的時間函數 //Indicators sma10 = ta.sma(close,10) sma20 = ta.sma(close,20) sma60 = ta.sma(close,60) plot(sma20, color=color.green, title="sma(20)") plot(sma60, color=color.red, title="sma(60)") //進場條件 // trend1 = sma60 > sma20 //假設目前趨勢為60>20 longCondition = ta.crossover(close, ta.sma(close, 20)) if (longCondition) strategy.entry("open long20", strategy.long, qty=1, comment="站上m20做多") shortCondition = ta.crossunder(close, ta.sma(close, 20)) if (shortCondition) strategy.close("open long20",comment="跌破m20平倉", qty=1) longCondition1 = ta.crossover(close, ta.sma(close, 60)) if (longCondition1) strategy.entry("open long60", strategy.long, qty=1, comment="站上m60做多") shortCondition1 = ta.crossunder(close, ta.sma(close, 60)) if (shortCondition1) strategy.close("open long60",comment="跌破m60平倉", qty=1) // longCondition2 = ta.crossover(close, ta.sma(close, 10)) // if (longCondition2) // strategy.entry("open long10", strategy.long, qty=1, comment="站上m10做多") // shortCondition2 = ta.crossunder(close, ta.sma(close, 10)) // if (shortCondition2) // strategy.close("open long10",comment="跌破m10平倉", qty=1)