Independent Chip Model fo poker and Win to Plase in horse racing
#41 OFFLINE
Добавлено 01 December 2015 - 18:41
#42 OFFLINE
Добавлено 02 December 2015 - 08:37
Нужно кефы на забег по вину и рядом по плейсу и надо пересчёт по проге Сектора в плейс (третий столбик...ну чтоб сравнить)
Можно наверно парочку пока взять забегов и их обсосать со всех сторон (желательно шоб не очень большие были по числу участников)...
Есть одна идея по пересчёту и алгоритм вроде --говно вопрос...надо его обмозговать совместными усилиями...на 3-ёх бегунах что приводил пример там вот так примерно получается по кефам при таком пересчёте (ну и порождаются новые кефы на вин--как побочный эффект от порождения Р)
Plase2 P1
1,239157373 1,911314985
1,955416504 5,656108597
1,46713615 3,333333333
а при моделировании там на плейсы (2 места кефы)
1.214
2.002
1.477
в целом достаточно близко получилось....Как будет на лошарах ХЗ....
Отредактировано Bambuk, 02 December 2015 - 08:39.
#43 OFFLINE
Добавлено 02 December 2015 - 17:52
моделирования, поэтому повторяться не имеет смысла…напомню лишь кусок кода и место(выделено жирным) где генерируются точки распределением Релея ( Ссылка Здесь )
Public Sub Racing_P(ByRef zag As Range, ByRef vgr As Range, ByRef Num As Range)
Dim Z, V As Range
Dim N As Range
Dim i, j, m, l As Integer
Dim Tsec(), Otkl(), Amatr(), Bmatr() As Double
Dim REZ(), Summat() As Integer
Dim c_pi As Single
Dim Gf, Gr, SGEN As Double
Set N = Num
Set Z = zag
Set V = vgr
ReDim Tsec(N.Value - 1)
ReDim Otkl(N.Value - 1)
ReDim Amatr(N.Value - 1)
ReDim Bmatr(N.Value - 1)
ReDim Summat(N.Value - 1, N.Value - 1)
i = 0
Do Until i >= N.Value
Tsec(i) = Z.Offset(rowOffset:=i, columnOffset:=0).Value
Otkl(i) = Z.Offset(rowOffset:=i, columnOffset:=1).Value
i = i + 1
Loop
c_pi = 3.14159265358979
j = 1
For j = 1 To 5000
i = 0
Do Until i >= N.Value
Gr = Rnd()
Gr = Rnd()
SGEN = ((-2 * Log(Gr)) ^ 0.5)
Amatr(i) = Tsec(i) - 1 + SGEN * Otkl(i)
Bmatr(i) = Amatr(i)
i = i + 1
Loop
Call Sort_1(Bmatr)
l = 0
Do Until l >= N.Value
m = 0
Do
If Amatr(l) = Bmatr(m) Then
Summat(l, m) = Summat(l, m) + 1
End If
m = m + 1
Loop Until Amatr(l) = Bmatr(m - 1)
l = l + 1
Loop
Next j
j = 0
Do Until j >= N.Value
i = 0
Do Until i >= N.Value
V.Offset(rowOffset:=i, columnOffset:=j).Value = Summat(i, j) / 5000
i = i + 1
Loop
j = j + 1
Loop
End Sub
Public Sub Sort_1(a() As Double)
Dim n_1, i_1, j_1 As Integer
n_1 = UBound(a, 1)
For i_1 = 0 To n_1 - 1
For j_1 = i_1 + 1 To n_1
If a(j_1) < a(i_1) Then
Tmp = a(i_1)
a(i_1) = a(j_1)
a(j_1) = Tmp
End If
Next j_1
Next i_1
End Sub
Sub RacingMain()
'
' RacingMain Макрос
'
'
Dim a1, b1, c1 As Range
Set a1 = Range("$G$8")
Set b1 = Range(a1.Offset(rowOffset:=0, columnOffset:=6).Address)
Set c1 = Range(a1.Offset(rowOffset:=-2, columnOffset:=0).Address)
Call Racing_P(a1.Cells(1, 1), b1.Cells(1, 1), c1.Cells(1, 1))
End Sub
Теперь суть расчёта вин ту плейс можно примитивно свести к следующему достаточно упрощённому алгоритму (можно конечно его усложнить но не вижу смысла в том…так как подбор там будет замороченный и не факт что будет истине соответствовать в любом случае…)
Берём эмпирическую формулу для выставления псевдо времён
Tsec(i)
1-1/(Kwin^(1/N))
N—число лош. в забеге
Параметр si распределения Реллея теперь просто надо подобрать по минимальному отклонению сгенерированных кефоф на вин от кефоф рынка вин.
(этот параметр находится во втором столбике с данными на приводимых ранее рисунках
А берём начальный опорный план например везде 0.33 потом просто меняем везде
Si и он везде одинаковый.
У меня к сожалению мало по объёму генерит система и рекомендую для метода монте-карло взять как минимум более 20000 примеров….(а то там приходится много раз генерить….. не оч. удобно….
ПРИМЕР 1
Вот исходник
bsp form.horseracing.betfair.com/raceresult?raceId=1.30.1151201.1
2,55 2,25 1,12
2 2 1,09
66 21 4,5
88 34 5,06
90 21 4,39
233 51 9,29
194 51 9,7
32 13 3,02
1000 67 32
Вот что-то типа сгенерировалось (по bsp кефам)
Plase4 Plase3 Plase2 P1
1,106684374 1,181753723 1,344809037 2,41662639 1 0,098784051 0,255
1,083423619 1,149954002 1,279754287 1,995211492 2 0,074125288 0,255
2,458210423 3,846153846 9,842519685 63,29113924 3 0,372189678 0,255
2,829654782 4,926108374 13,8121547 69,44444444 4 0,391940092 0,255
2,849002849 5,060728745 15,38461538 102,0408163 5 0,393456513 0,255
4,826254826 10,26694045 35,97122302 312,5 6 0,454291833 0,255
4,191114837 8,460236887 32,89473684 238,0952381 7 0,443071032 0,255
1,862891207 2,627430373 5,793742758 26,73796791 8 0,319605 0,255
12,56281407 36,49635036 192,3076923 5000 9 0,535841117 0,255
ПРИМЕР 2 form.horseracing.betfair.com/raceresult?raceId=1.47.1151201.1
4,45 2,24 0,220277623
7,84 3,85 0,290508294
6,42 2,64 0,26648191
33,88 10,31 0,444083668
4,3 2,3 0,215808873
4,44 2,79 0,219985209
Plase4 Plase3 Plase2 P1 Plase4 Plase3 Plase2 P1 P2 P3 P4 P5 P6
1,304121022 1,64095832 2,333177788 4,17710944 1 0,220277623 0,33 0,7668 0,6094 0,4286 0,2394 0,1892 0,1808 0,1574 0,134 0,0992
1,525320317 2,104377104 3,457814661 8,319467554 2 0,290508294 0,33 0,6556 0,4752 0,2892 0,1202 0,169 0,186 0,1804 0,1882 0,1562
1,454333915 1,963093836 3,004807692 6,675567423 3 0,26648191 0,33 0,6876 0,5094 0,3328 0,1498 0,183 0,1766 0,1782 0,1662 0,1462
2,754820937 5,440696409 13,22751323 52,63157895 4 0,444083668 0,33 0,363 0,1838 0,0756 0,019 0,0566 0,1082 0,1792 0,2448 0,3922
1,296344309 1,618646811 2,263467632 4,068348251 5 0,215808873 0,33 0,7714 0,6178 0,4418 0,2458 0,196 0,176 0,1536 0,1306 0,098
1,323451562 1,654533422 2,314814815 4,428697963 6 0,219985209 0,33 0,7556 0,6044 0,432 0,2258 0,2062 0,1724 0,1512 0,1362 0,1082
Надо только тем кто захочет что-то там делать обратить внимание на то что в кефах вин достаточно большая маржа и её можно по идее снести а потом восстановить кефы после расчёта обратной процедурой и вот именно их сравнивать с исходными кефами в алгоритме подбора si
При этом надо иметь в виду следующее—скорее всего маржа не одинаковая а имеет на малых кефах меньшие значения а на больших большее –это обстоятельство может быть при желании реализовано линейной функцией с наклоном (на которую собственно и умножают кефф вместо константы (обычно часто выбираемой игроками равной сумме 1/Кi что не совсем корректно)…
Примеры показаны без этой процедуры…
#44 OFFLINE
Добавлено 02 December 2015 - 18:16
Если маржа убирается то естественно в эмпирическую формулу 1-1/(Kwin^(1/N)) подставляются реанимированные кефы (а не кефы рынка), а потом смоделированные сравниваются с реанимированными или к ним применяется обратная процедура (дереанимации) и сравниваем с исходными кефами....
Отредактировано Bambuk, 02 December 2015 - 18:16.
#45 OFFLINE
Добавлено 02 December 2015 - 21:27
Дело в том что можно ставить сразу несколько плейсов например, но тогда возникает вопрос с оценками вероятностей событий которые могут наступить причём ранее описанными методами сложно установить некоторые вещи даже приблизительно. Дело в том что события для плейсов будут совместными (то есть может две лошади в плейс зайти или если три ставили то три или две из трёх итд итп...) Тогда мы не можем просто суммировать оценки по Р для плейсов. Я сейчас приведу некоторые правила их сложения (возможно есть форумчане с ними не знакомые)
Если при наступлении события вероятность события не меняется, то события и называются независимыми.
В случае независимых событий вероятность их произведения равна произведению вероятностей этих событий
P(AB) = P(A)×P( . Если зависимы то P(AB) = P(A)×P(B/А) ( или P(B)×P(A/B) )
Теорема умножения вероятностей легко обобщается на любое конечное число событий.
Теорема. Вероятность произведения конечного числа событий равна произведению их условных вероятностей относительно произведения предшествующих событий, т.е.
P(ABC....LM) = P(A)×P(B/A)×P(C/AB) P(M/AB...L).
Вероятность появления хотя бы одного из двух совместных событий равна сумме вероятностей этих событий без вероятности их совместного появления
P(A+ = P(A) + P( — P(AB).
Вероятность для трёх можно вывести например так: ввести событие D=A+B
А потом найти D+C
P(D+C)= P(D)+P©-P(DC) =
P(A) + P( + P©- P(AC)-P(BC)-P(AB)+P(ABC)
Для суммы трёх и более совместных событий формула вероятности суммы р(А1 + А2 + … + Аn ) является очень громоздкой, поэтому при расчёте вероятности такой совокупности переходят к противоположному событию ......
Моделирование позволяет найти все интересующие Р для этих формул..... Нас в основном интересовать может варианты или одна какая-то или обе вместе или ни одна...вот это по идее можно будет примерно оценить (при желании)....
Отредактировано Bambuk, 02 December 2015 - 21:35.
#46 OFFLINE
Добавлено 03 December 2015 - 00:20
#47 OFFLINE
Добавлено 03 December 2015 - 02:08
ponc, on 03 December 2015 - 00:20, сказал:
#48 OFFLINE
Добавлено 03 December 2015 - 05:39
ponc, on 03 December 2015 - 00:20, сказал:
Если Вы не знаете ВБА для приложений то можно и в клетках екселя всё делать
вот генерация точки по релею
=$P$285+$Q$285*(-2 * LN(СЛЧИС())) ^ 0,5
$P$285--формально это Тминимум.
$Q$285--параметр распределения релея
(эти вот циферы стоят в двух столбиках см. рис1... в первых постах_) Далее Вы должны уметь тока складывать и умножать/делить....это-то уже в 2-3 классе знают ЦПШ....
Отредактировано Bambuk, 03 December 2015 - 05:49.
#49 OFFLINE
Добавлено 03 December 2015 - 06:11
=НАИБОЛЬШИЙ(S286:X286;1) //=НАИБОЛЬШИЙ(S286:X286;2)….итд
S286:X286—тут допустим строка с лошарами (одна строка= один забег)
Для каждой лошары выделяйте столбец (скока там надо забегов стока строк будет)
Далее вам просто надо понять какой лошаре соответствует место---делаете ещё рядом места в которые пишете номер лошади
=ПОИСКПОЗ(S286;Y286:AD286;0)
S286—это сгенерированная точка
Y286:AD286—это строка с ячейками из предыдущего пункта
Манепунт_Релей_пример.jpg 41.86K 1 Количество загрузок
Дальше нагенерив считайте чё хотите ....
#50 OFFLINE
Добавлено 03 December 2015 - 06:42
#51 OFFLINE
Добавлено 03 December 2015 - 07:09
Конь в пальто, on 03 December 2015 - 06:42, сказал:
Там я явно погорячился с функцией НАИБОЛЬШИЙ.... делал для леев (не путать с геями) и надо было выделить плохих лошар...для баков там в обычном режиме у нас 1-ая лошадь имеет наименьшее время естественно поэтому прошу пардону...пишем НАИМЕНЬШИЙ....
Отредактировано Bambuk, 03 December 2015 - 07:10.
#52 OFFLINE
Добавлено 03 December 2015 - 07:22
#53 OFFLINE
Добавлено 06 December 2015 - 20:41
#54 OFFLINE
Добавлено 06 December 2015 - 21:34
Aferist, on 06 December 2015 - 20:41, сказал:
суть примерно такая есть две кучи допустим одна строго с Р=0.3 а другая (такая же по объёму с Р=0.7) теперь сливаем кучи...все события перемешались и ХЗ ху из ху.....
тогда БК может давать 0,5 или 0.35 0.65 потом 0.3 0.7 итд (я имею в виду кефы 1/оценки и +маржа) тогда по логике там бК похер если баланс в порядке (то есть выплаты при любом исходе дают прибыль бК...бирже итд...)
Теперь возьмём простейший вариант---БК всегда даёт оценку 0.5 (+маржа) тогда вопрос упрётся----сколько раз игрок ошибётся в правильности оценки наличия перевеса...
он же может посчитать что 0.5 для 0.3 это нормально..... или отвергнуть ставку на реальное 0.7.
При этом если БК выставляет кефы скажем всегда по оценке 0.5 то на объёме будет казаться что оценка в статистику-то попадает (типа правильно прогнозируют)
так как мат ожидания будут по двум совокупностям размерности N 0.3*N+0.7*N= N*(0.3+0.7)=2N*0.5 последнее формально МО числа винов общей кучи при оценке Р= (0.3+0.7)/2......
А то что резко меняются до старта так я думаю там просто реализуются какие-то стратегии ботами (они ж не обязательно должны затачиваться на оценки истинные...которых ни кто не знает а на какие-то попанские тенденции а боты чаще играют против этих тенденций.....ну я так думаю...как там в реалове ХЗ....).
#55 OFFLINE
Добавлено 06 December 2015 - 22:23
#56 OFFLINE
Добавлено 07 December 2015 - 08:23
Sector, on 30 November 2015 - 22:34, сказал:
Р1=0,167
Р2=0,333
Р3=0,5
Сумма равна единице, все соотношения сохранены.
Пример.
Забег1
P1=0.5
P2=0.25
P3=0.25
Вероятность первой лошади занять 2-е место=0,25*0,5/(1-0,25)+0,25*0,5/(1-0,25)=0,3333
Забег2
P1=0.5
P2=0.4
P3=0.1
Вероятность первой лошади занять 2-е место=0,4*0,5/(1-0,4)+0,1*0,5/(1-0,1)=0,388888
#57 OFFLINE
#58 OFFLINE
Добавлено 07 December 2015 - 10:51
#59 OFFLINE
Добавлено 07 December 2015 - 11:02
tehasec, on 07 December 2015 - 08:23, сказал:
#60 OFFLINE
Добавлено 07 December 2015 - 11:12