
Основная идея этой стратегии заключается в том, чтобы открыть позицию на определенном расстоянии выше или ниже MA5 и закрыть позицию, когда цена закрытия выше цены открытия, или вернуться к цене открытия. Эта стратегия предназначена для захвата краткосрочных тенденций, контролируя при этом риск.
Стратегия использует 5-дневную простую скользящую среднюю ((SMA) в качестве основного индикатора. Исполняется сценарий купли-продажи, когда цена открытия новой карты выше MA5; сценарий купли-продажи, когда цена открытия новой карты ниже MA5 и находится на расстоянии более 0,002 от MA5; сценарий купли-продажи, когда цена открытия открытой позиции выше средней цены открытой позиции или равна средней цене открытой позиции; сценарий купли-продажи, когда цена открытой позиции ниже средней цены открытой позиции на 0,1%.
Эта стратегия является простой стратегией, основанной на краткосрочных тенденциях. Через переход вверх и вниз по MA5, а также настройка на расстояние от отметки, можно захватить краткосрочные возможности тренда. В то же время, фиксированная стоп-процент может контролировать риск. Но у этой стратегии также есть некоторые ограничения, такие как зависимость от одного показателя, частые сделки и т. д. В будущем можно рассмотреть возможность введения большего количества показателей, оптимизировать условия стоп-порогов, повысить устойчивость и адаптивность стратегии.
/*backtest
start: 2023-04-24 00:00:00
end: 2024-04-29 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("YBS Strategy 1.1", overlay=true)
// Moving Average Settings
ma5 = ta.sma(close, 5)
// Scenario 1: Buy when a new candle opens above the MA5
buy_condition_scenario1 = open > ma5
// Scenario 2: Buy when a new candle opens below the MA5 and is at a significant distance from the MA5
distance_from_ma5 = open - ma5
buy_condition_scenario2 = open < ma5 and distance_from_ma5 > 0.002 // Define distance in points here
// Sell: Sell at the close of the candle if it's positive above the entry price, or if the price returns to the entry price
sell_condition_scenario1 = close > strategy.position_avg_price or close == strategy.position_avg_price
sell_condition_scenario2 = close <= strategy.position_avg_price * 0.999 // Close if price drops more than 0.1% from entry price
// Execute buy and sell orders
if (buy_condition_scenario1 and not (strategy.opentrades > 0))
strategy.entry("Buy Scenario 1", strategy.long)
if (buy_condition_scenario2 and not (strategy.opentrades > 0))
strategy.entry("Buy Scenario 2", strategy.long)
if (sell_condition_scenario1)
strategy.close("Buy Scenario 1")
if (sell_condition_scenario2)
strategy.close("Buy Scenario 2")