Эта стратегия строит простую стратегию двойного толчка, основанную на индикаторе SMA. Она длинна, когда цена пересекает 20-периодную самую высокую SMA, и коротка, когда цена пересекает 20-периодную самую низкую SMA.
Эта стратегия использует 20-периодную SMA с самой высокой ценой и самой низкой низкой ценой для определения направления для торговли. Когда цена пересекает верхнюю SMA, она считается восходящим трендом, поэтому идет на длинный. Когда цена пересекает нижнюю SMA, она считается нисходящим трендом, поэтому идет на короткий.
В частности, стратегия сначала рассчитывает 20-периодную SMA наивысших высоких и самых низких низких цен, а также графики линий индикатора.
Длинный вход: цена закрытия пересекает верхнюю SMA
Длинный выход: цена закрытия пересекается ниже 0,99 * наивысшая SMA
Короткий вход: цена закрытия пересекает нижнюю SMA
Короткий выход: цена закрытия пересекает отметку выше 1,01 * минимальная SMA
Таким образом, формируется тенденция следования стратегии двойной тяги.
Эта стратегия имеет следующие преимущества:
Эта стратегия также сопряжена с некоторыми рисками:
Эти риски можно контролировать и уменьшать путем сочетания других индикаторов, установки стоп-лосса, настройки параметров и т.д.
Эта стратегия также может быть улучшена в следующих аспектах:
Общая логика этой стратегии ясна и проста в реализации. Используя SMA для определения направления тренда и установления разумных правил входа / выхода, можно достичь хороших результатов. Есть возможность дальнейшей оптимизации, и в сочетании с другими методами она может стать перспективной стратегией, которая стоит долгосрочного отслеживания.
/*backtest start: 2023-11-14 00:00:00 end: 2023-11-21 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © AlanAntony //@version=4 strategy("ma 20 high-low",overlay=true) //compute the indicators smaH = sma(high, 20) smaL = sma(low, 20) //plot the indicators plot(smaH,title="smaHigh", color=color.green, linewidth=2) plot(smaL,title="smaLow", color=color.red, linewidth=2) //trading logic enterlong = crossover(close,smaH) //positive ema crossover exitlong = crossunder(close,0.99*smaH) //exiting long entershort = crossunder(close,smaL) //negative EMA Crossover exitshort = crossover(close,1.01*smaH) //exiting shorts notintrade = strategy.position_size<=0 bgcolor(notintrade ? color.red:color.green) //execution logic start = timestamp(2015,6,1,0,0) //end = timestamp(2022,6,1,0,0) if time >= start strategy.entry( "long", strategy.long,1, when = enterlong) strategy.entry( "short", strategy.short,1, when = entershort) strategy.close("long", when = exitlong) strategy.close("short", when = exitshort) //if time >= end // strategy.close_all()