Торговая стратегия на основе Faytterro Estimator


Дата создания: 2023-09-22 14:12:27 Последнее изменение: 2023-09-22 14:12:27
Копировать: 1 Количество просмотров: 1452
1
Подписаться
1617
Подписчики

Обзор

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

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

В основе этой стратегии лежит Faytterro Estimator. Метод его расчета состоит в следующем: сначала рассчитывается конверсионная дисперсия цены CR, а затем создается вторичная функция, которая может отражать кривую CR, устанавливая различные коэффициенты.

В частности, сначала стратегия рассчитывает коэффициент сближения ценового дисперса CR.*Array dizi len, заполняет значение второй функции. Коэффициент второй функции отражает значение CR. Затем, наблюдая за двумя значениями, обозначенными len+1+5 и len+1+4, можно определить, возникает ли кривая в второй функции, и если она возникает, то подается сигнал покупки или продажи.

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

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

Эта стратегия имеет следующие преимущества:

  1. Используйте индикатор Faytterro Estimator для определения тенденций, который чувствителен к колебаниям цен и может заранее улавливать изменения тенденций.

  2. Построение вторичных функций, отражающих характеристики кривой CR, поиск сигналов поворота, способ интуитивно эффективного суждения.

  3. Устройство входных сигналов различных размеров позволяет совершать пирамидные сделки в идеальных точках, увеличивая прибыльность.

  4. Добавление минимальных интервалов, эффективная фильтрация сигналов, предотвращение частых недействительных сделок.

  5. Большое количество регулируемых параметров, оптимизация для разных сортов, высокая адаптивность.

  6. Стратегическая мысль понятна, код читается легко, и его легко изучить.

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

В этой стратегии также есть некоторые риски, о которых следует помнить:

  1. Faytterro Estimator имеет риски для криволинейного фитинга и может плохо работать в некоторых сортах.

  2. Сигналы, основанные только на вторичных кривых, могут быть слишком широкими, что может привести к ошибочному суждению.

  3. Частые пирамидальные сделки увеличивают комиссионные.

  4. Большое количество параметров увеличивает сложность настройки.

  5. Неэффективность в решении вопросов о недоразумениях в период колебаний цен.

  6. Не существует механизмов по сдерживанию убытков, что может привести к увеличению убытков.

Решения, отвечающие риску, следующие:

  1. Оптимизация параметров для различных сортов, повышение крепкости.

  2. Добавьте фильтры для других показателей, чтобы избежать ошибочных выводов, основанных только на кривых.

  3. Разумная установка стоп-лосса, контроль одиночных убытков

  4. Автоматическая настройка параметров методом больших данных.

  5. Повышение механизмов обнаружения и предотвращения сейсмических процессов.

  6. Установка разумной логики сдерживания убытков

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

Стратегия оптимизации включает в себя:

  1. Добавлена логика остановки убытков, контролируется одиночный убыток. Можно установить движущуюся остановку или временную остановку.

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

  3. Добавление механизма подтверждения, чтобы избежать выхода из-за стоп-лосса из-за кратковременного изменения цены. Можно рассмотреть возможность повторного подтверждения входа.

  4. Оптимизировать adjustable parameters, устанавливать разумные параметры для разных сортов. Можно использовать методы генетических алгоритмов, оптимизации Байеса и т. Д.

  5. Увеличение идентификации шоковых ситуаций, избегание торговли в период шока. Можно идентифицировать такие показатели, как ATR, DMI.

  6. Оптимизация логики пирамиды, предотвращение отслеживания и устранения падений. Например, динамическая корректировка ставки нажима в зависимости от силы тренда.

  7. Тестирование параметров различных временных циклов для поиска оптимального цикла.

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

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

Исходный код стратегии
/*backtest
start: 2022-09-21 00:00:00
end: 2023-08-10 00:00:00
period: 1d
basePeriod: 1h
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/
// © faytterro

//@version=5
// strategy("Faytterro Estimator Strategy", overlay=true, pyramiding=100)

src=input(hlc3,title="source")
len=input.int(10,title="faytterro estimator lenght", maxval=500)
len2=100
len3=input.float(500,title="minumum enrty-close gap (different direction)")
len4=input.float(500,title="minumum entry-entry gap (same direction)")
cr(x, y) =>
    z = 0.0
    weight = 0.0
    for i = 0 to y-1
        z:=z + x[i]*((y-1)/2+1-math.abs(i-(y-1)/2))
    z/(((y+1)/2)*(y+1)/2)
cr= cr(src,2*len-1) 
width=input.int(10, title="strong entry size", minval=1)

dizi = array.new_float(500)
// var line=array.new_line()
//if barstate.islast
for i=0 to len*2
    array.set(dizi,i,(i*(i-1)*(cr-2*cr[1]+cr[2])/2+i*(cr[1]-cr[2])+cr[2]))

buy = array.get(dizi,len+1+5)>array.get(dizi,len+1+4) and array.get(dizi,len+1+5)<cr[len] 
sell = array.get(dizi,len+1+5)<array.get(dizi,len+1+4) and array.get(dizi,len+1+5)>cr[len]
bb=buy? hlc3 : na
ss=sell? hlc3 : na 
sbuy= buy and close<(close[ta.barssince(buy or sell)])[1]-len4 and close<ta.highest(fixnan(ss),len2)-len3*3
ssell= sell and close>(close[ta.barssince(buy or sell)])[1]+len4 and close>ta.lowest(fixnan(bb),len2)+len3*3

buy:= buy and close<(close[ta.barssince(buy or sell)])[1]-len4 and close<ta.highest(fixnan(ss),len2)-len3 //and close>ta.highest(fixnan(ss),len2)-len3*3
sell:=  sell and close>(close[ta.barssince(buy or sell)])[1]+len4 and close>ta.lowest(fixnan(bb),len2)+len3 //and close<ta.lowest(fixnan(bb),len2)+len3*3
alertcondition(buy or sell)


if (sbuy)
    strategy.entry("strong buy", strategy.long,width)
if (ssell)
    strategy.entry("strong sell", strategy.short,width)
if (buy)
    strategy.entry("buy", strategy.long)
if (sell)
    strategy.entry("sell", strategy.short)