Обсуждение статьи "Грокаем "память" рынка через дифференцирование и энтропийный анализ" - страница 9

[Удален]  
clemmo:

Я получаю эти ошибки:

1. Похоже, что советник пытается продать, но ставит стопы так, как будто это покупка?
2019.07.25 04:35:35.174 Trades '666': failed market sell 0.10 USDCHF sl: 0.98139 tp: 0.99039 [Invalid stops]

2. Советник удаляется при формировании нового бара или свечи.

3. Советник может заключать только сделки на продажу (если это не сделано специально на этапе оптимизации?)

4. Советник использует другой торговый объем только для NZDUSD?

update0: после дальнейшего тестирования я могу сказать, что проблема автоудаления связана с пользовательскими настройками из скриншота гиперпараметров. Я попытаюсь определить, с какими именно.
update1:Это связано с настройкой глубины истории на 1500. Я попытаюсь посмотреть, дают ли разные значения разные результаты. Я тестирую на M1 и M15 и имею достаточно истории цен.
update2: Советник удалит себя, если History_depth 1027 >= ||<= 956

5. Через некоторое время окно энтропии уменьшится до небольшого размера, как на скриншоте.

update3: Я могу предположить, что проблема с sell-only связана со слишком низким таймфреймом, использованным при тестировании (M1). Это генерирует очень большие значения энтропии, которые выходят за рамки? Тестирование на M15>= создает ордера на покупку и продажу.

update4: Я могу предположить, что проблема с размером окна энтропии связана с начальным размером окна графика. Если оно масштабируется на весь экран, то окно отображается нормально.

update5: После попытки изменить магические числа теперь все графики удаляются на следующем баре. Я пробовал перезапускать терминал, использовать новые графики. Я не уверен, что еще можно попробовать, в журнале нет ошибок. Я не могу тестировать дальше?

Привет, я думаю, что есть некоторые проблемы с нормализацией для энтропии, поэтому она меняет свои значения с течением времени. Возможно, чуть позже я исправлю это и включу другой индикатор О других проблемах - думаю, я не совсем понимаю. Может быть, есть какие-то ошибки в журнале терминала?

 

Здравствуйте, Максим,

Я попробовал скомпилировать fractional_entropy_trader, но появилось следующее сообщение об ошибке:

'virtual_optimizer' - функция уже определена и имеет другой тип Auto_optimizer.mqh line 47 col 18

Подскажите, пожалуйста, как я могу решить эту проблему?

Спасибо

Даниэль

 

Очень сложно для понимания,

Какие базовые знания вам нужны, чтобы разобраться с этой темой?

Имеет ли все это отношение к интегральному исчислению?

 
Alexander:

Очень сложный для понимания,

Какие базовые знания вам необходимы для работы с этой темой?

Имеет ли все это отношение к интегральному исчислению?

  1. Здесь есть только суммирование и умножение!
  2. Вместо математики просто попытайтесь понять поток программ.
  3. Энтропия - это просто мера беспорядка в физике - здесь: высокая энтропия = много колебаний цен.
 
kttongsg:

Привет, Максим,

Я попытался скомпилировать fractional_entropy_trader, но появилось следующее сообщение об ошибке:

'virtual_optimizer' - функция уже определена и имеет другой тип Auto_optimizer.mqh line 47 col 18

Подскажите, пожалуйста, как я могу решить эту проблему?

Спасибо

Даниэль

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

 

Добрый день,

хотел бы вернуться к теме

Прадо Машинное обучение: алгоритмы для бизнес

Листинг 5.4. Нахождение минимального значения d, которое успешно проходит статистическую проверку ADF

def plotMinFFD():
from statsmodels.tsa.stattools import adfuller
path,instName='./','ES1_Index_Method12'
out=pd.DataFrame(columns=['adfStat','pVal','lags','nObs','95%
conf','corr'])
df0=pd.read_csv(path+instName+'.csv',index_col=0,parse_dates=True)
for d in np.linspace(0,1,11):
df1=np.log(df0[['Close']]).resample('1D').last() # понизить до
# суточных наблюдений
df2=fracDiff_FFD(df1,d,thres=.01)
corr=np.corrcoef(df1.loc[df2.index,'Close'],df2['Close'])[0,1]
df2=adfuller(df2['Close'],maxlag=1,regression='c',autolag=None)
out.loc[d]=list(df2[:4])+[df2[4]['5%']]+[corr] # с критическим
# значением
out.to_csv(path+instName+'_testMinFFD.csv')
out[['adfStat','corr']].plot(secondary_y='adfStat')
mpl.axhline(out['95% conf'].mean(),linewidth=1,color=
'r',linestyle='dotted')
mpl.savefig(path+instName+'_testMinFFD.png')
return

Код на питоне из книги - эта функция определяет минимальную степень дробного дифференцирования,кто знаком с Питоном, переведите. На мой взгляд

именно  ее не хватает в статье для практического применения метода ( ну или пошлите лентяя по нужному адресу - желательно с функцией )

[Удален]  
Олег:

Добрый день,

хотел бы вернуться к теме


Листинг 5.4. Нахождение минимального значения d, которое успешно проходит статистическую проверку ADF

Код на питоне из книги - эта функция определяет минимальную степень дробного дифференцирования,кто знаком с Питоном, переведите. На мой взгляд

именно  ее не хватает в статье для практического применения метода ( ну или пошлите лентяя по нужному адресу - желательно с функцией )

Тест Дики - Фуллера, возможно, полезен для каких-то статистических исследований, но в статье значение d перебирается в оптимизаторе, плюс к этому предложенный вариант алгоритма постоянно переобучается, поэтому он здесь не был бы не особо полезен, по моему

https://www.mql5.com/ru/code/13072
Statistical Functions
Statistical Functions
  • www.mql5.com
Набор статистических функций, которые позволяют рассчитывать некоторые значения, описывающие таймсерии, такие как корреляция между двумя таймсериями, линейная регрессия, стандартное отклонение и т.д. Набор также включает в себя более сложные функции, такие как определенный интеграл. Заголовочный файл "Statistics.mqh" содержит следующие функции...
 
Maxim Dmitrievsky:

Тест Дики - Фуллера, возможно, полезен для каких-то статистических исследований, но в статье значение d перебирается в оптимизаторе, плюс к этому предложенный вариант алгоритма постоянно переобучается, поэтому он здесь не был бы не особо полезен, по моему

Я хотел использовать автоматическое определение d на этапе обучения с последующей автоматической обработкой данных как обучающей выборки, так и данных реальной торговли для кучи последующих алгоритмов (если уж говорим о методах машинного обучения - ну не говорим, я подразумеваю...)
[Удален]  
Олег:
Я хотел использовать автоматическое определение d на этапе обучения с последующей автоматической обработкой данных как обучающей выборки, так и данных реальной торговли для кучи последующих алгоритмов (если уж говорим о методах машинного обучения - ну не говорим, я подразумеваю...)

выше ссылочку дал, вроде рабочий

 

Тест Дикки-Фуллера на MQL есть, но это проверка ряда на стационарность, на Хабре есть пример предобработки методом Бокса-Кокса, для которого в старой статье на сайте был приведен код автоматического определения параметра лямбда - имеющего схожее значение с обсуждаемым d.

Метод Бокса-Кокса на форэкс не всегда приводит к стационарности ряда (практически всегда не до конца) и требуется доп. обработка. Именно как попытку заменить метод БК на дробное дифференцирование (с авто определением лучшего значения d) и следует смотреть на мой вопрос.

К Вам и написанной Вами статье - полное уважение, в рамках статьи мой вопрос действительно лишний, это уже как задел на будущее...