
Это стратегия для отслеживания трендов, основанная на многопериодических пересечениях средних линий. Стратегия основана на перекрестных связях 20-ти, 50-ти и 200-ти циклов индексных движущихся средних ((EMA) и отношения цены к средним линиям для определения времени входа в рынок, в то же время для управления рисками установлена стоп-стоп на основе процентов. Эта стратегия особенно подходит для более крупных временных периодов, таких как часовой, календарный и недельный графики, эффективно захватывает среднесрочные и долгосрочные тенденции.
Основная логика стратегии основана на многомерной системе средних линий и анализе ценового поведения:
Это стратегия для отслеживания тенденций, разработанная с рациональной и логически четкой логикой. Благодаря совместному использованию нескольких технических показателей, гарантируется надежность стратегии, а также предоставляется четкий план управления рисками. Стратегия особенно подходит для работы на больших периодических диаграммах и имеет уникальные преимущества для понимания среднесрочных и долгосрочных тенденций.
/*backtest
start: 2024-10-28 00:00:00
end: 2024-11-27 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Cross Strategy with Targets and Fill", overlay=true)
// Define EMAs
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)
ema200 = ta.ema(close, 200)
// Plot EMAs (hidden)
plot(ema20, color=color.blue, title="EMA 20", display=display.none)
plot(ema50, color=color.red, title="EMA 50", display=display.none)
plot(ema200, color=color.green, title="EMA 200", display=display.none)
// Define the conditions
priceCrossAboveEMA20 = ta.crossover(close, ema20)
priceCloseAboveEMA20 = close > ema20
ema20AboveEMA50 = ema20 > ema50
ema50AboveEMA200 = ema50 > ema200
// Buy condition
buyCondition = priceCrossAboveEMA20 and priceCloseAboveEMA20 and ema20AboveEMA50 and ema50AboveEMA200
// Plot buy signals
plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
// Declare and initialize variables for take profit and stop loss levels
var float longTakeProfit = na
var float longStopLoss = na
var float buyPrice = na
// Update levels and variables on buy condition
if (buyCondition)
// Enter a new buy position
strategy.entry("Buy", strategy.long)
// Set new take profit and stop loss levels
longTakeProfit := strategy.position_avg_price * 1.10 // Target is 10% above the buy price
longStopLoss := strategy.position_avg_price * 0.95 // Stop loss is 5% below the buy price
buyPrice := strategy.position_avg_price
// Plot levels for the new trade
plotTakeProfit = plot(longTakeProfit, color=color.green, title="Take Profit", linewidth=1, offset=-1)
plotStopLoss = plot(longStopLoss, color=color.red, title="Stop Loss", linewidth=1, offset=-1)
plotBuyPrice = plot(buyPrice, color=color.blue, title="Buy Price", linewidth=1, offset=-1)
// Fill areas between buy price and take profit/stop loss levels
fill(plotBuyPrice, plotTakeProfit, color=color.new(color.green, 90), title="Fill to Take Profit") // Light green fill to target
fill(plotBuyPrice, plotStopLoss, color=color.new(color.red, 90), title="Fill to Stop Loss") // Light red fill to stop loss
// Exit conditions
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", limit=longTakeProfit, stop=longStopLoss)