Обсуждение статьи "Продвинутый ресемплинг и выбор CatBoost моделей брутфорс методом" - страница 15

 

Привет,

Спасибо за статью. Я попробовал, но почему-то не получается красивой кривой эквити (даже для периода обучения) в бэктесте MT5, как это показано в python (см. ниже). Когда я бэктестирую с вашим советником EURUSD из вашей статьи, он работает. Как решить эту ошибку?


[Удален]  
konorti:

Привет,

Спасибо за статью. Я попробовал, но почему-то не получается красивой кривой эквити (даже для периода обучения) в бэктесте MT5, как это показано в python (см. ниже). Когда я бэктестирую с вашим советником EURUSD из вашей статьи, он работает. Как решить эту ошибку?

Привет, возможно, проблема с MARKUP для пользовательского тестера для usdjpy, поэтому результаты отличаются

[Удален]  

Добавил новый метод поиска экстремумов (разметки графика), по типу зигзага

from scipy.signal import argrelextrema

def add_peaks(dataset, order, plot=False):
    ilocs_min = argrelextrema(dataset.close.values,
                              np.less_equal, order=order)[0]
    ilocs_max = argrelextrema(dataset.close.values,
                              np.greater_equal, order=order)[0]
    dataset['low_lbl'] = False
    dataset['high_lbl'] = False
    dataset.loc[dataset.iloc[ilocs_min].index, 'low_lbl'] = True
    dataset.loc[dataset.iloc[ilocs_max].index, 'high_lbl'] = True

    if(plot):
        dataset.close.plot(figsize=(15, 5), alpha=.3)
        dataset[dataset['high_lbl']].close.plot(
            style='.', lw=10, color='red', marker="v")
        dataset[dataset['low_lbl']].close.plot(
            style='.', lw=10, color='green', marker="^")
        plt.show()

    conditions = [
        (dataset['low_lbl'] == False) & (dataset['high_lbl'] == False),
        dataset['low_lbl'] == True,
        dataset['high_lbl'] == True
    ]
    choices = [np.nan, 0, 1]
    dataset['labels'] = np.select(conditions, choices)
    dataset = dataset.drop(['low_lbl', 'high_lbl'], axis = 1)
    dataset = dataset.fillna(method='ffill')
    return dataset.dropna()

pr = add_peaks(pr, 15, plot=True)

Играя с параметром можно настраивать частоту сделок. Тесты показали, что размечать по экстремумам - не самая лучшая идея. Подход из статьи работает лучше.

 
Maxim Dmitrievsky:

Привет, возможно проблема с MARKUP для пользовательского тестера для usdjpy, поэтому результаты отличаются

Спасибо. Я пробовал с разными MARKUP (выше и ниже), а также с разными таймфреймами, но не очень успешно. Я видел несколько хороших результатов на таймфрейме 4H/USDJPY, но на других парах форекс не очень, и я пытался повторить тест несколько раз без успеха. Можно ли как-то фильтровать сделки, чтобы советник не всегда был в рынке, а только с сильными сигналами?
 

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

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

Не хотите ли вы написать статью о реализации "MuZero" от DeepMind на Forex?

https://deepmind.com/blog/article/muzero-mastering-go-chess-shogi-and-atari-without-rules

https://medium.com/applied-data-science/how-to-build-your-own-muzero-in-python-f77d5718061a

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

Пожалуйста, сообщите мне ваши мысли.


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

  • Значение: насколько хороша текущая позиция?
  • Политика: какое действие лучше всего предпринять?
  • Вознаграждение: насколько хорошим было последнее действие?

Спасибо.

MuZero: Mastering Go, chess, shogi and Atari without rules
MuZero: Mastering Go, chess, shogi and Atari without rules
  • deepmind.com
In 2016, we introduced AlphaGo, the first artificial intelligence (AI) program to defeat humans at the ancient game of Go. Two years later, its successor - AlphaZero - learned from scratch to master Go, chess and shogi. Now, in a paper in the journal Nature, we describe MuZero, a significant step forward in the pursuit of general-purpose...
 
Максим, неплохо бы сигнал по статье сделать, вроде хорошие результаты.
[Удален]  
elibrarius:
Максим, неплохо бы сигнал по статье сделать, вроде хорошие результаты.

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

по каждой статье мониторинг делать - не вариант

здесь как бы больше с научно-познавательными целями

 
Когда я изменяю время начала и остановки поезда, результат бэктестов модели становится плохим, что я могу сделать, чтобы улучшить производительность модели?
 
Я потратил много времени, наконец, я понял, что вы делаете. Потому что метка алгоритма ml является дисбаланс, вы используете GaussMixtureModel для моделирования цена родилась, затем выборка из модели, то вы можете обучить лучше ml алгоритм
 
Что касается статьи, то, хотя я ее не читал, она показалась мне очень сильной. Поэтому я решил воспользоваться моментом и дать несколько советов. Во-первых, источник данных на этом рынке - это только часть фишек на рынке, или небольшая часть фишек, именно большинство фишек в руках трейдеров могут определить направление рынка, поэтому сложно добиться того, чего мы ожидаем от сбора данных, полагаясь на то, какую методологию и подход оптимизировать, что может быть просто подгонкой под прошлый рынок. Во-вторых, этот рынок в течение короткого периода времени не является случайным, как пример, когда есть только 2 многосторонних трейдера и 2 короткосторонних трейдера, один короткосторонний N цена, указанная для продажи, другой короткосторонний N-1 цена для продажи. Многосторонняя N-1 покупка, текущая цена N, предполагая, что другая многосторонняя N цена покупки, теоретически по цене должно быть N, на самом деле, пустой N не один, механизм агрегации будет идти к N-1, чтобы найти сделку, так что текущая цена N-1, вероятно, так среднее. Таким образом, N и N-1, N+1 и т.д. связаны между собой и не являются полностью случайными, поэтому оптимизация данных может быть лучше от импульса. Наконец, будь то советник или ручная торговля, сложно стабильно зарабатывать на рынке, потому что если он стабилен, то богатство неизбежно перейдет к определенному участнику рынка, и этот рынок перестанет существовать. Поэтому инвестирование - это инвестирование в риск, процесс сбора урожая риска, слишком озабоченный стабильностью возможных потерь, я не возражаю против того, чтобы некоторые люди в рыночных сделках нашли определенный закон, эквивалент рынка BUG реализовал богатство только, на самом деле, сам рынок также находится в процессе самосовершенствования из-за сложности участников, но золото не красное, никто не совершенен. Направление интеллектуальной торговли теоретически представляет собой процесс постоянного поиска рыночных багов, этот BUG лишь небольшое количество людей может использовать, с большим количеством людей на провал. Я надеюсь, что мой комментарий может быть ссылкой для вас. vx tiger54088 пройти мимо