A estratégia de quebra de linha média é uma estratégia de negociação de linha curta que usa a média móvel para julgar. A estratégia é definida por um comprimento de linha média e operação de compra e venda quando a linha média é quebrada.
A estratégia é baseada em duas médias móveis, a linha rápida e a linha lenta. A linha rápida tem um período curto e é sensível à reação, enquanto a linha lenta tem um período longo e a reação é estável.
O código define o período de linha rápida (shortPeriod) e o período de linha lenta (longPeriod) através da configuração de parâmetros de entrada. Em seguida, os valores de duas linhas médias (shortSMA e longSMA) são calculados.
Quando a média de curto período de cima para baixo quebra a média de longo período de cima para baixo, indica que a tendência do preço é de cima para baixo, fazendo mais; quando a média de curto período de cima para baixo quebra a média de longo período de cima para baixo, indica que a tendência do preço é de cima para baixo, fazendo mais.
A entrada para a condição de uma posição múltipla:
快线由下向上突破慢线
快线>慢线
Para entrar em uma posição de curto prazo:
快线由上向下跌破慢线
快线<慢线
Além disso, a estratégia também define parâmetros como stop loss, stop loss, e quantidade para controlar o risco.
Prevenção de riscos:
O conceito da estratégia de ruptura da linha de equilíbrio é simples, é fácil de operar, mas também há alguns problemas, como ruptura falsa, atraso, etc. Pode ser melhorado por meio de otimização de parâmetros, combinação de outros indicadores e outras formas. Em geral, a estratégia é adequada para a estratégia da primeira fase de entrada de iniciantes, e depois de dominar os princípios básicos, pode ser otimizada para aumentar a lucratividade.
/*backtest
start: 2023-08-26 00:00:00
end: 2023-09-25 00:00:00
period: 1h
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/
// © YohanNaftali
//@version=5
///////////////////////////////////////////////////////////////////////////////
// Heikin Ashi Candle Startegy
// ver 2021.12.29
// © YohanNaftali
// This script composed by Yohan Naftali for educational purpose only
// Reader who will use this signal must do own research
///////////////////////////////////////////////////////////////////////////////
strategy(
title = 'Heikin Ashi Candle Startegy Long',
shorttitle = 'HA Strategy Long',
format = format.price,
precision = 0,
overlay = true)
// Input
validationPeriod = input.int(
defval = 3,
title = 'Validation Period',
group = 'Candle')
qtyOrder = input.float(
defval = 1.0,
title = 'Qty',
group = 'Order')
maxActive = input.float(
defval = 1.0,
title = 'Maximum Active Open Position',
group = 'Order')
// Long Strategy
tpLong = input.float(
defval = 1,
title = "Take Profit (%)",
minval = 0.0,
step = 0.1,
group = "Long") * 0.01
slLong = input.float(
defval = 25,
title = "Stop Loss (%)",
minval=0.0,
step=0.1,
group="Long") * 0.01
trailingStopLong = input.float(
defval = 0.2,
title = "Trailing Stop (%)",
minval = 0.0,
step = 0.1,
group = 'Long') * 0.01
// Calculation
haTicker = ticker.heikinashi(syminfo.tickerid)
haClose = request.security(haTicker, timeframe.period, close)
haOpen = request.security(haTicker, timeframe.period, open)
// Long
limitLong = tpLong > 0.0 ? strategy.position_avg_price * (1 + tpLong) : na
stopLong = slLong > 0.0 ? strategy.position_avg_price * (1 - slLong) : na
float trailLong = 0.0
trailLong := if strategy.position_size > 0
trailClose = close * (1 - trailLong)
math.max(trailClose, trailLong[1])
else
0
isGreen = true
for i = 0 to validationPeriod-1
isGreen := isGreen and haClose[i] > haOpen[i]
isLong = isGreen and haClose[validationPeriod] < haOpen[validationPeriod]
plot(
limitLong,
title = 'Limit',
color = color.rgb(0, 0, 255, 0),
style = plot.style_stepline,
linewidth = 1)
plot(
trailLong,
title = 'Trailing',
color = color.rgb(255, 255, 0, 0),
style = plot.style_stepline,
linewidth = 1)
plot(
stopLong,
title = 'Stop',
style = plot.style_stepline,
color = color.rgb(255, 0, 0, 0),
linewidth = 1)
// plotshape(
// isLong,
// title = 'Entry',
// style = shape.arrowup,
// location = location.belowbar,
// offset = 1,
// color = color.new(color.green, 0),
// text = 'Long Entry',
// size = size.small)
// Strategy
strategy.risk.max_position_size(maxActive)
strategy.risk.allow_entry_in(strategy.direction.long)
strategy.entry(
id = "Long",
direction = strategy.long,
qty = qtyOrder,
when = isLong,
alert_message = "LN")
if (strategy.position_size > 0)
strategy.exit(
id = "Long Exit",
from_entry = "Long",
limit = limitLong,
stop = stopLong,
trail_price = trailLong,
alert_message = "LX")