Эта стратегия основана на торговых сигналах Faytterro Estimator. Faytterro Estimator - это индикатор, используемый для определения тенденции путем расчета конверсионной дисперсии цены. Эта стратегия сочетает в себе торговые сигналы Faytterro Estimator и некоторые дополнительные условия, чтобы выпускать сигналы покупки и продажи различных размеров в идеальных точках.
В основе этой стратегии лежит Faytterro Estimator. Метод его расчета состоит в следующем: сначала рассчитывается конверсионная дисперсия цены CR, а затем создается вторичная функция, которая может отражать кривую CR, устанавливая различные коэффициенты.
В частности, сначала стратегия рассчитывает коэффициент сближения ценового дисперса CR.*Array dizi len, заполняет значение второй функции. Коэффициент второй функции отражает значение CR. Затем, наблюдая за двумя значениями, обозначенными len+1+5 и len+1+4, можно определить, возникает ли кривая в второй функции, и если она возникает, то подается сигнал покупки или продажи.
На этой основе, стратегия также устанавливает некоторые дополнительные условия, такие как установка минимального интервала ценовых прорывов, чтобы избежать частых сделок; установка входных сигналов разного размера и т. д. Эти условия предназначены для фильтрации нежелательных торговых точек.
Эта стратегия имеет следующие преимущества:
Используйте индикатор Faytterro Estimator для определения тенденций, который чувствителен к колебаниям цен и может заранее улавливать изменения тенденций.
Построение вторичных функций, отражающих характеристики кривой CR, поиск сигналов поворота, способ интуитивно эффективного суждения.
Устройство входных сигналов различных размеров позволяет совершать пирамидные сделки в идеальных точках, увеличивая прибыльность.
Добавление минимальных интервалов, эффективная фильтрация сигналов, предотвращение частых недействительных сделок.
Большое количество регулируемых параметров, оптимизация для разных сортов, высокая адаптивность.
Стратегическая мысль понятна, код читается легко, и его легко изучить.
В этой стратегии также есть некоторые риски, о которых следует помнить:
Faytterro Estimator имеет риски для криволинейного фитинга и может плохо работать в некоторых сортах.
Сигналы, основанные только на вторичных кривых, могут быть слишком широкими, что может привести к ошибочному суждению.
Частые пирамидальные сделки увеличивают комиссионные.
Большое количество параметров увеличивает сложность настройки.
Неэффективность в решении вопросов о недоразумениях в период колебаний цен.
Не существует механизмов по сдерживанию убытков, что может привести к увеличению убытков.
Решения, отвечающие риску, следующие:
Оптимизация параметров для различных сортов, повышение крепкости.
Добавьте фильтры для других показателей, чтобы избежать ошибочных выводов, основанных только на кривых.
Разумная установка стоп-лосса, контроль одиночных убытков
Автоматическая настройка параметров методом больших данных.
Повышение механизмов обнаружения и предотвращения сейсмических процессов.
Установка разумной логики сдерживания убытков
Стратегия оптимизации включает в себя:
Добавлена логика остановки убытков, контролируется одиночный убыток. Можно установить движущуюся остановку или временную остановку.
Добавление других комбинаций показателей, чтобы избежать риска ошибочного суждения по одному показателю Faytterro Estimator. Например, фильтрация в сочетании с MACD, KDJ и другими показателями.
Добавление механизма подтверждения, чтобы избежать выхода из-за стоп-лосса из-за кратковременного изменения цены. Можно рассмотреть возможность повторного подтверждения входа.
Оптимизировать adjustable parameters, устанавливать разумные параметры для разных сортов. Можно использовать методы генетических алгоритмов, оптимизации Байеса и т. Д.
Увеличение идентификации шоковых ситуаций, избегание торговли в период шока. Можно идентифицировать такие показатели, как ATR, DMI.
Оптимизация логики пирамиды, предотвращение отслеживания и устранения падений. Например, динамическая корректировка ставки нажима в зависимости от силы тренда.
Тестирование параметров различных временных циклов для поиска оптимального цикла.
Эта стратегия основана на торговых сигналах 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)