|
@@ -61,7 +61,7 @@ public class HomeTeamTest extends TestClass {
|
|
|
final float betLevel = bettingLevel / 100f;
|
|
final float betLevel = bettingLevel / 100f;
|
|
|
float betAmount = startingBank * betLevel;
|
|
float betAmount = startingBank * betLevel;
|
|
|
|
|
|
|
|
- for (int lookback = 1; lookback < 25; lookback++) {
|
|
|
|
|
|
|
+ for (int lookback = 4; lookback < 25; lookback++) {
|
|
|
for (int margin = 1; margin < 25; margin++) {
|
|
for (int margin = 1; margin < 25; margin++) {
|
|
|
final float betMarginDecimal = 1 + (margin / 100);
|
|
final float betMarginDecimal = 1 + (margin / 100);
|
|
|
float bank = startingBank;
|
|
float bank = startingBank;
|
|
@@ -85,10 +85,6 @@ public class HomeTeamTest extends TestClass {
|
|
|
final long likaBortalag = bortaMatcher.stream().filter(p -> p.getHomeScore() == p.getAwayScore()).count();
|
|
final long likaBortalag = bortaMatcher.stream().filter(p -> p.getHomeScore() == p.getAwayScore()).count();
|
|
|
final long bortaForluster = bortaMatcher.stream().filter(p -> p.getHomeScore() > p.getAwayScore()).count();
|
|
final long bortaForluster = bortaMatcher.stream().filter(p -> p.getHomeScore() > p.getAwayScore()).count();
|
|
|
|
|
|
|
|
-
|
|
|
|
|
- // final TeamResults homeTeamResults = GuiMysql.getInstance().getTeamResultsTest(soccerMatch.getHomeTeam().getTeamId(), lookback, true, sm.getGameDate().format(DateTimeFormatter.ISO_DATE));
|
|
|
|
|
- // final TeamResults awayTeamResults = GuiMysql.getInstance().getTeamResultsTest(soccerMatch.getAwayTeam().getTeamId(), lookback, false, sm.getGameDate().format(DateTimeFormatter.ISO_DATE));
|
|
|
|
|
-
|
|
|
|
|
final float homeWinPercent = (hemmaVinster + bortaForluster) / Float.valueOf(hemmaMatcher.size() + bortaMatcher.size()) * 100;
|
|
final float homeWinPercent = (hemmaVinster + bortaForluster) / Float.valueOf(hemmaMatcher.size() + bortaMatcher.size()) * 100;
|
|
|
final float homeOdds = 100 / homeWinPercent;
|
|
final float homeOdds = 100 / homeWinPercent;
|
|
|
|
|
|
|
@@ -104,46 +100,20 @@ public class HomeTeamTest extends TestClass {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
- // Spela på lika?
|
|
|
|
|
- final float tiePercent = (lika + likaBortalag) / Float.valueOf(hemmaMatcher.size() + bortaMatcher.size()) * 100;
|
|
|
|
|
- final float tieOdds = 100 / tiePercent;
|
|
|
|
|
-
|
|
|
|
|
- if (tieOdds * betMarginDecimal <= soccerMatch.getOddsX()) {
|
|
|
|
|
- betOnGameCount++;
|
|
|
|
|
- bank = bank - betAmount;
|
|
|
|
|
- if (soccerMatch.getHomeScore() == soccerMatch.getAwayScore()) {
|
|
|
|
|
- wins++;
|
|
|
|
|
- bank = bank + betAmount * soccerMatch.getOddsX();
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- final float awayWinPercent = (hemmaForluster + bortaVinster) / Float.valueOf(hemmaMatcher.size() + bortaMatcher.size()) * 100;
|
|
|
|
|
- final float awayOdds = 100 / awayWinPercent;
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- // Spela på borta vins?
|
|
|
|
|
- if (awayOdds * betMarginDecimal <= soccerMatch.getOdds2()) {
|
|
|
|
|
- betOnGameCount++;
|
|
|
|
|
- bank = bank - betAmount;
|
|
|
|
|
- if (soccerMatch.getHomeScore() < soccerMatch.getAwayScore()) {
|
|
|
|
|
- wins++;
|
|
|
|
|
- bank = bank + betAmount * soccerMatch.getOdds2();
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- if (bestBankResult < bank) {
|
|
|
|
|
|
|
+ if (bestBankResult != startingBank && bestBankResult < bank) {
|
|
|
System.out.println("NEW best bank " + bank + " for team " + teamSettings.getTeamName() + " with lookback " + lookback + " and betMargin " + margin +
|
|
System.out.println("NEW best bank " + bank + " for team " + teamSettings.getTeamName() + " with lookback " + lookback + " and betMargin " + margin +
|
|
|
" Bet on " + betOnGameCount + " of " + matches.size() + "(" + betOnGameCount / (float)matches.size() + ") wins " + wins + "(" + wins/Float.valueOf(betOnGameCount) + ")" +
|
|
" Bet on " + betOnGameCount + " of " + matches.size() + "(" + betOnGameCount / (float)matches.size() + ") wins " + wins + "(" + wins/Float.valueOf(betOnGameCount) + ")" +
|
|
|
" Win / game " + (bank - startingBank) / Float.valueOf(wins) + " kr");
|
|
" Win / game " + (bank - startingBank) / Float.valueOf(wins) + " kr");
|
|
|
bestBetMargin = margin;
|
|
bestBetMargin = margin;
|
|
|
bestLookBack = lookback;
|
|
bestLookBack = lookback;
|
|
|
bestBankResult = bank;
|
|
bestBankResult = bank;
|
|
|
- } else if (bestBankResult == bank) {
|
|
|
|
|
|
|
+ } else if (bestBankResult != startingBank && bestBankResult == bank) {
|
|
|
System.out.println("SAME best bank " + bank + " for team " + teamSettings.getTeamName() + " with lookback " + lookback + " and betMargin " + margin +
|
|
System.out.println("SAME best bank " + bank + " for team " + teamSettings.getTeamName() + " with lookback " + lookback + " and betMargin " + margin +
|
|
|
" Bet on " + betOnGameCount + " of " + matches.size() + "(" + betOnGameCount / (float)matches.size() + ") wins " + wins + "(" + wins/Float.valueOf(betOnGameCount) + ")" +
|
|
" Bet on " + betOnGameCount + " of " + matches.size() + "(" + betOnGameCount / (float)matches.size() + ") wins " + wins + "(" + wins/Float.valueOf(betOnGameCount) + ")" +
|
|
|
" Win / game " + (bank - startingBank) / Float.valueOf(wins) + " kr");
|
|
" Win / game " + (bank - startingBank) / Float.valueOf(wins) + " kr");
|
|
|
|
|
+ bestBetMargin = margin;
|
|
|
|
|
+ bestLookBack = lookback;
|
|
|
|
|
+ bestBankResult = bank;
|
|
|
} else {
|
|
} else {
|
|
|
// System.out.println("NOT BEST bank " + bank + " for team " + teamSettings.getTeamName() + " with lookback " + lookback + " and betMargin " + margin +
|
|
// System.out.println("NOT BEST bank " + bank + " for team " + teamSettings.getTeamName() + " with lookback " + lookback + " and betMargin " + margin +
|
|
|
// " Bet on " + betOnGameCount + " of " + matches.size() + "(" + betOnGameCount / (float)matches.size() + ") wins " + wins + "(" + wins/Float.valueOf(betOnGameCount) + ")" +
|
|
// " Bet on " + betOnGameCount + " of " + matches.size() + "(" + betOnGameCount / (float)matches.size() + ") wins " + wins + "(" + wins/Float.valueOf(betOnGameCount) + ")" +
|
|
@@ -152,6 +122,8 @@ public class HomeTeamTest extends TestClass {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ teamSettings.setLookbackHome(bestLookBack);
|
|
|
|
|
+ teamSettings.setMarginHome(bestBetMargin);
|
|
|
|
|
|
|
|
return teamSettings;
|
|
return teamSettings;
|
|
|
}
|
|
}
|
|
@@ -220,7 +192,7 @@ public class HomeTeamTest extends TestClass {
|
|
|
+ "WHERE "
|
|
+ "WHERE "
|
|
|
+ "DATE(gameDate) < DATE_SUB(NOW(), INTERVAL 1 YEAR) AND "
|
|
+ "DATE(gameDate) < DATE_SUB(NOW(), INTERVAL 1 YEAR) AND "
|
|
|
+ "res.leagueId = ? "
|
|
+ "res.leagueId = ? "
|
|
|
- + "ORDER BY gameDate ASC";
|
|
|
|
|
|
|
+ + "ORDER BY gameDate DESC";
|
|
|
|
|
|
|
|
try {
|
|
try {
|
|
|
final PreparedStatement stmt = getConnection().prepareStatement(sql);
|
|
final PreparedStatement stmt = getConnection().prepareStatement(sql);
|