2023-08-27, 12:44
  #49
Medlem
Citat:
Ursprungligen postat av Mysadname
säg så här, en genomsnittlig favorit har 50% vinstchans, vi har 13 alternativ, 1 i varje match, mest streckade tipstecken, 13 x 50% =650%, dela det med hundra så blir det 6,5 st. favoriter vinner i genomsnitt, igår blev det 7 st., nu varierar det rätt mycket mellan omgångarna, men generellt, alla rader med fler fler favoriter ger sämre utdelning, och färre favoriter ger högre utdelning.

Precis samma sak med streckprocenten, igår hade favoritraden 734 i summa och minst streckade per match var summan 241, och enkelt kan man väl säga att extremsummorna uppe och nere vill man inte få med av de olika anledningar jag nämnde högre upp.

Det låter ju intressant att du vill exkludera rader som har liten sannolikhet att slå in i förhållande till favoritskap och streckprocent. Det är väl så alla tänker när man spelar på stryktips. Men varför vill du skriva ut 1,5 miljoner rader i ett excelark? Det är det jag tycker är märkligt. Du kan ju redan i samband med utskriften mha av programkod exkludera "osannolika" rader. Hur du än gör så höjer du inte vinstchansen över huvud taget utan att lämna in ett orealistiskt antal rader.
Citera
2023-08-27, 12:48
  #50
Medlem
HaveFuns avatar
Citat:
Ursprungligen postat av kaReri182
Det låter ju intressant att du vill exkludera rader som har liten sannolikhet att slå in i förhållande till favoritskap och streckprocent. Det är väl så alla tänker när man spelar på stryktips. Men varför vill du skriva ut 1,5 miljoner rader i ett excelark? Det är det jag tycker är märkligt. Du kan ju redan i samband med utskriften mha av programkod exkludera "osannolika" rader. Hur du än gör så höjer du inte vinstchansen över huvud taget utan att lämna in ett orealistiskt antal rader.
Detta.

Exkludera irrelevanta rader direkt, printa de som är intressanta.
Citera
2023-08-27, 12:50
  #51
Medlem
Citat:
Ursprungligen postat av kaReri182
Det låter ju intressant att du vill exkludera rader som har liten sannolikhet att slå in i förhållande till favoritskap och streckprocent. Det är väl så alla tänker när man spelar på stryktips. Men varför vill du skriva ut 1,5 miljoner rader i ett excelark? Det är det jag tycker är märkligt. Du kan ju redan i samband med utskriften mha av programkod exkludera "osannolika" rader. Hur du än gör så höjer du inte vinstchansen över huvud taget utan att lämna in ett orealistiskt antal rader.

Njae, alltså, önskan är ju om man kan begränsning på utskriften av rader till excel redan innan, men man behöver ju kunna skapa alla tänkbara rader för att kunna begränsa de, och där jag behöver hjälp.

En programkod som skapar och plockar ut raderna som då ligger inom önskat intervall utefter streckprocent summan.
Citera
2023-08-27, 13:31
  #52
Medlem
Torsuss avatar
Citat:
Ursprungligen postat av Mysadname
Njae, alltså, önskan är ju om man kan begränsning på utskriften av rader till excel redan innan, men man behöver ju kunna skapa alla tänkbara rader för att kunna begränsa de, och där jag behöver hjälp.

En programkod som skapar och plockar ut raderna som då ligger inom önskat intervall utefter streckprocent summan.
Jag håller på att skissa på ett sådant program. Jag kan inte lova att jag blir klar snart men om och när så lovar jag att du får det
Citera
2023-08-27, 13:56
  #53
Medlem
Citat:
Ursprungligen postat av Torsus
Jag håller på att skissa på ett sådant program. Jag kan inte lova att jag blir klar snart men om och när så lovar jag att du får det

Åh, låter ju fantastiskt, tackar på förhand
Citera
2023-08-27, 16:02
  #54
Moderator
vhes avatar
Citat:
Ursprungligen postat av Mysadname
Hittade något som heter IDLE python som också hade installerats, påminner om excels makro miljö, kan vara rätt, öppnade upp tips.py och indata.txt men sen händer inget mer, vad mer skulle göras ?

Förlåt, jag glömde bort att allt är svårt på Windows.

