
A estratégia de quebra de linha dupla é uma estratégia de negociação quantitativa mais típica para o acompanhamento de tendências. A estratégia julga a posição por meio da computação de médias móveis simples de diferentes períodos e define o sinal de negociação como uma média móvel de quebra de preço.
A lógica central da estratégia de ruptura de dupla linha é:Usar médias móveis de diferentes períodos para capturar tendências de preços e emitir sinais de negociação quando os preços quebram as médias móveis。
Especificamente, a estratégia usa uma média móvel simples de 20 dias e uma média móvel simples de 60 dias. Estas duas médias móveis podem ser vistas como ferramentas para capturar tendências de curto prazo e tendências de médio prazo, respectivamente. Quando o preço de curto prazo supera o preço de médio e longo prazo, representando uma tendência ascendente atual, deve-se fazer mais; quando o preço de curto prazo supera o preço de médio e longo prazo, representando uma tendência descendente atual, deve-se reduzir a posição.
Passado no códigota.crossovereta.crossunderPara determinar se o preço vai ultrapassar ou ultrapassar uma média móvel. Quando ocorre uma ruptura, é emitida uma instrução para fazer mais ou menos posições.
A estratégia de ruptura de dupla linha de equilíbrio tem as seguintes vantagens:
A estratégia de ruptura de dupla linha de equilíbrio também tem alguns riscos:
A estratégia de ruptura de dupla equilíbrio pode ser otimizada a partir das seguintes dimensões:
A estratégia de ruptura de linha dupla é uma estratégia de acompanhamento de tendências simples e práticas. Ela pode capturar efetivamente as tendências de médio e longo prazo, evitando a interferência do ruído do mercado de curto prazo.
/*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)