
Двойная равновесная стратегия является классической стратегией отслеживания тенденций. Эта стратегия использует движущиеся средние с двумя различными периодами для захвата рыночных тенденций, когда быстрая равновесная линия производит многосигналы при прохождении медленной средней линии, а при прохождении медленной средней линии - пустые сигналы при прохождении медленной средней линии.
В коде стратегии используются две движущиеся средние, одна из которых является быстрой средней ((по умолчанию 14-й период), а другая - медленной средней ((по умолчанию 28-й период). Типы движущихся средних могут быть выбраны: простая движущаяся средняя ((SMA), показательная движущаяся средняя ((EMA), весовая движущаяся средняя ((WMA) и относительная движущаяся средняя ((RMA).
Основная логика этой стратегии состоит в следующем:
С помощью такой логики стратегия может следить за основными тенденциями рынка, держать позиции с несколькими головами в восходящих тенденциях, держать позиции с пустыми головами в нисходящих тенденциях или ждать пустых позиций.
Для борьбы с этими рисками можно предпринять следующие меры:
Эти оптимизации могут повысить адаптивность и устойчивость стратегии, чтобы лучше адаптироваться к различным рыночным условиям. Однако следует учитывать, что чрезмерная оптимизация может привести к тому, что стратегия будет перенастраиваться и плохо работать в реальном мире.
Двухлинейный пересечение является классической стратегией для отслеживания тенденций, которая генерирует торговый сигнал через пересечение движущихся средних с помощью двух различных циклов. Его логика проста, легко реализована и применима к трендовым рынкам. Однако в нестабильных рынках могут возникать частые сделки и последовательные потери. Поэтому при использовании этой стратегии необходимо оптимизировать параметры равнолинейного цикла в соответствии с особенностями рынка и разумно устанавливать стоп-стоп. Кроме того, можно повысить адаптивность и стабильность стратегии путем введения большего количества технических показателей, оптимизации управления позициями, методов определения тенденций и т. д.
/*backtest
start: 2024-02-09 00:00:00
end: 2024-03-10 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © z4011
//@version=5
strategy("#2idagos", overlay=true, margin_long=100, margin_short=100)
allowShorting = input.bool(true, "Allow Shorting")
fastMALength = input.int(14, "Fast MA Length")
slowMALength = input.int(28, "Slow MA Length")
fastMAType = input.string("Simple", "Fast MA Type", ["Simple", "Exponential", "Weighted", "Relative"])
slowMAType = input.string("Simple", "Fast MA Type", ["Simple", "Exponential", "Weighted", "Relative"])
float fastMA = switch fastMAType
"Simple" => ta.sma(close, fastMALength)
"Exponential" => ta.ema(close, fastMALength)
"Weighted" => ta.wma(close, fastMALength)
"Relative" => ta.rma(close, fastMALength)
plot(fastMA, color = color.aqua, linewidth = 2)
float slowMA = switch slowMAType
"Simple" => ta.sma(close, slowMALength)
"Exponential" => ta.ema(close, slowMALength)
"Weighted" => ta.wma(close, slowMALength)
"Relative" => ta.rma(close, slowMALength)
plot(slowMA, color = color.blue, linewidth = 2)
longCondition = ta.crossover(fastMA, slowMA)
if (longCondition)
strategy.entry("Long", strategy.long)
shortCondition = ta.crossunder(fastMA, slowMA) and allowShorting
if (shortCondition)
strategy.entry("Short", strategy.short)
closeCondition = ta.crossunder(fastMA, slowMA) and not allowShorting
if (closeCondition)
strategy.close("Long", "Close")