Programmet (filen som slutar med .py) körs med Python. Indata är text-filen med procentsatser. Utdatan kan hamna lite var som helst, men förslagsvis skickas den in i en fil. Exemplet jag skrev funkar på t.ex. Linux och Mac, eller i WSL (och allt annat som kör ett någorlunda POSIX-kompatibelt shell). Exakt hur det går till i ett "normalt" Windows-shell vet jag faktiskt inte, men om man får tro t.ex. https://stackoverflow.com/questions/11447598/redirecting-standard-input-output-in-windows-powershell bör åtminstone följande funka i Powershell:

Kod:
Get-Content indata.txt | python stryktipset.py > output.csv

Givet att filen med procentsatserna heter indata.txt och filen med Python-programmet heter stryktipset.py. Men du behöver kanske leta upp python-binären (borde heta något i stil med Python.exe) manuellt, och använda den pathen istället för python. Resultatet kommer hamna i filen output.csv.

Bättre instruktioner än så kan jag inte ge för Windows, eftersom jag inte använder det.
Citera
2023-08-27, 16:09
  #55
Medlem
Enterprises avatar
Jag satt nu och pulade på ett Python-skript för att automatisera hämtandet av procentsatser.
Men typiskt nog så tog Svenska Spel bort all data. Antar att detta beror på att kupongen numera är stängd och nästa kupong ännu inte kommit ut.

Jag kom i alla fall så här långt (ej testkört mot riktig data av nämnda skäl).
När en ny kupong kommer ut kan man testköra detta och integrera med tidigare dryftat python-skript.

Kod:
import requests
import re
import json

url = "https://spela.svenskaspel.se/europatipset"

response = requests.get(url)
html_content = response.text
pattern = r'_svs\.tipsen\.data\.preloadedState\s*=\s*(\{.*\});'
match = re.search(pattern, html_content)
json_str = match.group(1)
json_obj = json.loads(json_str)
gameDict = json_obj["EventTypeStatistic"]
gameKeys = list(dict.keys(gameDict))

signlists = [[] for _ in range(3)]

for gameKey in gameKeys:
	game = gameDict[gameKey]["distributions"]["2"]["Global"]["current"]["value"]
	for ix,perc in enumerate(game):
		signlists[ix].append(str(perc))

for signlist in signlists:
	print(" ".join(signlist))
Förresten, tack Torsus för tipset om var datan ligger i mastodont-HTML-filen.
__________________
Senast redigerad av Enterprise 2023-08-27 kl. 17:05.
Citera
2023-08-27, 16:12
  #56
Medlem
Enterprises avatar
Citat:
Ursprungligen postat av HaveFun
Med beautiful soup är det trivialt att hantera html och få ut relevanta värden. Nu vet jag inte om det gick att köra med requests eller om selenium krävdes, men men.
Det ligger inte direkt inuti HTML-strukturen utan ligger som en JSON-sträng som man lämpligen plockar ut med Regex och därefter omvandlar till ett Python-dict. Se mitt förslag till Python-skript ovan.

Selenium vill man undvika så långt det bara går!
Citera
2023-08-27, 16:32
  #57
Medlem
Citat:
Ursprungligen postat av vhe
Förlåt, jag glömde bort att allt är svårt på Windows.

Programmet (filen som slutar med .py) körs med Python. Indata är text-filen med procentsatser. Utdatan kan hamna lite var som helst, men förslagsvis skickas den in i en fil. Exemplet jag skrev funkar på t.ex. Linux och Mac, eller i WSL (och allt annat som kör ett någorlunda POSIX-kompatibelt shell). Exakt hur det går till i ett "normalt" Windows-shell vet jag faktiskt inte, men om man får tro t.ex. https://stackoverflow.com/questions/11447598/redirecting-standard-input-output-in-windows-powershell bör åtminstone följande funka i Powershell:

Kod:
Get-Content indata.txt | python stryktipset.py > output.csv

Givet att filen med procentsatserna heter indata.txt och filen med Python-programmet heter stryktipset.py. Men du behöver kanske leta upp python-binären (borde heta något i stil med Python.exe) manuellt, och använda den pathen istället för python. Resultatet kommer hamna i filen output.csv.

Bättre instruktioner än så kan jag inte ge för Windows, eftersom jag inte använder det.

