Autor Tópico: Diário: Machine Learning - Desenvolvendo Algorítimo para Betfair Exchange  (Lida 9964 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

SOMA247

  • Devedor
  • Estado:
    Offline
  • Registo: Mar 2019
  • Localidade:
  • Mensagens:
    134
  • Nacionalidade: br
  • Pts Tipsr:
    0
Diário Dia 141
29 de Julho  de 2019

Estava pegando todos os links e dados iniciais da temporada 18/19 da Bundesliga mas depois de uns 50 jogos o site BetsAPI bloqueou meu IP.



Quando o projeto estiver funcionando pretendo pagar pelos dados, mas como ainda estou na fase de testes vou utilizar a  lista de proxys grátis. Demorou mas raspei tudo  :cool:



Próximo passo seré pegar os gráficos SofaScore, ODDS ao vivo e gráficos de posse de bola e ataque.
« Última modificação: 29 de Julho de 2019, 15:46 por SOMA247 »



3monkeys

  • Bilionário
  • ?
  • Estado:
    Offline
  • Registo: Jan 2010
  • Localidade:
  • Mensagens:
    2185
    Pts Tipsr:
    24
Este pedaço de código é espetacular e devia ser suficiente para ultrapassar qualquer limitação.

(...)

res = requests.get('https://free-proxy-list.net/', headers={'User-Agent':'Mozilla/5.0'})
soup = BeautifulSoup(res.text,"lxml")
proxies = set()
for items in soup.select("tbody tr"):
    proxy = ':'.join([item.text for item in items.select("td")[:2]])
    proxies.add(proxy)
    print(proxy)   

proxy_pool = cycle(proxies)

(...)

---

Estava pegando todos os links e dados iniciais da temporada 18/19 da Bundesliga mas depois de uns 50 jogos o site BetsAPI bloqueou meu IP.

Portanto ao jogo 51 devias mudar de IP, certo?
Ou, mesmo fazendo isso, bloqueou?



SOMA247

  • Devedor
  • Estado:
    Offline
  • Registo: Mar 2019
  • Localidade:
  • Mensagens:
    134
  • Nacionalidade: br
  • Pts Tipsr:
    0
Este pedaço de código é espetacular e devia ser suficiente para ultrapassar qualquer limitação.

(...)

res = requests.get('https://free-proxy-list.net/', headers={'User-Agent':'Mozilla/5.0'})
soup = BeautifulSoup(res.text,"lxml")
proxies = set()
for items in soup.select("tbody tr"):
    proxy = ':'.join([item.text for item in items.select("td")[:2]])
    proxies.add(proxy)
    print(proxy)   

proxy_pool = cycle(proxies)

(...)

---
Portanto ao jogo 51 devias mudar de IP, certo?
Ou, mesmo fazendo isso, bloqueou?

Oi 3monkeys, minha primeira tentativa foi sem proxy, com meu IP de verdade utilizando intervalo de tempo entre as requisições, ainda tive o cuidado de criar intervalos randômicos  entre 3 e 6 segundos pra não ficar muito obvio. Mas não teve jeito, depois de uns 50 requests foi bloqueado.

Então fui pra lista de proxies, e como alegria de pobre dura pouco parece que arrebentei com os proxies free kkkkkkk. Depois de pegar algumas ligas parou de funcionar, então fui atrás dos erros, fiz as requisições e pegava os erros detalhados. E foi isso mesmo, bloquearam os IPs da lista free.

Mas  a gente é BR e não desiste, pesquisei um pouco e encontrei um código que testa os IPs antes de adicionar na lista que iremos utilizar, funciounou mas também deve dar problema logo logo. Não vai ter como continuar com esse briga, vou acabar assinando o BetsAPI.

Imagem: novo sistema de proxies fazendo scraping no BetsAPI


Estou deixando o link pra download dos dados iniciais da Bundesliga 18/19 (306 jogos), são apenas infos informações básicas formato excel (.csv).
https://drive.google.com/file/d/1YDQQh1_1v6Oqogp04oARZJVNLuVqkxXZ/view?usp=sharing








Forum de Apostas

Re: Diário: Machine Learning - Desenvolvendo Algorítimo para Betfair Exchange
« Responder #152 em: 30 de Julho de 2019, 00:23 »

SOMA247

  • Devedor
  • Estado:
    Offline
  • Registo: Mar 2019
  • Localidade:
  • Mensagens:
    134
  • Nacionalidade: br
  • Pts Tipsr:
    0
Link do artigo que utilizei para conseguir os novos proxies.
https://codelike.pro/create-a-crawler-with-rotating-ip-proxy-in-python/




Codigo13

  • Milionário
  • Estado:
    Offline
  • Registo: Fev 2010
  • Localidade: São Paulo
  • Mensagens:
    1753
  • Nacionalidade: br
  • Pts Tipsr:
    16
É isso ai. Já consegui gerar os primeiros produtos.
O bom que há um API, pago para ser usado. Caso contrário teria que utilizar os serviços de proxies que podem ser mais caros e mais complicados de utilizar
10 Campeonatos Brasileiros
3 Copas do Brasil

Maior campeão do Brasil, Verdão Querido!
#verdeécordainveja



SOMA247

  • Devedor
  • Estado:
    Offline
  • Registo: Mar 2019
  • Localidade:
  • Mensagens:
    134
  • Nacionalidade: br
  • Pts Tipsr:
    0
Diário Dia 143
31 de Julho  de 2019

Terminei de pegar todos os dados da BetsAPI:
- Detalhes dos Jogos,
- Odds pré live
- Odds Live,
- Gráficos minuto a minuto:
          Ataques
          Remates
          Posse de bola

Consegui um sistema que não utiliza proxies ou qualquer coisa do tipo, foi só ajustar o tempo das requisições e utilizar o Selenium. Peguei todos os gráficos e odds ao vivo e não fui bloqueado nenhuma vez.



Nos próximos dias vou pegar os gráficos do SofaScore e linkar cada um com seu jogo correspondente na minha base de dados.



SOMA247

  • Devedor
  • Estado:
    Offline
  • Registo: Mar 2019
  • Localidade:
  • Mensagens:
    134
  • Nacionalidade: br
  • Pts Tipsr:
    0
Diário Dia 145
02 de Agosto  de 2019



Consegui pegar todos os dados necessários para os estudos iniciais, esta tudo organizado e funcionando. Quando a gente desenvolve um sistema como esse tem tanto recurso legal que podemos adicionar que é perigoso não conseguirmos caminhar. Neste primeiro momento  deixei de lado alguns dados que acho importante para a versão funcional:

- Localização dos remates
- Gols esperados xG (pré-live)
- Valor como mandante / taxa ocupação estádio / pressão torcida
- Módulo que classifica os jogadores (capacidade e valor de mercado)
- Perfil do treinador

Vou deixar o código que desenvolvi para pegar o link dos gráficos SofaScore.

-----------------------------------------------------------------------------------------

from selenium import webdriver
from random import randint
from json import loads

# Inicia Sistema
driver = webdriver.Chrome('chromedriver.exe')

# Cria listas
graf_home = []
graf_away = [] 
graf_link = []
graf_rodada = []

# Número de rodadas da liga
rodadas = 34

# Faz o loop adicionando as rodadas a URL
for w in range(1, rodadas + 1):
   
    url = 'https://www.sofascore.com/u-tournament/35/season/17597/matches/round/25' + str(w)
    driver.get(url)
    json_content = driver.find_element_by_css_selector('body > pre').text
    data = loads(json_content)
   
    print(url)
    sleep(randint(3, 7))
   
    for v in data['roundMatches']['tournaments'][0]['events']:
        temp = 'https://www.sofascore.com/event/' + str(v['id']) + '/json'
        graf_link.append(temp)
        graf_home.append(v['homeTeam']['name'])
        graf_away.append(v['awayTeam']['name'])
        graf_rodada.append(w)
       
    sleep(randint(3, 7))

# Exportando dados .csv 
import pandas as pd
att_m = pd.DataFrame({'Rodada': graf_rodada,'Home': graf_home, 'Away': graf_away, 'ID': graf_link})
export = att_m.to_csv (r'links_sofascore_bundesliga_18_19.csv', index = None, header = True)

-----------------------------------------------------------------------------------------




Codigo13

  • Milionário
  • Estado:
    Offline
  • Registo: Fev 2010
  • Localidade: São Paulo
  • Mensagens:
    1753
  • Nacionalidade: br
  • Pts Tipsr:
    16

Consegui pegar todos os dados necessários para os estudos iniciais, esta tudo organizado e funcionando. Quando a gente desenvolve um sistema como esse tem tanto recurso legal que podemos

 :venia: :venia: :venia: :venia:
10 Campeonatos Brasileiros
3 Copas do Brasil

Maior campeão do Brasil, Verdão Querido!
#verdeécordainveja



Forum de Apostas

Re: Diário: Machine Learning - Desenvolvendo Algorítimo para Betfair Exchange
« Responder #157 em: 03 de Agosto de 2019, 16:17 »

3monkeys

  • Bilionário
  • ?
  • Estado:
    Offline
  • Registo: Jan 2010
  • Localidade:
  • Mensagens:
    2185
    Pts Tipsr:
    24
Também ando a extrair informação do sofascore.

Mas isto de extrair dados apresenta alguns desafios.
Primeiro é o limite de pedidos que alguns sites impõem.
Depois, muitos destes sites apresentam estatísticas detalhadas apenas para algumas ligas.
E por último os critérios de um site na contabilização de por exemplo, remates à baliza, podem ser diferentes de outros sites tornando assim as bases de dados incompatíveis.

Conseguir uma base de dados com um tamanho decente para criar um modelo, não é fácil.



SOMA247

  • Devedor
  • Estado:
    Offline
  • Registo: Mar 2019
  • Localidade:
  • Mensagens:
    134
  • Nacionalidade: br
  • Pts Tipsr:
    0
Nos últimos dias não consegui trabalhar no projeto, com a volta dos campeonatos europeus preciso focar no trade. Também fiquei um pouco cansado de estudar os códigos, vou dar um tempo mas acho que em breve volto.



SOMA247

  • Devedor
  • Estado:
    Offline
  • Registo: Mar 2019
  • Localidade:
  • Mensagens:
    134
  • Nacionalidade: br
  • Pts Tipsr:
    0
Estive um tempo longe do fórum pq os campeonatos europeus voltaram e fiquei concentrado em analisar os times e preparar tudo pra temporada.

Essa semana é data Fifa e vou ter bastante tempo pra trabalhar na evolução do projeto  :bom:

Eu tinha algumas estratégias pra apostar de forma linear baseado exclusivamente nas estatisticas, zero leitura de jogo ou valor qualitativo. Peguei essas estratégias e combinei com as redes neurais (o trabalho ainda é 100% braçal), adiciono rodada por rodada os dados no sistema, gero as previsões e aposto manualmente na Betfair.

A primeira estratégia do projeto foi aplicada nas 3 principais divisões do futebol alemão (Bundesligas, 3 Liga). A banca inicial de teste é de 500 USD dividida em 30 unidades, o valor da unidade é recalculado após cada rodada. As apostas são feitas exclusivamente na Betfair. Até o momento foram apenas 52 previsões que atingiram os critérios para apostar.

O ROI atual é de 24,41%, distante demais do esperado que é entre 3 ~ 9%, claramente o sistema esta passando por uma  variância positiva.







SOMA247

  • Devedor
  • Estado:
    Offline
  • Registo: Mar 2019
  • Localidade:
  • Mensagens:
    134
  • Nacionalidade: br
  • Pts Tipsr:
    0
Diário Dia 177
03 de Setembro de 2019

Padrões de análise estatística para ligas de futebol disputadas por pontos corridos.

Turquia Super League 2016 ~ 2018



Eixo X = Rodadas
Eixo Y = Unidades

São 34 rodadas por temporada, totalizando 102 rodadas nestes 3 anos. No gráfico vemos 4 estratégias diferentes aplicadas na liga turca, estratégias planas baseadas exclusivamente em estatísticas.

No gráfico acima verificamos que as estratégias que foram muito lucrativas nas temporadas 2016 e 2017 no ano passado quase não funcionaram, porém, o motivo não foi o ajuste das casas de apostas mas uma mudança no estilo da liga, conforme o  futebol evolui a maneira como os gols são divididos também muda.

------------------------------------------------------------------

Análise de cada temporada, as estratégias dividem a liga em 4 partes de forma igual, em ligas que não são divisíveis por 4 são incluidas rodadas extras sempre no segundo e terceiro quarto.

Um padrão presente em muitas ligas que tenho analisado é que o melhor momento para apostar em gols cosuma ser o terceiro quarto das ligas, quando já foi jogado mais de 50% do campeonato mas ainda não chegamos nos ultimos 25%.

Eixo X = Rodadas
Eixo Y = Unidades








Tiago.Magalhães

  • Multimilionário
  • Estado:
    Online
  • Registo: Out 2014
  • Localidade:
  • Mensagens:
    5832
  • Nacionalidade: pt
  • Pts Tipsr:
    2781
Grande trabalho!! Parabéns mesmo pela dedicação e que te de muitos frutos no futuro!
(Isto vindo de uma pessoa que percebe praticamente 0 do que estas a fazer ahahah)  :mrgreen:



Codigo13

  • Milionário
  • Estado:
    Offline
  • Registo: Fev 2010
  • Localidade: São Paulo
  • Mensagens:
    1753
  • Nacionalidade: br
  • Pts Tipsr:
    16
Diário Dia 177

Um padrão presente em muitas ligas que tenho analisado é que o melhor momento para apostar em gols cosuma ser o terceiro quarto das ligas, quando já foi jogado mais de 50% do campeonato mas ainda não chegamos nos ultimos 25%.


Também tenho esse sentimento, que apostar nos gols é melhor no meio da liga, nem no começo, nem no final. Entretanto, com os mais de 300 mil jogos  não consegui  evidências significativas desse padrão.
Talvez não tenha feito direito.
10 Campeonatos Brasileiros
3 Copas do Brasil

Maior campeão do Brasil, Verdão Querido!
#verdeécordainveja



SOMA247

  • Devedor
  • Estado:
    Offline
  • Registo: Mar 2019
  • Localidade:
  • Mensagens:
    134
  • Nacionalidade: br
  • Pts Tipsr:
    0
Grande trabalho!! Parabéns mesmo pela dedicação e que te de muitos frutos no futuro!
(Isto vindo de uma pessoa que percebe praticamente 0 do que estas a fazer ahahah)  :mrgreen:
Tiago, não é dificil é só trabalhoso mas depois q vc aprende fica de boa. Valeu pela força =]




 


Casas de Apostas: bet pt / Betclic / ESC Online / Nossa Aposta / Casino Portugal

Rede Apostaganha: Apostas / Palpites e Dicas de Apostas / Pronósticos de Apuestas / Betting Tips and Predictions