Обсуждение статьи "Градиентный бустинг (CatBoost) в задачах построения торговых систем. Наивный подход" - страница 7

 
В целом, без Shuffle система сразу же начинает сливать ожидаемо.
 
Александр:
В целом, без Shuffle система сразу же начинает сливать ожидаемо.

теперь можете перейти к след. статье

 

Максим помогите плиз. Получаю такие значения, не пойму в чем дело. Код Ваш. Не очень силен в питоне. Спасибо

LOOK_BACK = 25

                       close   0   1   2   3   4  ...  19  20  21  22  23  24

time                                              ...                        

2022-02-07 00:00:00  1.14566 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 01:00:00  1.14542 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 02:00:00  1.14529 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 03:00:00  1.14414 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 04:00:00  1.14278 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 05:00:00  1.14327 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 06:00:00  1.14385 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 07:00:00  1.14302 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 08:00:00  1.14314 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 09:00:00  1.14325 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 10:00:00  1.14340 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 11:00:00  1.14231 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 12:00:00  1.14212 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 13:00:00  1.14432 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 14:00:00  1.14551 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 15:00:00  1.14400 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 16:00:00  1.14383 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 17:00:00  1.14435 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 18:00:00  1.14341 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 19:00:00  1.14187 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 20:00:00  1.14267 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 21:00:00  1.14432 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 22:00:00  1.14385 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 23:00:00  1.14420 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-08 00:00:00  1.14389 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-08 01:00:00  1.14405 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-08 02:00:00  1.14426 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-08 03:00:00  1.14354 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-08 04:00:00  1.14303 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-08 05:00:00  1.14303 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-08 06:00:00  1.14240 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

 
Roman Poshtar #:

Максим помогите плиз. Получаю такие значения, не пойму в чем дело. Код Ваш. Не очень силен в питоне. Спасибо

LOOK_BACK = 25

                       close   0   1   2   3   4  ...  19  20  21  22  23  24

time                                              ...                        

2022-02-07 00:00:00  1.14566 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 01:00:00  1.14542 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 02:00:00  1.14529 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 03:00:00  1.14414 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 04:00:00  1.14278 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 05:00:00  1.14327 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 06:00:00  1.14385 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 07:00:00  1.14302 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 08:00:00  1.14314 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 09:00:00  1.14325 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 10:00:00  1.14340 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 11:00:00  1.14231 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 12:00:00  1.14212 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 13:00:00  1.14432 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 14:00:00  1.14551 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 15:00:00  1.14400 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 16:00:00  1.14383 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 17:00:00  1.14435 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 18:00:00  1.14341 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 19:00:00  1.14187 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 20:00:00  1.14267 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 21:00:00  1.14432 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 22:00:00  1.14385 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-07 23:00:00  1.14420 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-08 00:00:00  1.14389 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-08 01:00:00  1.14405 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-08 02:00:00  1.14426 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-08 03:00:00  1.14354 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-08 04:00:00  1.14303 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-08 05:00:00  1.14303 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

2022-02-08 06:00:00  1.14240 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN

