Стратегия следования за трендом, основанная на волновых каналах и индикаторах денежных потоков


Дата создания: 2023-11-16 16:38:03 Последнее изменение: 2023-11-16 16:38:03
Копировать: 0 Количество просмотров: 703
1
Подписаться
1617
Подписчики

Стратегия следования за трендом, основанная на волновых каналах и индикаторах денежных потоков

Обзор

Стратегия использует в сочетании индикатора волнового канала и индикатора денежных потоков, чтобы идентифицировать направление тенденции и отслеживать тенденцию. Стратегия работает на 15-минутных временных циклах, определяет направление ценовой тенденции через волновый канал, затем использует индикатор денежных потоков для подтверждения тенденции и отслеживает тенденцию сверх короткой линии.

Стратегический принцип

Индикатор WaveTrend позволяет эффективно идентифицировать направление тренда цены. Он состоит из средней линии канала, средней цены канала и индекса канала. Средняя линия канала - это показательная движущаяся средняя цены, отражающая тенденцию цены.

Показатель денежных потоков (CMF) позволяет оценить приток и отток денег, подтверждая тенденцию. Этот показатель основан на накоплении/распределении после корректировки объемов сделок и отражает соотношение сил между покупателями и продавцами. Значение около 0 означает равновесие притока и оттока денег; ниже 0 означает отток денег, выше 0 означает приток денег.

Эта стратегия работает на 15-минутных циклах, с помощью индикатора волнового канала определяет направление ценовой тенденции, а затем использует индикатор денежных потоков для подтверждения, что позволяет отслеживать тенденцию. В частности, если индикатор волнового канала индикатор канального индекса ниже 60, а индикатор денежных потоков меньше -0.2, то делать больше; если индикатор волнового канала индикатора канала индикатора более 60, а индикатор денежных потоков больше 0,2, то делать свободные позиции.

Стратегические преимущества

  1. Индикатор волнового канала помогает определить направление ценовых тенденций
  2. Показатели денежных потоков позволяют определить направление тренда и избежать ошибочных сделок
  3. В сочетании с волновыми каналами и показателями денежных потоков можно отслеживать сверхкороткие линии
  4. 15-минутный цикл, более подходящий для коротких операций

Стратегический риск

  1. Показатель волнового канала может привести к ошибочному сигналу во время сверки
  2. Показатели денежных потоков могут отстать и пропустить поворотный момент
  3. Одноциклические операции более рискованны, следует надлежащим образом ослабить циклы удержания позиций
  4. Отсутствие стратегии по сдерживанию убытков, невозможность контролировать убытки

Решение риска:

  1. Подтверждение в сочетании с другими показателями, чтобы избежать ошибочных сигналов
  2. Дополнительные параметры показателя по потокам капитала, повышая чувствительность
  3. Допустимое продление периода удержания позиции для снижения риска за один период
  4. Увеличение стратегий, таких как перемещение стоп, переключение стоп, контроль потерь

Направление оптимизации стратегии

  1. Повышение оптимизации позиций, чтобы стратегия могла лучше отслеживать тенденции
  2. Увеличение стратегии по сдерживанию убытков и борьба с единичными потерями
  3. В сочетании со сточ-полюсными индикаторами и т.д., чтобы избежать ошибочного сигнала из-за одного индикатора
  4. Тестирование различных периодов для поиска оптимального периода
  5. Оптимизация параметров показателя потока капитала для поиска оптимального сочетания параметров

Подвести итог

Стратегия использует индикаторы волнового канала для определения направления тренда и подтверждения показателей денежных потоков для осуществления операций по отслеживанию тренда сверх короткой линии. Преимущество стратегии заключается в том, что портфель показателей разумен, эффективно отслеживает тенденцию, а 15-минутный цикл функционирования более подходит для операций по короткой линии. Но также существуют риски, такие как неточность индикаторного сигнала, слишком короткое время удержания позиции и т. Д. В будущем можно дополнительно оптимизировать стратегию путем остановки убытков, параметрической оптимизации, увеличения фильтрации сигналов и т. Д., Чтобы повысить стабильность стратегии и доходность.

Исходный код стратегии
/*backtest
start: 2023-11-08 00:00:00
end: 2023-11-15 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "CMF - WaveTrend", shorttitle = "CMF - WaveTrend", overlay = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, currency = currency.EUR)

//Chaikin Money Flow

len = input(20, minval=1, title="Length")
mas = input(title="Aggregation", defval="SUM", options=["SUM", "EMA", "WMA"])
e = input(10.0, title="Volume Exponent (0-10 reduces & 10+ increases volume effect)")
p = input(false, title="Show in Percentage")
mvs = input(false, "Factor in Price (Money Volume)")
src=input(hlc3, title="Source for price factor")

trl = min(low,close[1]), trh = max(high,close[1]) // 'true range' fixes issues caused by gaps in price
wv = pow(volume,e/10.0)*(mvs ? src : 1)
ad = (trh==trl ? 0 : (2*close-(trh+trl))/tr(true))*wv
cmf = mas=="SUM" ? sum(ad, len)/sum(wv, len) : mas=="EMA" ? ema(ad, len)/ema(wv, len) : mas=="WMA" ? wma(ad, len)/wma(wv, len) : na
cmf_p  = if p
    50*cmf+50
else
    cmf
b = p ? 50 : 0


//WaveTrend
n1 = input(10, "Channel Length")
n2 = input(21, "Average Length")
obLevel1 = input(60, "Over Bought Level 1")
obLevel2 = input(53, "Over Bought Level 2")
osLevel1 = input(-60, "Over Sold Level 1")
osLevel2 = input(-53, "Over Sold Level 2")
 
ap = hlc3 
esa = ema(ap, n1)
d = ema(abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = ema(ci, n2)
 
wt1 = tci
wt2 = sma(wt1,4)
// 


longCondition = wt1 < -60 and cmf < - 0.20
if (longCondition)
 
    strategy.entry("My Long Entry Id", strategy.long)
    
 
shortCondition = wt1 > 60 and cmf > 0.20
if (shortCondition)
 
    strategy.entry("My Short Entry Id", strategy.short)
    
closeLongCondition = cmf_p > 0.18 ? true : false
closeShortCondition = cmf_p < -0.18 ? true : false
    
    
strategy.close("My Long Entry Id", when=(closeLongCondition == true))
strategy.close("My Short Entry Id", when=(closeShortCondition == true))