
Стратегия является системой для отслеживания трендов, основанной на пересечении быстрых и медленных скользящих средних показателей (EMA). Она генерирует более надежные сигналы покупки и продажи, подтверждая позиционную связь цены с двумя средними линиями. В стратегии встроена функция настройки временных интервалов обратной связи, что позволяет оценивать эффективность стратегии в определенном временном диапазоне.
Стратегия использует 10-циклические и 20-циклические ЭМА в качестве основных показателей. Когда быстрая ЭМА вверх пересекает медленную ЭМА, и цена закрытия находится выше двух средних линий, вызывается многосигнал; когда быстрая ЭМА вниз пересекает медленную ЭМА, и цена закрытия находится ниже двух средних линий, вызывается пустой сигнал. Этот механизм двойного подтверждения повышает надежность сигнала.
Это четко структурированная, логически строгая стратегия отслеживания тенденций. С помощью механизма подтверждения цены в сочетании с двумя равномерными пересечениями эффективно балансируется своевременность и надежность сигнала. Стратегия имеет хорошую масштабируемость и может быть улучшена путем оптимизации.
/*backtest
start: 2024-02-21 00:00:00
end: 2024-10-01 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BNB_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © BFXGold
//@version=5
strategy("BFX Buy and Sell", overlay=true)
// Inputs
ema_fast_length = input.int(10, title="Fast EMA Length")
ema_slow_length = input.int(20, title="Slow EMA Length")
// Calculate EMAs
ema_fast = ta.ema(close, ema_fast_length)
ema_slow = ta.ema(close, ema_slow_length)
// Confirmation candles
confirmation_above = close > ema_fast and close > ema_slow
confirmation_below = close < ema_fast and close < ema_slow
// Crossovers with confirmation
long_condition = ta.crossover(ema_fast, ema_slow) and confirmation_above
short_condition = ta.crossunder(ema_fast, ema_slow) and confirmation_below
// Plot signals
if (long_condition )
label.new(bar_index, low, text="BUY", style=label.style_label_up, color=color.new(color.green, 0), textcolor=color.white)
if (short_condition)
label.new(bar_index, high, text="SELL", style=label.style_label_down, color=color.new(color.red, 0), textcolor=color.white)
// Strategy execution for backtesting
if (long_condition)
strategy.entry("Long", strategy.long)
if (short_condition)
strategy.entry("Short", strategy.short)
// Plot EMAs
plot(ema_fast, title="Fast EMA (10)", color=color.blue, linewidth=1)
plot(ema_slow, title="Slow EMA (20)", color=color.orange, linewidth=1)