Discussion of article "Gradient Boosting (CatBoost) in the development of trading systems. A naive approach" - page 8

[Deleted]  
Thank you.
 
Yu Zhang #:
I used it, either I make it myself, or I use what you provide.  There are the following errors.  



I think you have different number of features in python and mql, something wrong 

 

Maxim, please help me. I get such values, I don't understand what is wrong. The code is yours. I am not very good at python. Thanks

LOOK_BACK = 25

close 0 1 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 NaN NaN NaN NaN NaN.

2022-02-07 01:00:00 1.14542 NaN NaN NaN NaN 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 NaN NaN NaN NaN NaN ...

2022-02-07-07 03:00:00 1.14414 NaN NaN NaN NaN NaN 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 NaN NaN NaN NaN NaN ...

2022-02-07-07 05:00:00 1.14327 NaN NaN NaN NaN NaN 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 NaN NaN NaN NaN NaN ...

2022-02-07 07:00:00 1.14302 NaN NaN NaN NaN NaN 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 NaN NaN NaN NaN NaN ...

2022-02-07 09:00:00 1.14325 NaN NaN NaN NaN NaN 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 NaN NaN NaN NaN ...

2022-02-07 11:00:00 1.14231 NaN NaN NaN NaN NaN 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 NaN NaN NaN NaN NaN ...

2022-02-07 13:00:00 1.14432 NaN NaN NaN NaN NaN 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 NaN NaN NaN NaN ...

2022-02-07 15:00:00 1.14400 NaN NaN NaN NaN 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 NaN NaN NaN NaN ...

2022-02-07 17:00:00 1.14435 NaN NaN NaN NaN 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 NaN NaN NaN NaN ...

2022-02-07 19:00:00 1.14187 NaN NaN NaN NaN NaN 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 NaN NaN NaN NaN NaN ...

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

2022-02-07-07 22:00:00 1.14385 NaN NaN NaN NaN 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 NaN NaN NaN NaN ...

2022-02-08 00:00:00 1.14389 NaN NaN NaN NaN NaN 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 NaN NaN NaN NaN NaN

2022-02-08 02:00:00 1.14426 NaN NaN NaN NaN NaN 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 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 NaN NaN NaN NaN NaN ...

2022-02-08 05:00:00 1.14303 NaN NaN NaN NaN NaN 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 NaN NaN NaN NaN NaN NaN NaN

 
Roman Poshtar #:

Maxim, please help me. I get such values, I don't understand what is wrong. The code is yours. I am not very good at python. Thanks

LOOK_BACK = 25

close 0 1 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 NaN NaN NaN NaN

2022-02-07 01:00:00 1.14542 NaN NaN NaN NaN NaN NaN NaN NaN ... 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 NaN NaN NaN NaN NaN NaN NaN NaN

2022-02-07-07 03:00:00 1.14414 NaN NaN NaN NaN NaN NaN NaN NaN ... 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 NaN NaN NaN NaN NaN NaN NaN NaN

2022-02-07-07 05:00:00 1.14327 NaN NaN NaN NaN NaN NaN NaN NaN ... 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 NaN NaN NaN NaN NaN NaN NaN

2022-02-07-07 22:00:00 1.14385 NaN NaN NaN NaN NaN NaN NaN NaN ... 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 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 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 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 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 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 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 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 NaN NaN NaN NaN.

Can't seem to get quotes through the api. Unfortunately, I don't have a vinde comp at hand right now :(
 

I see that the closing prices seem to be there. It seems that the function of getting signs is broken (probably after pandas update).

No errors in the terminal log?

 
Maxim Dmitrievsky #:

I see that the closing prices seem to be there. It seems that the feature to get signs is broken (maybe after the pandas update)

No errors in the terminal log?

Try this function (getting quotes from a file with quotes, which is saved from MT5).

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()

everything works for me

                       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 #:

Try this function (getting quotes from a file with quotes saved from MT5)

everything works for me

Thanks, I will try it.

 
Maxim, what's your Python and Windows? It doesn't work, for the life of me. Thank you.
 
Roman Poshtar #:
Maxim, what's your Python and Windows? It doesn't work, for the life of me. Thank you.
Read the logs
 
Maxim Dmitrievsky #:
Read the logs.

No errors. MA 200

Code

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()

Here is the log

C:\Users\Romanuch\AppData\Local\Programs\Python\Python38\python.exe "C:/Users/Romanuch/Downloads/8642 - copy - copy - copy - copy/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.19 s    remaining: 24 s
205:    learn: 0.7777778        test: 0.5924840 best: 0.5938959 (189)   total: 6.22 s    remaining: 24 s
206:    learn: 0.7789725        test: 0.5925926 best: 0.5938959 (189)   total: 6.25 s    remaining: 23.9 s
207:    learn: 0.7795156        test: 0.5929184 best: 0.5938959 (189)   total: 6.27 s    remaining: 23.9 s
208:    learn: 0.7795156        test: 0.5928098 best: 0.5938959 (189)   total: 6.3 s     remaining: 23.9 s
209:    learn: 0.7799500        test: 0.5933529 best: 0.5938959 (189)   total: 6.33 s    remaining: 23.8 s
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