Open lucca65 opened 2 years ago
Eu estava tendo problema em rodar o comando mix setup
. Estava tendo esse erro:
== Compilation error in file lib/indicator/ohlc/worker.ex ==
** (CompileError) lib/indicator/ohlc/worker.ex:28: Core.Struct.TradeEvent.__struct__/0 is undefined, cannot expand struct Core.Struct.TradeEvent. Make sure the struct name is correct. If the struct name exists and is correct but it still cannot be found, you likely have cyclic module usage in your code
lib/indicator/ohlc/worker.ex:28: (module)
Consegui resolver o erro adicionando o app Core
pra lista de dependências do app Indicator
. Pra fazer isso é só adicionar a seguinte linha no arquivo apps/indicator/mix.exs
:
{:core, in_umbrella: true}
Consegui compilar o código assim. Deve ser a única dependência do aplicativo, então as dependências devem ficar assim:
defp deps do
[
{:core, in_umbrella: true}
]
end
Eu tive problemas na hora de conectar com a testnet da Binance, com um erro do :crypto.hmac/3. Pra resolver, atualizei a dependência binance
pra versão 1.0.
Nos arquivos apps/binance_mock/mix.exs
, apps/data_warehouse/mix.exs
, apps/naive/mix.exs
e apps/streamer/mix.exs
:
- {:binance, "~> 0.7"},
+ {:binance, "~> 1.0"},
Pra conectar na testnet da binance, também alterei o endpoint usado pelo Websockex. No arquivo apps/streamer/lib/streamer/binance.ex
:
- @stream_endpoint "wss://stream.binance.com:9443/ws/"
+ @stream_endpoint "wss://testnet.binance.vision/ws/"
Talvez isso deveria ser uma config de ambiente
E, seguindo a documentação do pacote binance, adicionei o end_point
da testnet em config/config.exs
:
config :binance,
api_key: "<api_key>",
secret_key: "<secret_key>",
+ end_point: "https://testnet.binance.vision"
Parece que tá tudo funcionando agora, só não sei se existe alguma interface da Binance pra confirmar que as orders estão lá mesmo
Até agora não consegui conectar na TestNet. Localmente funcionou bem, guardou os dados no SQL e tudo.
Mas eu quando altero os clientes de BinanceMock
pra Binance
ele retorna errors relacionados às funções fetch_symbol
e fetch_symbol_filters
. Parece que essas funções foram implementadas pro Mock mas estão faltando na biblioteca do wrapper da Binance mesmo.
@NeoVier não tivesse esse problema? Eu estou tentando rodar a branch do capítulo 21. Fiz essas alterações que comentasse e ainda alterei em config/config.exs
, onde tinha BinanceMock
alterei pra Binance
.
O único erro que recebi foi do :crypto.hmac/3
que mencionei antes. Só clonei o repositório, fiz as alterações que mencionei (e mudar o BinanceMock
pra Binance
) e to rodando na master
mesmo
Achei meu erro. Tinha trocado BinanceMock
por Binance
na config do Naive Trader. Agora não aparece o erro de falta de autorização que tinha antes.
Mas parece que o trader não está conectado com o teste da Binance. Peguei a chave de API por aqui. Conforme a documentação da Binance.
No terminal ele consta ter feito algumas orders, mas não apareceu no meu browser. Vou continuar dando uma investigada.
Acho que aí não vai aparecer pq é a interface de futures, enquanto o bot faz spot trading. Não sei se é isso mesmo, posso estar enganado 🤷. Não achei nenhum lugar da Binance onde eu poderia ver as orders do bot
Pelo jeito estavas certo sobre os futures e spots.
Mas não acho que sem mudar a config do trader de BinanceMock
pra Binance
vai ser feito trade na testnet. Digo isso porque tentei rodar com o BinanceMock
sem chave de api e mesmo assim ele fez o trade.
E faz sentido então trocar de BinanceMock
pra Binance
ele acusar que não consegue autenticar as chaves, porque daí sim ele está tentado fazer trade na Binance.
No momento eu (acho que) consegui fazer ele autenticar o bot. Acredito que tem um problema com a importação das configurações do projeto geral pra dentro da biblioteca da Binance. Só colocando as chaves de api e end point na config do projeto geral tive um problema de autenticação, mas modificando a config dentro da biblioteca da Binance consegui um outro erro (:partying_face: :tada: ?). Isso pode ser porque a biblioteca da Binance usa usa um método deprecado (use Mix.Config
) ao invés do atual (import Config
). Portanto pode ser que tenha algum conflito aí que causa com que a config do projeto geral não seja importada pra dentro da biblioteca Binance
.
Tive um problema com a sincronização do horário da minha máquina. Resolvido já.
Acho que agora está funcionando certinho.
Rodar o livro e tentar conectar na testnet da binance e se familiarizar com o repositório