Эта стратегия генерирует торговые сигналы, основанные на прорыве и обратном вызове нескольких линий скользящей средней.
Код использует 4 скользящих средних линии с разными периодами - 21-дневный, 50-дневный, 100-дневный и 200-дневный. Он входит в длинные позиции, когда цена проходит через эти линии MA, и входит в короткие позиции, когда цена падает ниже этих линий MA. Кроме того, уровни стоп-лосса и прибыли устанавливаются в стратегии. В частности, стоп-лосс устанавливается около самой низкой точки предыдущей свечи, а прибыль устанавливается в 3 раза больше расстояния между самой низкой точкой и самой высокой точкой предыдущей свечи.
Основная идея этой стратегии заключается в том, чтобы судить о тренде с использованием скользящих средних. Когда цена проходит через линии MA вверх, это указывает на восходящую тенденцию, поэтому должна идти длинной. Когда цена падает ниже линий MA вниз, это указывает на нисходящую тенденцию, поэтому должна идти короткой. Использование нескольких линий MA с различными периодами может более точно судить о тренде и также проверять торговые сигналы посредством последовательности тренда.
Основными преимуществами этой стратегии являются:
Основными рисками этой стратегии являются:
Эти риски могут быть уменьшены путем корректировки параметров MA и оптимизации стоп-лосса и получения прибыли.
Эта стратегия может быть оптимизирована в следующих аспектах:
В целом, это типичный тренд, следующий за стратегией. Преимущества заключаются в четкой логике и простоте понимания и реализации. Недостатком является склонность к ложным сигналам. Стратегия может быть улучшена путем настройки параметров и добавления других индикаторов. Она подходит для средне- и долгосрочного держания и также может использоваться в качестве компонента краткосрочных торговых стратегий.
/*backtest start: 2022-11-15 00:00:00 end: 2023-11-21 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("DolarBasar by AlperDursun", shorttitle="DOLARBASAR", overlay=true) // Input for Moving Averages ma21 = ta.sma(close, 21) ma50 = ta.sma(close, 50) ma100 = ta.sma(close, 100) ma200 = ta.sma(close, 200) // Calculate the lowest point of the previous candle for stop loss lowestLow = ta.lowest(low, 2) // Calculate the highest point of the previous candle for stop loss highestHigh = ta.highest(high, 2) // Calculate take profit levels takeProfitLong = lowestLow - 3 * (lowestLow - highestHigh) takeProfitShort = highestHigh + 3 * (lowestLow - highestHigh) // Entry Conditions longCondition = ta.crossover(close, ma21) or ta.crossover(close, ma50) or ta.crossover(close, ma100) or ta.crossover(close, ma200) shortCondition = ta.crossunder(close, ma21) or ta.crossunder(close, ma50) or ta.crossunder(close, ma100) or ta.crossunder(close, ma200) // Stop Loss Levels stopLossLong = lowestLow * 0.995 stopLossShort = highestHigh * 1.005 // Exit Conditions longExitCondition = low < stopLossLong or high > takeProfitLong shortExitCondition = high > stopLossShort or low < takeProfitShort if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) if (longExitCondition) strategy.exit("Long Exit", from_entry="Long", stop=stopLossLong, limit=takeProfitLong) if (shortExitCondition) strategy.exit("Short Exit", from_entry="Short", stop=stopLossShort, limit=takeProfitShort)