Стратегия прорыва средней линии - это стратегия торговли на коротких линиях, использующая движущуюся среднюю для вынесения суждений. Эта стратегия используется для установки длины средней линии и совершения операций по покупке и продаже при прорыве средней линии.
Эта стратегия используется для определения движения цены, в основном, путем установления двух движущихся средних, быстрой и медленной линий. Быстрая линия имеет короткий период, чувствительный к реакции; медленная линия имеет длинный период, стабильный.
В коде определяются кратковременный период shortPeriod и кратковременный период longPeriod путем установки входных параметров. Затем вычисляются значения двух равнозначных линий shortSMA и longSMA.
Когда короткопериодическая средняя линия сверху прорывает долгопериодическую среднюю линию, это указывает на то, что ценовое движение сверху вниз, делая больше; когда короткопериодическая средняя линия сверху вниз, это указывает на то, что ценовое движение сверху вниз, делая больше.
Условия для вступления в многопозиционную позицию:
快线由下向上突破慢线
快线>慢线
Условия для открытия позиции:
快线由上向下跌破慢线
快线<慢线
Кроме того, в стратегии используются параметры, такие как стоп-лосс, стоп-стоп и сумма, чтобы контролировать риск.
Предупреждение риска:
Концепция стратегии прорыва средней линии проста, ее легко использовать, но есть некоторые проблемы, такие как ложные прорывы, задержки и т. Д. Можно улучшить ее методами оптимизации параметров и комбинации других показателей. В целом, эта стратегия подходит для стратегии первого этапа вступления новичка, после овладения основными принципами, ее можно далее оптимизировать и повысить рентабельность.
/*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")