Это стратегия, основанная на кроссоверах EMA с несколькими временными рамками. Стратегия в первую очередь опирается на кроссоверы между экспоненциальными скользящими средними показателями (EMAs) на 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)