Jag får ändå inte till det, lyckades hitta powershell och får iaf. en massa mer text i rött som svar men det är ju bara en massa felmeddelanden.
Citera
2023-08-27, 19:44
  #58
Medlem
Enterprises avatar
Citat:
Ursprungligen postat av Mysadname
Jag får ändå inte till det, lyckades hitta powershell och får iaf. en massa mer text i rött som svar men det är ju bara en massa felmeddelanden.
Jag tror att detta - helt i Python skrivna skriptet - ska lösa problemet, även på Windows.
Den hämtar själv data från Svenska spels hemsida (förutsätter givetvis att dessa finns på hemsidan).

Kod:
import requests
import re
import json

import itertools
import sys

pmin = 500  # golv-nivå för totalt antal streck
pmax = 550  # tak-nivå för totalt antal streck

url = "https://spela.svenskaspel.se/europatipset"
outfile = "tips.csv" # namn för din output-fil

response = requests.get(url)
html_content = response.text

pattern = r'_svs\.tipsen\.data\.preloadedState\s*=\s*(\{.*\});'
match = re.search(pattern, html_content)
json_str = match.group(1)
json_obj = json.loads(json_str)
gameDict = json_obj["EventTypeStatistic"]
gameKeys = list(dict.keys(gameDict))

signlists = []
for _ in range(0,3):
	signlists.append(list())

for gameKey in gameKeys:
	game = gameDict[gameKey]["distributions"]["2"]["Global"]["current"]["value"]
	for ix,perc in enumerate(game):
		signlists[ix].append(int(perc))


P = { "1": signlists[0], "X": signlists[1], "2": signlists[2] } 

rows = itertools.product(*(['1X2'] * 13))

with open(outfile, 'w') as f:  
	for row in rows:
		percentage = sum(P[result][n] for (n, result) in enumerate(row))
		if percentage >= pmin and percentage <= pmax:
			f.write(','.join(row + (str(percentage),))+"\n")
Citera
2023-08-27, 20:13
  #59
Medlem
Citat:
Ursprungligen postat av Enterprise
Jag tror att detta - helt i Python skrivna skriptet - ska lösa problemet, även på Windows.
Den hämtar själv data från Svenska spels hemsida (förutsätter givetvis att dessa finns på hemsidan).

Kod:
import requests
import re
import json

import itertools
import sys

pmin = 500  # golv-nivå för totalt antal streck
pmax = 550  # tak-nivå för totalt antal streck

url = "https://spela.svenskaspel.se/europatipset"
outfile = "tips.csv" # namn för din output-fil

response = requests.get(url)
html_content = response.text

pattern = r'_svs\.tipsen\.data\.preloadedState\s*=\s*(\{.*\});'
match = re.search(pattern, html_content)
json_str = match.group(1)
json_obj = json.loads(json_str)
gameDict = json_obj["EventTypeStatistic"]
gameKeys = list(dict.keys(gameDict))

signlists = []
for _ in range(0,3):
	signlists.append(list())

for gameKey in gameKeys:
	game = gameDict[gameKey]["distributions"]["2"]["Global"]["current"]["value"]
	for ix,perc in enumerate(game):
		signlists[ix].append(int(perc))


P = { "1": signlists[0], "X": signlists[1], "2": signlists[2] } 

rows = itertools.product(*(['1X2'] * 13))

with open(outfile, 'w') as f:  
	for row in rows:
		percentage = sum(P[result][n] for (n, result) in enumerate(row))
		if percentage >= pmin and percentage <= pmax:
			f.write(','.join(row + (str(percentage),))+"\n")

Blir intressant att testa när de väl släpper nya streckfördelningen, vad får du för resultat om du kör det nu ?
Citera
2023-08-27, 21:34
  #60
Medlem
Enterprises avatar
Citat:
Ursprungligen postat av Mysadname
Blir intressant att testa när de väl släpper nya streckfördelningen, vad får du för resultat om du kör det nu ?
Som sagt tidigare i tråden cirka 200K rader baserat på den data som fanns uppe tidigare idag.
Så du kanske bör justera parametrarna för att smalna ner det lite?
Alltså ändra dessa rader i skriptet:
Kod:
pmin = 500  # golv-nivå för totalt antal streck
pmax = 550  # tak-nivå för totalt antal streck
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in