Discussão do artigo "Gradient Boosting (CatBoost) no desenvolvimento de sistemas de negociação. Uma abordagem ingênua" - página 8

[Excluído]  
Obrigado.
 
Yu Zhang #:
Eu o usei,ou eu mesmo o fiz ou usei o que você forneceu. os seguintes erros.



Acho que você tem um número diferente de recursos em python e mql, algo errado

 

Maxim, por favor, me ajude. Recebo esses valores e não entendo o que está errado. O código é seu. Não sou muito bom em python. Agradecimentos

LOOK_BACK = 25

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

tempo ...

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

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

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

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

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

 
Roman Poshtar #:

Maxim, por favor, me ajude. Recebo esses valores e não entendo o que está errado. O código é seu. Não sou muito bom em python. Obrigado, Maxim

LOOK_BACK = 25

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

tempo ...

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

Parece que não consigo obter cotações por meio da API. Infelizmente, não tenho um computador vinde à mão no momento :(
 

Vejo que os preços de fechamento parecem estar lá. Parece que a função de obter sinais está quebrada (provavelmente após a atualização do pandas).

Não há erros no registro do terminal?

 
Maxim Dmitrievsky #:

Vejo que os preços de fechamento parecem estar lá. Parece que o recurso para obter sinais está quebrado (talvez após a atualização do pandas)

Não há erros no registro do terminal?

Tente esta função (obter cotações de um arquivo com cotações, que é salvo do 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()

Tudo funciona para mim

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

Tente esta função (obter cotações de um arquivo com cotações salvas do MT5)

tudo funciona para mim

Obrigado, vou tentar.

 
Maxim, qual é o seu Python e Windows? Não está funcionando, pelo amor de Deus. Obrigado.
 
Roman Poshtar #:
Maxim, qual é o seu Python e Windows? Não está funcionando, pelo amor de Deus. Obrigado.
Leia os registros
 
Maxim Dmitrievsky #:
Leia os registros.

Não há erros. 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()

Aqui está o registro

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