Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rodar projeto de bots #296

Open
lucca65 opened this issue Aug 24, 2022 · 9 comments
Open

Rodar projeto de bots #296

lucca65 opened this issue Aug 24, 2022 · 9 comments
Assignees

Comments

@lucca65
Copy link
Member

lucca65 commented Aug 24, 2022

Rodar o livro e tentar conectar na testnet da binance e se familiarizar com o repositório

@MatheusBuss
Copy link
Contributor

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

@henriquecbuss
Copy link
Member

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"},

@henriquecbuss
Copy link
Member

henriquecbuss commented Aug 25, 2022

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"

image

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

@MatheusBuss
Copy link
Contributor

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.

@henriquecbuss
Copy link
Member

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

@MatheusBuss
Copy link
Contributor

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.

image

@henriquecbuss
Copy link
Member

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

@MatheusBuss
Copy link
Contributor

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.

@MatheusBuss
Copy link
Contributor

Tive um problema com a sincronização do horário da minha máquina. Resolvido já.

Acho que agora está funcionando certinho.
image

@lucca65 lucca65 transferred this issue from cambiatus/backend Sep 2, 2022
@lucca65 lucca65 transferred this issue from another repository Sep 2, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: 📮 Inbox
Development

No branches or pull requests

3 participants