Discusión sobre el artículo "Gradient boosting (CatBoost) en las tareas de construcción de sistemas comerciales. Un enfoque ingenuo" - página 8

[Eliminado]  
Gracias, señor.
 
Yu Zhang #:
O lo hago yo mismo, o utilizo lo que me proporcionas. Hay los siguientes errores.



Creo que tiene diferente número de funciones en python y mql, algo mal

 

Maxim, por favor ayúdame. Obtengo tales valores, no entiendo lo que está mal. El código es tuyo. No soy muy bueno en python. Gracias

LOOK_BACK = 25

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

tiempo ...

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 ...

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

2022-02-07 04:00:00 1.14278 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 ...

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

2022-02-07 08:00:00 1.14314 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 ...

2022-02-07 10:00:00 1.14340 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 ...

2022-02-07 12:00:00 1.14212 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 ...

2022-02-07 14:00:00 1.14551 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 ...

2022-02-07 16:00:00 1.14383 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 ...

2022-02-07 18:00:00 1.14341 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 ...

2022-02-07 20:00:00 1.14267 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 ...

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

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

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

2022-02-08 05:00:00 1.14303 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, por favor ayúdame. Obtengo tales valores, no entiendo lo que está mal. El código es tuyo. No soy muy bueno en python. Gracias

LOOK_BACK = 25

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

tiempo ...

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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 NaN

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

Parece que no puedo obtener cotizaciones a través de la api. Desafortunadamente, no tengo una computadora vinde a mano en este momento :(
 

Veo que los precios de cierre parecen estar ahí. Parece que la función de obtener señales está rota (probablemente después de la actualización de pandas).

¿No hay errores en el log del terminal?

 
Maxim Dmitrievsky #:

Veo que los precios de cierre parecen estar ahí. Parece que la función para obtener señales está roto (tal vez después de la actualización de pandas)

¿No hay errores en el log del terminal?

Pruebe esta función (obtener cotizaciones de un archivo con cotizaciones, que se guarda de 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()

todo funciona para mi

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

Pruebe esta función (obtener cotizaciones de un archivo con cotizaciones guardadas de MT5)

todo funciona para mí

Gracias, lo probaré.

 
Maxim, ¿cuál es tu Python y Windows? No funciona, por la vida de mí. Gracias.
 
Roman Poshtar #:
Maxim, ¿cuál es tu Python y Windows? No funciona, por la vida de mí. Gracias.
Leer los registros
 
Maxim Dmitrievsky #:
Lee los registros.

No hay errores. MA 200

Código

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

Aquí está el registro

C:\Users\Romanuch\AppData\Local\Programs\Python\Python38\python.exe "C:/Usuarios/Romanuch/Descargas/8642 - copiar - copiar - copiar - copiar/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