Эта стратегия разработана как простая стратегия следования тренду, основанная на индикаторе EVWMA. Она использует быструю линию и медленную линию для построения индикатора EVWMA. Долгая позиция будет открыта, когда быстрая линия пересекает медленную линию, и короткая позиция будет открыта, когда быстрая линия пересекает ниже медленной линии, чтобы следовать тренду.
Основным показателем этой стратегии является EVWMA, а именно Elastic Volume Weighted Moving Average. Он включает в себя как информацию о ценах, так и объеме, чтобы динамически отражать тенденцию рынка путем расчета своего периода.
В частности, период быстрой линии рассчитывается как сумма объема последних 10 баров и 20 баров для медленной линии. EVWMA каждого бара рассчитывается как
Когда быстрая линия пересекает медленную линию, это указывает на то, что покупательная способность укрепляется, чтобы идти длинной. Когда быстрая линия пересекает ниже медленной линии, это указывает на то, что продажная способность укрепляется, чтобы идти короткой. С таким сочетанием быстрых и медленных линий стратегия может динамично улавливать рыночную тенденцию, чтобы следовать за тенденцией.
Самое большое преимущество этой стратегии заключается в динамической периодической конструкции индикатора EVWMA, позволяющей быстрее реагировать на изменения цены и объема, тем самым фиксируя рыночную тенденцию в режиме реального времени, что очень подходит для стратегий, следующих за трендом.
Основной риск этой стратегии заключается в ненадлежащем настройке параметров индикатора EVWMA. Если периоды быстрых и медленных линий не установлены должным образом, это может генерировать чрезмерные ложные сигналы. Кроме того, сами стратегии, следующие за трендом, имеют некоторые недостатки, когда тенденция рынка резко меняется.
Чтобы решить эти проблемы, мы можем оптимизировать параметры и корректировать периоды расчета быстрых и медленных линий, чтобы найти лучшую комбинацию. Кроме того, можно установить стоп-лосс для контроля риска потери.
Есть возможности для дальнейшей оптимизации этой стратегии. Например, другие индикаторы, такие как прорыв объема торговли, полосы Боллинджера и т. д., могут быть включены для подтверждения сигналов, тем самым повышая стабильность стратегии. Кроме того, оптимальные значения параметров могут отличаться в разных продуктах и периодах времени.
В торговых аспектах для контроля рисков также могут быть разработаны динамические стоп-лосс, последующие стоп-лосс и другие средства. Кроме того, адаптивный параметровый механизм может помочь получить оптимальные параметры для разных продуктов и периодов времени.
Эта стратегия использует динамический период дизайна индикатора EVWMA и включает информацию о объеме для построения эффективной тенденции следующей стратегии. Она может быстро реагировать на изменения цен и улавливать рыночные тенденции. С оптимизацией параметров, мерами контроля риска и т. Д. Стабильность стратегии может быть еще лучше. Логика этой стратегии является инновационной и стоит дальнейшего изучения и применения.
/*backtest start: 2022-12-05 00:00:00 end: 2023-12-11 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("QuantNomad - EVWMA Cross Strategy", shorttitle="EVWMA Cross", overlay=true) // Inputs fast_sum_length = input(10, title = "Fast Sum Length", type = input.integer) slow_sum_length = input(20, title = "Slow Sum Length", type = input.integer) // Calculate Volume Period fast_vol_period = sum(volume, fast_sum_length) slow_vol_period = sum(volume, slow_sum_length) // Calculate EVWMA fast_evwma = 0.0 fast_evwma := ((fast_vol_period - volume) * nz(fast_evwma[1], close) + volume * close) / (fast_vol_period) // Calculate EVWMA slow_evwma = 0.0 slow_evwma := ((slow_vol_period - volume) * nz(slow_evwma[1], close) + volume * close) / (slow_vol_period) // Plot plot(fast_evwma, title = "EVWMA Fast", linewidth = 2, color = color.red) plot(slow_evwma, title = "EVWMA Slow", linewidth = 2, color = color.green) // Strategy strategy.entry("Long", true, when = crossover(fast_evwma, slow_evwma)) strategy.entry("Short", false, when = crossunder(fast_evwma, slow_evwma))