
Esta estratégia utiliza a técnica de regressão linear para calcular o ponto de interceptação de regressão linear e usá-lo como um sinal de compra e venda para construir uma estratégia de negociação quantitativa. A estratégia analisa a sequência de tempo do preço da ação, configura uma linha de tendência de regressão linear e usa o ponto de interceptação de regressão linear para determinar se o preço está sobrevalorizado ou subvalorizado, para gerar uma negociação de sinal.
O intervalo de regressão linear representa o valor de previsão do valor de Y quando o valor da sequência de tempo X é 0 (geralmente o preço). A estratégia predefine o parâmetro Length, com o preço de fechamento como a sequência de origem, para calcular o intervalo de regressão linear do dia de fechamento mais recente de Length (xLRI). Quando o preço de fechamento é superior ao xLRI, faça mais; Quando o preço de fechamento é inferior ao xLRI, faça zero.
A fórmula de cálculo é a seguinte:
xX = Length *(Length - 1)* 0.5
xDivisor = xX *xX - Length* Length *(Length - 1) *(2 * Length - 1) / 6
xXY = Σ(i *收盘价[i]),i从0到Length-1
xSlope = (Length *xXY - xX* Σ(收盘价, Length))/ xDivisor
xLRI = (Σ(收盘价, Length) - xSlope * xX) / Length
Através desse cálculo, pode-se obter o ponto de interceptação de regressão linear xLRI do dia mais recente de Length. A estratégia julga os altos e baixos do preço e gera um sinal de negociação.
A estratégia tem as seguintes vantagens:
A estratégia também apresenta alguns riscos:
Resposta:
Esta estratégia pode ser melhorada nos seguintes aspectos:
Esta estratégia baseia-se no ponto de interceptação de regressão linear para construir uma estratégia de negociação quantitativa simples. Em geral, a estratégia tem um certo valor econômico, mas também há alguns riscos a serem observados. Com a otimização contínua, espera-se aumentar ainda mais a estabilidade e a rentabilidade da estratégia.
/*backtest
start: 2023-11-28 00:00:00
end: 2023-12-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 21/03/2018
// Linear Regression Intercept is one of the indicators calculated by using the
// Linear Regression technique. Linear regression indicates the value of the Y
// (generally the price) when the value of X (the time series) is 0. Linear
// Regression Intercept is used along with the Linear Regression Slope to create
// the Linear Regression Line. The Linear Regression Intercept along with the Slope
// creates the Regression line.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Line Regression Intercept Backtest", overlay = true)
Length = input(14, minval=1)
xSeria = input(title="Source", defval=close)
reverse = input(false, title="Trade reverse")
xX = Length * (Length - 1) * 0.5
xDivisor = xX * xX - Length * Length * (Length - 1) * (2 * Length - 1) / 6
xXY = 0
for i = 0 to Length-1
xXY := xXY + (i * xSeria[i])
xSlope = (Length * xXY - xX * sum(xSeria, Length)) / xDivisor
xLRI = (sum(xSeria, Length) - xSlope * xX) / Length
pos = iff(close > xLRI, 1,
iff(close < xLRI, -1, nz(pos[1], 0)))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1, 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(xLRI, color=blue, title="LRI")