Стратегия бэктестинга линии расширения будущей цены


Дата создания: 2024-02-05 14:00:01 Последнее изменение: 2024-02-05 14:00:01
Копировать: 0 Количество просмотров: 737
1
Подписаться
1617
Подписчики

Стратегия бэктестинга линии расширения будущей цены

Обзор

Основная идея этой стратегии заключается в том, чтобы определить направление будущей цены, нарисовав протяженную линию будущей цены и объединив ее с отношением текущей цены к этой линии. Когда цена выше или ниже протяженной линии, можно соответственно делать больше или меньше.

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

Будущие линии демаркации (Future Lines of Demarcation, FLD) представляют собой среднюю, самую высокую или самую низкую цену в течение определенного будущего периода. Эта стратегия использует FLD для определения будущего движения цены.

  1. В зависимости от длины цикла, вычисляется период смещения FLD, то есть будущая цена Price.
  2. Сравнение текущей цены закрытия с ценой после периода сдвига FLD.
    • Когда цена Close ниже, чем цена FLD в будущем, считается позитивным сигналом.
    • Когда цена закрытия выше, чем цена фьючерса FLD, это считается сигналом о падении.
  3. В зависимости от сигнала повышения и понижения, проводить соответствующие операции по увеличению и понижению.

Анализ преимуществ

Основные преимущества этой стратегии:

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

Анализ рисков

Основные риски этой стратегии:

  1. FLD сам по себе может быть неисправен, что приводит к упущенным возможностям или ошибочным сигналам.
  2. Неправильная настройка параметров цикла может привести к слишком большому количеству ошибочных сигналов. Необходимо оптимизировать длину цикла.
  3. Внезапные события приводят к резким колебаниям цен, прогноз ФЛД не работает. Можно установить стоп-лосс, чтобы контролировать риск.

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

Эта стратегия может быть оптимизирована в следующих аспектах:

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

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

Эта стратегия является типичной стратегией отслеживания тенденций, сравнивая цены с будущими ценовыми линиями после их смещения. Логика в целом ясна и понятна, и риск реализации меньше. Лучший эффект от стратегии может быть получен путем оптимизации параметров и комбинации индикаторов.

Исходный код стратегии
/*backtest
start: 2023-01-29 00:00:00
end: 2024-02-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 15/02/2017
//  An FLD is a line that is plotted on the same scale as the price and is in fact the 
//  price itself displaced to the right (into the future) by (approximately) half the 
//  wavelength of the cycle for which the FLD is plotted. There are three FLD's that can be 
//  plotted for each cycle:
//    An FLD based on the median price.
//    An FLD based on the high price.
//    An FLD based on the low price.
///////////////////////////////////////////////////////////////////
strategy(title="FLD's - Future Lines of Demarcation", overlay=true)
Period = input(title="Period", defval=40)
src = input(title="Source", defval=hl2)
reverse = input(false, title="Trade reverse")
FLD = src
pos = iff(FLD[Period] < close , 1,
       iff(FLD[Period] > close, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
         iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue)
plot(FLD, title="FLD", style=line, linewidth=1, color=black, offset = Period)