Похоже, что не может получить котировки через апи. К сожалению, сейчас нет компа на винде под рукой :(
 

Вижу, что цены закрытия вроде есть. Это видимо функция получения признаков сломалась (возможно, после обновления пандас)

В логе терминала ошибок нет?

 
Maxim Dmitrievsky #:

Вижу, что цены закрытия вроде есть. Это видимо функция получения признаков сломалась (возможно, после обновления пандас)

В логе терминала ошибок нет?

Попробуйте такую функцию (получение котировок из файла с котировками, который сохранен из МТ5)

def get_prices2(look_back = 15):
    pr = pd.read_csv('files/EURUSD_H1.csv', sep='\s+')
    # set df index as datetime
    prices = pd.DataFrame(columns=['time', 'close'])
    prices['time'] = pr['<DATE>'] + ' ' + pr['<TIME>']
    prices['time'] = pd.to_datetime(prices['time'], format='mixed')
    prices['close'] = pr['<CLOSE>']
    prices.set_index('time', inplace=True)
    prices.index = pd.to_datetime(prices.index, unit='s')
    prices = prices.dropna()

    ratesM = prices.rolling(MA_PERIOD).mean()
    ratesD = prices - ratesM
    for i in range(look_back):
        prices[str(i)] = ratesD.shift(i)
    return prices.dropna()

у меня работает все

                       close         0         1         2         3         4         5  ...         8         9        10        11        12        13        14
time                                                                                      ...                                                                      
2010-01-05 04:00:00  1.44222  0.000383 -0.000253  0.000365  0.000579  0.001307  0.000595  ...  0.002817  0.003726  0.004814  0.005897  0.008975  0.008813  0.009395
2010-01-05 05:00:00  1.44217  0.000355  0.000383 -0.000253  0.000365  0.000579  0.001307  ...  0.002043  0.002817  0.003726  0.004814  0.005897  0.008975  0.008813
2010-01-05 06:00:00  1.44635  0.004289  0.000355  0.000383 -0.000253  0.000365  0.000579  ...  0.001383  0.002043  0.002817  0.003726  0.004814  0.005897  0.008975
2010-01-05 07:00:00  1.44755  0.005241  0.004289  0.000355  0.000383 -0.000253  0.000365  ...  0.000595  0.001383  0.002043  0.002817  0.003726  0.004814  0.005897
2010-01-05 08:00:00  1.44520  0.002659  0.005241  0.004289  0.000355  0.000383 -0.000253  ...  0.001307  0.000595  0.001383  0.002043  0.002817  0.003726  0.004814
...                      ...       ...       ...       ...       ...       ...       ...  ...       ...       ...       ...       ...       ...       ...       ...
2024-02-12 08:00:00  1.07914  0.000194  0.000247  0.000193  0.000363  0.000834  0.001077  ...  0.000464  0.000548  0.000793  0.000515  0.001010  0.001005  0.000678
2024-02-12 09:00:00  1.08033  0.001239  0.000194  0.000247  0.000193  0.000363  0.000834  ...  0.001687  0.000464  0.000548  0.000793  0.000515  0.001010  0.001005
2024-02-12 10:00:00  1.07755 -0.001474  0.001239  0.000194  0.000247  0.000193  0.000363  ...  0.001549  0.001687  0.000464  0.000548  0.000793  0.000515  0.001010
2024-02-12 11:00:00  1.07691 -0.001997 -0.001474  0.001239  0.000194  0.000247  0.000193  ...  0.001077  0.001549  0.001687  0.000464  0.000548  0.000793  0.000515
2024-02-12 12:00:00  1.07685 -0.001965 -0.001997 -0.001474  0.001239  0.000194  0.000247  ...  0.000834  0.001077  0.001549  0.001687  0.000464  0.000548  0.000793

[87537 rows x 16 columns]
 
Maxim Dmitrievsky #:

Попробуйте такую функцию (получение котировок из файла с котировками, который сохранен из МТ5)

у меня работает все

Спасибо, буду пробовать.

 
Максим, какой у вас Питон и Windows? Не работает хоть убей. Спасибо.
 
Roman Poshtar #:
Максим, какой у вас Питон и Windows? Не работает хоть убей. Спасибо.
Логи читайте
 
Maxim Dmitrievsky #:
Логи читайте

Ошибок нет. MA 200

Код

def get_prices(look_back = 15):
    pr = pd.read_csv('D:/1111/EURUSD_H1.csv', sep='\s+')
    # set df index as datetime
    prices = pd.DataFrame(columns=['time', 'close'])
    prices['time'] = pr['<DATE>'] + ' ' + pr['<TIME>']
    prices['time'] = pd.to_datetime(prices['time'], format='mixed')
    prices['close'] = pr['<CLOSE>']
    prices.set_index('time', inplace=True)
    prices.index = pd.to_datetime(prices.index, unit='s')
    prices = prices.dropna()

    ratesM = prices.rolling(MA_PERIOD2).mean()
    ratesD = prices - ratesM
    for i in range(look_back):
        prices[str(i)] = ratesD.shift(i)

    print(prices.head(50))
    return prices.dropna()

Вот лог

C:\Users\Romanuch\AppData\Local\Programs\Python\Python38\python.exe "C:/Users/Romanuch/Downloads/8642 - копия - копия - копия/catboost_learning.py"
                       close   0   1   2   3   4  ...  19  20  21  22  23  24
time                                              ...                        
2020-02-17 00:00:00  1.08376 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN
2020-02-17 01:00:00  1.08410 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN
2020-02-17 02:00:00  1.08357 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN
2020-02-17 03:00:00  1.08365 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN
2020-02-17 04:00:00  1.08391 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN
2020-02-17 05:00:00  1.08384 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN
2020-02-17 06:00:00  1.08375 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN
2020-02-17 07:00:00  1.08394 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN
2020-02-17 08:00:00  1.08349 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN
2020-02-17 09:00:00  1.08405 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN
2020-02-17 10:00:00  1.08461 NaN NaN NaN NaN NaN  ... NaN NaN NaN NaN NaN NaN


[50 rows x 26 columns]

204:    learn: 0.7775606        test: 0.5931357 best: 0.5938959 (189)   total: 6.19s    remaining: 24s
205:    learn: 0.7777778        test: 0.5924840 best: 0.5938959 (189)   total: 6.22s    remaining: 24s
206:    learn: 0.7789725        test: 0.5925926 best: 0.5938959 (189)   total: 6.25s    remaining: 23.9s
207:    learn: 0.7795156        test: 0.5929184 best: 0.5938959 (189)   total: 6.27s    remaining: 23.9s
208:    learn: 0.7795156        test: 0.5928098 best: 0.5938959 (189)   total: 6.3s     remaining: 23.9s
209:    learn: 0.7799500        test: 0.5933529 best: 0.5938959 (189)   total: 6.33s    remaining: 23.8s
Stopped by overfitting detector  (20 iterations wait)

bestTest = 0.5938959487
bestIteration = 189

Shrink model to first 190 iterations.
The file cat_model.mqh has been written to disc

Process finished with exit code 0
Причина обращения: