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

 

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

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)

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

 
Максим, неплохо бы сигнал по статье сделать, вроде хорошие результаты.
 
elibrarius:
Максим, неплохо бы сигнал по статье сделать, вроде хорошие результаты.

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

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

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