
Эта стратегия является системой торговли, которая отслеживает тренды на основе двух равномерных скрещиваний. С помощью сравнения относительно позиционных отношений между краткосрочными и долгосрочными скользящими средними (около 9 и 21 дней, соответственно), она улавливает переходные моменты рыночных тенденций.
Основная логика стратегии основана на перекрестных сигналах двух различных периодических движущихся средних. Когда краткосрочная средняя линия (на 9 день) вверх пересекает долгосрочную среднюю линию (на 21 день), система считает, что рыночная динамика перемещается вверх, что вызывает множественный сигнал; когда краткосрочная средняя линия вниз пересекает долгосрочную среднюю линию, система считает, что рыночная динамика перемещается вниз, и сделка заканчивается. Кроме того, стратегия включает в себя статистические функции торговли, которые могут отслеживать в реальном времени количество сделок, количество прибылей и потерь, чтобы помочь трейдерам оценивать эффективность стратегии.
Это классическая, но практическая стратегия отслеживания тенденций, которая захватывает изменения в динамике рынка с помощью перекрестных двойных равномерных линий. Несмотря на то, что существует определенный риск задержки и ложных сигналов, ее простота и стабильность делают ее важным инструментом в области количественной торговли.
/*backtest
start: 2024-05-20 00:00:00
end: 2024-12-13 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Simple MA Crossover Strategy", overlay=true)
// Input parameters
shortMA = ta.sma(close, 9)
longMA = ta.sma(close, 21)
// Buy/Sell conditions
buyCondition = ta.crossover(shortMA, longMA)
sellCondition = ta.crossunder(shortMA, longMA)
// Plot moving averages
plot(shortMA, color=color.blue, title="Short MA")
plot(longMA, color=color.red, title="Long MA")
// Execute trades
if (buyCondition)
strategy.entry("Buy", strategy.long)
if (sellCondition)
strategy.close("Buy")
// Track trades, wins, and losses
var int totalTrades = 0
var int totalWins = 0
var int totalLosses = 0
if (strategy.opentrades > 0)
totalTrades := totalTrades + 1
if (strategy.opentrades == 0 and strategy.opentrades[1] > 0)
if (strategy.netprofit > 0)
totalWins := totalWins + 1
else
totalLosses := totalLosses + 1
// Plot trade statistics
var label tradeStats = na
if (not na(tradeStats))
label.delete(tradeStats)
tradeStats := label.new(bar_index, high, text="Trades: " + str.tostring(totalTrades) + "\nWins: " + str.tostring(totalWins) + "\nLosses: " + str.tostring(totalLosses), style=label.style_label_down, color=color.white, textcolor=color.black)