Saya sudah mencoba kode algoritma untuk menyarankan taruhan di 1X2 (game berbobot).
Pada dasarnya, setiap pertandingan memiliki serangkaian pertandingan (tim kandang vs tim tamu):
1
: rumah menangX
: seri2
: kemenangan tandang
Untuk setiap pertandingan dan simbol ( 1
, X
dan 2
), saya akan menetapkan persentase yang mewakili peluang / kemungkinan simbol itu menjadi hasil pertandingan yang benar. Berikut ini array yang mewakili struktur:
$game = array
(
'match #1' => array // stdev = 0.0471
(
'1' => 0.3, // 30% home wins
'X' => 0.4, // 40% draw
'2' => 0.3, // 30% away wins
),
'match #2' => array // stdev = 0.4714
(
'1' => 0.0, // 0% home wins
'X' => 0.0, // 0% draw
'2' => 1.0, // 100% away wins
),
'match #3' => array // stdev = 0.4027
(
'1' => 0.1, // 10% home wins
'X' => 0.0, // 0% draw
'2' => 0.9, // 90% away wins
),
);
Saya juga menghitung simpangan baku untuk setiap taruhan (dikomentari dalam cuplikan di atas); standar deviasi yang lebih tinggi mewakili kepastian yang lebih tinggi, sementara pertandingan dengan standar deviasi terendah diterjemahkan ke tingkat ketidakpastian yang lebih tinggi, dan, idealnya, harus ditutup dengan taruhan ganda atau tiga kali lipat, jika memungkinkan.
Algoritma pseudo berikut harus menjelaskan alur kerja keseluruhan:
for each match, sorted by std. dev // "uncertain" matches first
if still can make triple bets
mark top 3 symbols of match // mark 3 (all) symbols
else if still can make double bets
mark top 2 symbols of match // mark 2 (highest) symbols
else if can only make single bets // always does
mark top symbol of match // mark 1 (highest) symbol
Sejauh ini bagus, tapi saya perlu memberi tahu algoritma berapa banyak yang ingin saya belanjakan. Katakanlah biaya taruhan tunggal 1
dalam mata uang apa pun, rumus untuk menghitung berapa banyak biaya taruhan ganda:
2^double_bets * 3^triple_bets * cost_per_bet (= 1)
Jelas, algoritma harus mencoba mengalokasikan uang sebanyak mungkin yang tersedia ke dalam saran taruhan (tidak masuk akal jika tidak), dan sekarang adalah saat ini menjadi semakin sulit ...
Katakanlah saya ingin membayar maksimum 4
, mendaftar semua kelipatan yang mungkin dalam PHP ( @ IDEOne ):
$cost = 1; // cost per single bet
$result = array();
$max_cost = 4; // maximum amount to bet
foreach (range(0, 3) as $double)
{
foreach (range(0, 3) as $triple)
{
if (($double + $triple) <= 3) // game only has 3 matches
{
$bets = pow(2, $double) * pow(3, $triple); // # of bets
$result[$bets] = array
(
'cost' => $bets * $cost, // total cost of this bet
'double' => $double,
'triple' => $triple,
);
if ($result[$bets]['cost'] > $max_cost)
{
unset($result[$bets]);
}
}
}
}
ksort($result);
Menghasilkan output berikut:
Array
(
[1] => Array
(
[cost] => 1
[double] => 0
[triple] => 0
)
[2] => Array
(
[cost] => 2
[double] => 1
[triple] => 0
)
[3] => Array
(
[cost] => 3
[double] => 0
[triple] => 1
)
[4] => Array
(
[cost] => 4
[double] => 2
[triple] => 0
)
)
Masalah
Jika saya memilih untuk memainkan jumlah uang maksimum yang tersedia ( 4
) saya harus bertaruh dengan dua ganda, jika saya menggunakan algoritma semu yang saya jelaskan di atas, saya akan berakhir dengan saran taruhan berikut:
match #1
=>X1
match #2
=>2
match #3
=>12
Yang tampaknya kurang optimal jika dibandingkan dengan taruhan rangkap tiga yang harganya 3
dan mencakup lebih banyak ketidakpastian:
match #1
=>X12
match #2
=>2
match #3
=>2
Contoh di atas mendapatkan lebih banyak relevansi jika Anda menganggap match #3
kemungkinan itu adalah:
$game['match #3'] = array // stdev = 0.4714
(
'1' => 0.0, // 0% home wins
'X' => 0.0, // 0% draw
'2' => 1.0, // 100% away wins
);
Dalam hal ini saya akan membuang dua kali lipat tanpa alasan yang jelas.
Pada dasarnya, saya hanya bisa memilih taruhan terbesar (mungkin bodoh) dan bukan yang terbaik , taruhan terbesar .
Saya telah membenturkan kepala saya ke dinding selama beberapa hari sekarang, berharap saya mendapatkan semacam pencerahan tetapi sejauh ini saya hanya dapat menemukan dua solusi [buruk-]:
1) Gambar "Garis"
Pada dasarnya saya akan mengatakan bahwa pertandingan dengan stdev lebih rendah dari nilai spesifik akan menjadi tiga kali lipat, pertandingan dengan stdev yang lebih tinggi akan menjadi taruhan ganda dan sisanya taruhan tunggal.
Masalah dengan ini, tentu saja, adalah menemukan batas-batas spesifik yang sesuai - dan bahkan jika saya menemukan nilai yang sempurna untuk taruhan "paling cerdas", saya masih tidak tahu apakah saya punya cukup uang untuk memainkan taruhan yang disarankan atau jika Saya bisa membuat taruhan yang lebih besar (juga pintar) ...
2) Bruteforce
Saya datang dengan ide ini saat menulis pertanyaan ini dan saya tahu itu tidak masuk akal dalam konteks yang saya jelaskan tetapi saya pikir saya bisa membuatnya bekerja menggunakan metrik yang agak berbeda. Pada dasarnya, saya bisa membuat program menyarankan taruhan (# taruhan triple dan double) untuk setiap jumlah uang yang mungkin bisa saya mainkan (dari 1
hingga 4
dalam contoh saya), menerapkan algoritma semu yang saya jelaskan di atas dan menghitung nilai peringkat global (sesuatu seperti % of symbols * match stdev
- Saya tahu, itu tidak masuk akal).
Taruhan dengan peringkat tertinggi (mencakup ketidakpastian) akan menjadi taruhan yang disarankan. Masalah dengan pendekatan ini (selain fakta bahwa itu belum masuk akal) adalah bahwa permainan yang akan dikerjakan dengan program saya tidak terbatas pada 3 pertandingan dan jumlah kombinasi taruhan ganda dan tripel untuk pertandingan tersebut adalah jauh lebih tinggi.
Saya merasa ada solusi yang elegan, tapi saya tidak bisa menangkapnya ...
Setiap bantuan memecahkan masalah ini sangat dihargai, terima kasih.
Tampaknya ada beberapa kebingungan mengenai masalah saya, saya sudah membahas ini dalam pertanyaan ini dan juga di komentar tetapi kesalahan penafsiran tampaknya masih berlaku, setidaknya untuk beberapa.
Saya perlu tahu berapa banyak taruhan triple, double dan single yang akan saya mainkan untuk permainan tertentu (semua pertandingan). Saya sudah tahu simbol apa yang ingin saya mainkan dengan melihat setiap pertandingan secara individual.
sumber
Jawaban:
Saya pikir saya datang dengan solusi bruteforce yang bisa diterapkan, seperti ini:
Untuk contoh dan jumlah yang saya berikan dalam pertanyaan saya, ini adalah:
2) menghitung standar deviasi peluang simbol untuk setiap pertandingan
3) untuk setiap kombinasi beberapa taruhan ( langkah 1 ) menghitung peringkat menggunakan rumus:
peringkat = (#n (x) [+ #n (y) [+ #n (z)]]) / stdev (#n)
Di mana
#n
ada kecocokan spesifik dan#n(x|y|z)
merupakan peluang simbol yang dipesan.Tes untuk taruhan 1 tunggal, 2 ganda, 0 tiga kali lipat:
(#1(X) + #1(1)) / stdev(#1) = (0.4 + 0.3) / 0.047 = 14.89
(#2(2) + #2(1)) / stdev(#2) = (0.9 + 0.1) / 0.402 = 2.48
#3(2) / stdev(#3) = 1.0 / 0.471 = 2.12
Taruhan ini memberi saya peringkat global
14.89 + 2.48 + 2.12 = 19.49
.Tes untuk taruhan 2 tunggal, 0 ganda, 1 tiga:
(#1(X) + #1(1) + #1(2)) / stdev(#1) = (0.4 + 0.3 + 0.3) / 0.047 = 21.28
#2(2) / stdev(#2) = 0.9 / 0.402 = 2.24
#3(2) / stdev(#3) = 1.0 / 0.471 = 2.12
Yang memberi saya peringkat global
21.28 + 2.24 + 2.12 = 25.64
. :-)Semua taruhan yang tersisa jelas akan lebih rendah sehingga tidak ada gunanya mengujinya.
Metode ini tampaknya bekerja tetapi saya datang dengan cara coba-coba dan mengikuti isi perut saya, saya tidak memiliki pemahaman matematis untuk menilai apakah itu benar atau bahkan jika ada cara yang lebih baik ...
Ada petunjuk?
PS: Maaf untuk pemformatan yang buruk tetapi parser MD tampaknya berbeda dari StackOverflow.
sumber
Bagaimana dengan membuat solusi berdasarkan Metode Simplex. Karena premis untuk menggunakan metode Simplex tidak terpenuhi kita perlu memodifikasi metode sedikit. Saya menyebut versi yang dimodifikasi "Walk the line".
Metode:
Anda dapat mengukur ketidakpastian setiap pertandingan. Lakukan! Hitung ketidakpastian dari setiap pertandingan dengan taruhan tunggal atau ganda (untuk taruhan triple tidak ada ketidakpastian). Saat menambahkan taruhan ganda atau tripel, selalu pilih yang mengurangi ketidakpastian paling banyak.
Pilih taruhan dengan ketidakpastian total terendah.
sumber
Apa yang saya dapatkan dari mengamati sportsbets ini saya sampai pada kesimpulan ini.
Nilai yang diharapkan
Mari kita katakan bahwa Anda memiliki 3 taruhan
1.29 5.5 and 10.3
(taruhan terakhir dalam tabel) EV untuk taruhan adalahEV = 1/(1/1.29+1/5.5+1/10.3) - 1 = -0.05132282687714185
jika memegang bahwa probabilitas satu kemenangan atas yang lain didistribusikan sebagai1/1.29 : 1/5.5 : 1/10.3
, maka Anda kehilangan uang Anda dalam jangka panjang karena EV Anda negatif.Anda hanya dapat untung jika mengetahui probabilitas dari setiap hasil dan mengetahui penyimpangan.
Katakanlah probabilitas yang sebenarnya
0.7 : 0.2 : 0.1
Itu berarti bahwa tarif seharusnya
1.43 \ 5.0 \ 10.0
Anda dapat melihat bahwa dalam kasus ini hadiah terbaik adalah untuk taruhan taruhan karena memberi Anda di
EV(0) = 5.5/5 - 1 = 0.1
mana bertaruh untuk kerugian
EV(2) = 10.2/10 - 1 = 0.02
dan bertaruh untuk kemenangan kandang bahkan EV-
EV(1) = 1.29/1.43 - 1 = -0.10
sumber