Перепрыгнеть в содержание


- - - - -

Применение в ставках Excel and VBA для чайников


63 ответов в эту тему

#41 OFFLINE   Bambuk

    Специалист


  • mp
  • 6322 сообщения
602

Добавлено 26 February 2014 - 18:05

КЛАСТЕРЫ по Г1 Г2 (по мат. ожиданиям)
Функция (возвращает 5 ответов--номер кластера, отв. по 1Х2 и ТМ2.5)
{CLASTG1G2(AB31:AC31)}

Function CLASTG1G2(ByRef rah As Range, Optional VolatileOn As Boolean = True) As Variant
Application.Volatile VolatileOn
Dim VOZ As Range
Dim i As Long
Dim smas(1) As Single
For Each VOZ In rah.Cells
smas(i) = VOZ.Value
i = i + 1
Next VOZ

Arrast = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
Dim Vxod(15, 1) As Double
Dim Wix(15, 4) As Double
Dim SRR As Double
Dim Otvet(4) As Double

Vxod(0, 0) = 1.37
Vxod(1, 0) = 0.967
Vxod(2, 0) = 0.85
Vxod(3, 0) = 1.7458
Vxod(4, 0) = 3.9478
Vxod(5, 0) = 2.4466
Vxod(6, 0) = 2.738
Vxod(7, 0) = 0.8559
Vxod(8, 0) = 1.9972
Vxod(9, 0) = 1.503
Vxod(10, 0) = 1.1587
Vxod(11, 0) = 1.04227
Vxod(12, 0) = 0.852
Vxod(13, 0) = 1.3458
Vxod(14, 0) = 1.8986
Vxod(15, 0) = 2.4949

Vxod(0, 1) = 1.238
Vxod(1, 1) = 3.124
Vxod(2, 1) = 0.7298
Vxod(3, 1) = 0.5107
Vxod(4, 1) = 0.788
Vxod(5, 1) = 0.522
Vxod(6, 1) = 0.9894
Vxod(7, 1) = 1.1185
Vxod(8, 1) = 1.2544
Vxod(9, 1) = 1.689
Vxod(10, 1) = 0.478
Vxod(11, 1) = 2.223
Vxod(12, 1) = 1.6209
Vxod(13, 1) = 0.8605
Vxod(14, 1) = 0.87
Vxod(15, 1) = 1.7386

Wix(0, 0) = 0
Wix(1, 0) = 1
Wix(2, 0) = 2
Wix(3, 0) = 3
Wix(4, 0) = 4
Wix(5, 0) = 5
Wix(6, 0) = 6
Wix(7, 0) = 7
Wix(8, 0) = 8
Wix(9, 0) = 9
Wix(10, 0) = 10
Wix(11, 0) = 11
Wix(12, 0) = 12
Wix(13, 0) = 13
Wix(14, 0) = 14
Wix(15, 0) = 15

Wix(0, 1) = 0.4266
Wix(1, 1) = 0.1644
Wix(2, 1) = 0.408
Wix(3, 1) = 0.5904
Wix(4, 1) = 0.8835
Wix(5, 1) = 0.7349
Wix(6, 1) = 0.655
Wix(7, 1) = 0.3843
Wix(8, 1) = 0.53086
Wix(9, 1) = 0.4296
Wix(10, 1) = 0.4885
Wix(11, 1) = 0.217
Wix(12, 1) = 0.27966
Wix(13, 1) = 0.441
Wix(14, 1) = 0.57078
Wix(15, 1) = 0.555

Wix(0, 2) = 0.2857
Wix(1, 2) = 0.2466
Wix(2, 2) = 0.2943
Wix(3, 2) = 0.25
Wix(4, 2) = 0.0485
Wix(5, 2) = 0.1566
Wix(6, 2) = 0.2136
Wix(7, 2) = 0.301
Wix(8, 2) = 0.2747
Wix(9, 2) = 0.22
Wix(10, 2) = 0.2984
Wix(11, 2) = 0.2638
Wix(12, 2) = 0.2655
Wix(13, 2) = 0.2923
Wix(14, 2) = 0.267
Wix(15, 2) = 0.2685

Wix(0, 3) = 0.2877
Wix(1, 3) = 0.589
Wix(2, 3) = 0.2977
Wix(3, 3) = 0.1596
Wix(4, 3) = 0.068
Wix(5, 3) = 0.108
Wix(6, 3) = 0.13
Wix(7, 3) = 0.3144
Wix(8, 3) = 0.1944
Wix(9, 3) = 0.35
Wix(10, 3) = 0.213
Wix(11, 3) = 0.519
Wix(12, 3) = 0.4548
Wix(13, 3) = 0.26667
Wix(14, 3) = 0.162
Wix(15, 3) = 0.1759

Wix(0, 4) = 0.4768
Wix(1, 4) = 0.4795
Wix(2, 4) = 0.5719
Wix(3, 4) = 0.5186
Wix(4, 4) = 0.31068
Wix(5, 4) = 0.43
Wix(6, 4) = 0.4515
Wix(7, 4) = 0.5611
Wix(8, 4) = 0.4969
Wix(9, 4) = 0.45
Wix(10, 4) = 0.515
Wix(11, 4) = 0.48085
Wix(12, 4) = 0.5537
Wix(13, 4) = 0.5675
Wix(14, 4) = 0.452
Wix(15, 4) = 0.3888


For i = 0 To 15
SRR = 0
For j = 0 To 1
SRR = SRR + (Vxod(i, j) - smas(j)) ^ 2

Next j
Arrast(i) = SRR

Next i
For k = 0 To 4
Otvet(k) = Wix((WorksheetFunction.Match(WorksheetFunction.Min(Arrast), Arrast, 0) - 1), k)
Next k

CLASTG1G2 = Otvet
End Function

#42 OFFLINE   Bambuk

    Специалист


  • mp
  • 6322 сообщения
602

Добавлено 04 March 2014 - 08:54

Работа с коэфф. БК

Function PARMOD(ByRef rah0 As Range, ByRef rah1 As Range, ByRef rah2 As Range, Optional VolatileOn As Boolean = True) As Variant
Application.Volatile VolatileOn
Set Win = rah0
Set HX = rah1
Set TM = rah2
Dim H, T, M As Variant
Dim S, P As Double
Dim Xt1, Yt1 As Double
Dim Fx, Ftm, B, C, EDP, EDDP, EDS, EDDS, BDP, CDS As Double
Dim REZ(1) As Double
H = 0.872 / HX.Value
T = 0.961 / TM.Value
M = 1.35
S = 2.25
P = 1.25
Xt1 = 0
Yt1 = 0
Do Until Abs(Yt1 - S) < 0.0001 And Abs(Xt1 - P) < 0.0001
Do Until Abs(Xt1 - P) < 0.0001
Fx = Exp(-S) * (1 + P + P ^ 2 / 4 + P ^ 3 / 36 + P ^ 4 / 576 + P ^ 5 / 14400)
B = Exp(-S) * (1 + P / 2 + P ^ 2 / 12 + P ^ 3 / 144 + P ^ 4 / 2880)
BDP = Exp(-S) * (0.5 + P / 6 + P ^ 2 / 48 + P ^ 3 / 720)

EDP = (Fx - H) * B
EDDP = B ^ 2 + BDP * (Fx - H)
Xt1 = P
P = P - EDP / EDDP
Loop

Fx = Exp(-S) * (1 + P + P ^ 2 / 4 + P ^ 3 / 36 + P ^ 4 / 576 + P ^ 5 / 14400)
B = Exp(-S) * (1 + P / 2 + P ^ 2 / 12 + P ^ 3 / 144 + P ^ 4 / 2880)
BDP = Exp(-S) * (0.5 + P / 6 + P ^ 2 / 48 + P ^ 3 / 720)

EDP = (Fx - H) * B
EDDP = B ^ 2 + BDP * (Fx - H)
Xt1 = P
P = P - EDP / EDDP

Fx = Exp(-S) * (1 + P + P ^ 2 / 4 + P ^ 3 / 36 + P ^ 4 / 576 + P ^ 5 / 14400)
Ftm = Exp(-S) * (1 + S + S ^ 2 / 2)
B = Exp(-S) * (1 + P / 2 + P ^ 2 / 12 + P ^ 3 / 144 + P ^ 4 / 2880)
C = -(S ^ 2 / 2) * Exp(-S)
CDS = Exp(-S) * (S ^ 2 / 2 - S)

EDS = C * (Ftm - T) * M - Fx * (Fx - H)
EDDS = (Fx * (Fx - H) + Fx ^ 2) / (H ^ 2) + M * (CDS * (Ftm - T) + C ^ 2) / (T ^ 2)
Yt1 = S
S = S - EDS / EDDS
Loop

If (S ^ 2 / 4 - P >= 0) And (1 - 1 / Win.Value - 2 / HX.Value <= 0) Then
REZ(0) = (S / 2 + (S ^ 2 / 4 - P) ^ 0.5) * 1.001
REZ(1) = (S / 2 - (S ^ 2 / 4 - P) ^ 0.5) * 1.001
PARMOD = REZ
ElseIf (S ^ 2 / 4 - P >= 0) And (1 - 1 / Win.Value - 2 / HX.Value > 0) Then
REZ(0) = (S / 2 - (S ^ 2 / 4 - P) ^ 0.5) * 1.001
REZ(1) = (S / 2 + (S ^ 2 / 4 - P) ^ 0.5) * 1.001
PARMOD = REZ
Else
PARMOD = "НЕОПРЕДЕЛЁННОСТЬ"
End If

End Function


Функция возвращает массив из двкх чисел (вводится как функц. массива в две горизонтальные ячейки),
получаем приближённые значения МО1 МО2 для линии БК…далее можно приблизительно расчитать кефы
на рынках где у нас нет данных по Кбук,….. то что получится по формулам надо обработать «маржой» допустим кефф на фаворита можно получить из расчётного делением на 1,05-1,06 на ничью поделив на 1,08-1.09
кефф на тотал примерно на 1,045-1,065 на счёт надо вводить большую маржу-12-17% (а для высоких кефоф и выше) ну и так далее. Оценки очень приближённые, но для каких-то прикидок могут пригодиться (если кефоф нет). Небольшие корректировки можно попробовать получить для отдельных групп кефоф изменяя выделленные жирным поправочные коэффициенты внутри функции. Ни каких предварительных преобразований вводимые в функцию начальные кефы не требуют (это частично учтено в кефах-поправках)

={PARMOD(A13;B13;C13)}

A13-кеф на П1 B13-кеф на Х C13-кеф на ТМ2.5
Расчёт ведётся только по КХ и тоталу, К на П1 используется только чтоб раскинуть МО в соответствии с силой команд—силной большее МО и наоборот….
Функция имеет параметр пересчёта как и другие ранее приведённые ф.
={PARMOD(A13;B13;C13;1)}

Иногда линии 1Х2 и ТМ-ТБ сильно рассогласованы и функция выдаёт неопределённость , особенно если повысить кефф при H = 0.872 / HX.Value до 0.9 тогда можно немного понизить искусственно кефф на ТМ если его задрали ввеерх (но учесть потом этот факт при обработке кефоф маржой).

Теоретически для определённого вида ставок и какой-то полосы коэффициентов можно временно сделать
параметры выделенные жирным передаваемыми в функцию и на большом объёме подобрать их примитивным способом—«поиском решения» по наилучшему совпадению (сумма квадратов отклонений) получаемых оценок (обработанных маржой) с БК.
Если у кого-то есть более точный алгоритм получения МО, то выкладывайте тут……..
Можно используя модель из ТФМ получить и кефы в лайве, что иногда трудно прикинуть и оценить некоторым начинающим игрокам.... разумеется надо уметь расчитывать рынки которые Вас интересуют...но материала в ТФМ более чем достаточно для этого.

Отредактировано Bambuk, 04 March 2014 - 09:00.


#43 OFFLINE   Bambuk

    Специалист


  • mp
  • 6322 сообщения
602

Добавлено 04 March 2014 - 09:27

Процедура распаковки для www.football-data.co.uk/data.php
Sub JOPA1()
'
' Macros1 jopa
'

'
Range("A1:A381").Select
Selection.TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 1), Array(6, 1), _
Array(7, 2), Array(8, 1), Array(9, 1), Array(10, 2), Array(11, 1), Array(12, 1), Array(13, 1 _
), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array _
(20, 1), Array(21, 1), Array(22, 1), Array(23, 2), Array(24, 2), Array(25, 2), Array(26, 2), _
Array(27, 2), Array(28, 2), Array(29, 2), Array(30, 2), Array(31, 2), Array(32, 2), Array( _
33, 2), Array(34, 2), Array(35, 2), Array(36, 2), Array(37, 2), Array(38, 2), Array(39, 2), _
Array(40, 2), Array(41, 2), Array(42, 2), Array(43, 2), Array(44, 2), Array(45, 2), Array( _
46, 2), Array(47, 2), Array(48, 2), Array(49, 2), Array(50, 2), Array(51, 2), Array(52, 2), _
Array(53, 2), Array(54, 2), Array(55, 2), Array(56, 2), Array(57, 2), Array(58, 2), Array( _
59, 2), Array(60, 2), Array(61, 2), Array(62, 2), Array(63, 2), Array(64, 2), Array(65, 2), _
Array(66, 2), Array(67, 2), Array(68, 2), Array(69, 2), Array(70, 2)) _
, TrailingMinusNumbers:=True

End Sub



Array(56, 2), Выделенный жирным параметр отвечает за формат в столбце (56 считаем с начала преобразования) ..Все данные берутся вот от сюда ("A1:A381") и распаковываются вставляясь в область начиная вот от сюда Selection.TextToColumns Destination:=Range("B1") (столбец с которого начинаем)…
Если число столбцов другое то надо подкорректировать форматы 1-общий 2-текстовый.
Текстовый формат выбираем для столбцов где данные с точками, где буквы, и можно где даты наверно.

Потом кусок с точками нам надо из текстового формата преобразовать в формат где возможны дальнейшие вычисления с кефами БК. Делается это функцией
=ЕСЛИ(ЕОШИБКА(ПОИСК(".";X2));ЗНАЧЕН(X2);ЗНАЧЕН(ЗАМЕНИТЬ(X2;ПОИСК(".";X2);1;",")))

Х2-адрес яч с данными (где точки и текстовый формат), достаточно вставить формулу в одну яч. А потом просто протащить и скопировать в нужную область, где данные будут приводиться к нужному виду.

#44 OFFLINE   Gsan

    Специалист


  • Участник II
  • ПипПипПипПип
  • 607 сообщения
127
  • МестоположениеVladivostok

Добавлено 04 March 2014 - 15:43

No comments... :)

#45 OFFLINE   Fedorok

    Специалист


  • mp
  • 2128 сообщения
297

Добавлено 04 March 2014 - 15:53

 Gsan, on 04 March 2014 - 15:43, сказал:

No comments... :)

Lastrow = ActiveSheet.UsedRange.Rows.Count 'Присваивается значение номера последней строки в рабочем диапазоне

Set Stolbez_A = Range(Cells(1, 1), Cells(Lastrow, 1)) 'Переменной присваивается столбец 1 в рабочей области данных

For Each Poisk In Stolbez_A 'Запускается цикл вытаскивания данных из строки и закидывания их в ячейки

a = Split(Poisk, ",")

For j = 0 To UBound(a)


Poisk.Offset(0, j) = a(j)
Poisk.Offset(0, j).NumberFormat = "@"
Poisk.Offset(0, j) = Replace(Format(Poisk, "0.00"), ",", ".")

Next j

Next Poisk

Set Stolbez_A = Nothing 'Переменная обнуляется

#46 OFFLINE   Bambuk

    Специалист


  • mp
  • 6322 сообщения
602

Добавлено 04 March 2014 - 19:09

 Fedorok, on 04 March 2014 - 15:53, сказал:

Lastrow = ActiveSheet.UsedRange.Rows.Count 'Присваивается значение номера последней строки в рабочем диапазоне

Set Stolbez_A = Range(Cells(1, 1), Cells(Lastrow, 1)) 'Переменной присваивается столбец 1 в рабочей области данных

For Each Poisk In Stolbez_A 'Запускается цикл вытаскивания данных из строки и закидывания их в ячейки

a = Split(Poisk, ",")

For j = 0 To UBound(a)


Poisk.Offset(0, j) = a(j)
Poisk.Offset(0, j).NumberFormat = "@"
Poisk.Offset(0, j) = Replace(Format(Poisk, "0.00"), ",", ".")

Next j

Next Poisk

Set Stolbez_A = Nothing 'Переменная обнуляется

Вопрос--- а вот эти переменные надо описывать или нет---Poisk , a (а как я понял это массив..Poisk--типа объекта что ли?...ни ХУ не понимаю в программировании этом....) ? Если да то как? Я как понял распакуется с самого исходного столбца так как в цикле мы с нуля идём (нет смещения)..... или я чего-то не вкурил? (Две недели тока читаю книжку..... до Split чего-то не догнал....)

#47 OFFLINE   Fedorok

    Специалист


  • mp
  • 2128 сообщения
297

Добавлено 04 March 2014 - 19:48

 Bambuk, on 04 March 2014 - 19:09, сказал:

Вопрос--- а вот эти переменные надо описывать или нет---Poisk , a (а как я понял это массив..Poisk--типа объекта что ли?...ни ХУ не понимаю в программировании этом....) ? Если да то как? Я как понял распакуется с самого исходного столбца так как в цикле мы с нуля идём (нет смещения)..... или я чего-то не вкурил? (Две недели тока читаю книжку..... до Split чего-то не догнал....)

Dim Lastrow As Long 'Объявляется переменная содержащая номер последней строки в используемом диапазоне
Dim Stolbez_A As Range 'Объявляется переменная содержащая данные 1-ого столбца
Dim Poisk As Range 'Объявляется переменная обозначающая ячейку в переменной Stolbez_A
Dim j As Integer 'Объявляется переменная количества столбцов в строке данных

Да, распакуется с самого исходного столбца. В функции split можно задать любой разделитель: будь то точка, запятая, знак табуляции, да хоть целое слово какое-нибудь, не важно.

#48 OFFLINE   Bambuk

    Специалист


  • mp
  • 6322 сообщения
602

Добавлено 04 March 2014 - 20:22

Спасибо за пояснения..... очень экономит время..., а то лазаешь по нету как мудак...мусора полно...а толково мало где написано (да это наверно везде так---в любой области, а не только по программам там всяким...)

#49 OFFLINE   Bambuk

    Специалист


  • mp
  • 6322 сообщения
602

Добавлено 09 March 2014 - 16:52

Некорректно работают операторы
Poisk.Offset(0, j ).NumberFormat = "@"
Poisk.Offset(0, j ) = Replace(Format(Poisk, "0.00"), ".", ",")

можно посмотреть распаковку со второй ячейки а эти операторы посмотреть в цикле
For i = 0 To UBound(a)
Poisk.Offset(0, i + 1).NumberFormat = "@"
Poisk.Offset(0, i + 1) = Replace(Format(Poisk, "0.00"), ",", ".")
Next i


Вот так всё работает (надо только дату объявить предварительно в текстовом формате а остальная область распаковки объявляется в общем формате...тогда эти два оператора можно выкинуть и всё будет нормально раскидываться с запятыми по яч.)
Sub Ìàêðîñ1()
'
' Ìàêðîñ1 Ìàêðîñ
'

'
Dim Lastrow As Long
Dim Stolbez_A As Range
Dim Poisk As Range
Dim i, j As Integer

Lastrow = ActiveSheet.UsedRange.Rows.Count
Set Stolbez_A = Range(Cells(1, 1), Cells(Lastrow, 1))

For Each Poisk In Stolbez_A

a = Split(Poisk, ",")
For j = 0 To UBound(a)
Poisk.Offset(0, j + 1) = a(j)
Next j

Next Poisk

Set Stolbez_A = Nothing

End Sub

#50 OFFLINE   Bambuk

    Специалист


  • mp
  • 6322 сообщения
602

Добавлено 30 May 2014 - 15:34

Вытащить время голов в топовых лигах можно попробовать следующим образом

Sub Макрос1()
'
' Макрос1 Макрос
'

'
Dim ADR As Variant
Dim j As Integer
j = 0


For ADR = 291401 To 291462

With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://24score.com/soccer/info.php?id=" & ADR, Destination:=Range("$A$1" _
))
.Name = "info.php?id=" & ADR
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False

End With

j = j + 1
Range("O4:AN4").Select
Selection.Copy
Cells(10 + j, 15).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Range("A1:B120").Select
Selection.QueryTable.Delete
Selection.ClearContents

Next

End Sub

потом эти данные подвергаются дальнейшей обработке.

#51 OFFLINE   Bambuk

    Специалист


  • mp
  • 6322 сообщения
602

Добавлено 30 May 2014 - 18:32

Подробности смотри "Время голов" yadi.sk/d/l0lLu1ZzRjcxW за корректность загрузок отвечаете Вы, поэтому смотрите какие данные отсутствуют, проблемны итд...
регулируем в For ADR = 291401 To 291462 лучше грузить неболее 100 +- потом там по ходу разбираться где ошибки возникают (при большем объёме я не знаю как там разрулить... допустим 1000 (я не программист поэтому если возможны улучшения помогите начинающим....)

#52 OFFLINE   nikanuka

    Новичок


  • Участник
  • Пип
  • 4 сообщения
0
  • Местоположениеtbilisi

Добавлено 05 July 2014 - 13:43

есть предстоящие события
fullstats.co.uk/livescorepro/upcoming-matches.html?sport=soccer&team=

задача - принимать данные с текущего события каждые 15 минут.

чтобы конечный вид таблицы сформировался проимерно в таком виде

[img]s11.postimg.org/qtd0885cj/Clipboard01.jpg[/img]

есть 2-3 макроса которые делают это, но надо их шлифовать

П.С. а может из вышеуказанного ресурса (24score.com) извлечь такую статистику?
или на www.football-data.co.uk , www.soccerbot.com есть что?

#53 OFFLINE   Bambuk

    Специалист


  • mp
  • 6322 сообщения
602

Добавлено 10 August 2014 - 19:38

В функции найдена ошибка...
два раза прописано

Vxod(0, 0) = 1.25
Vxod(1, 0) = 2.0288
Vxod(2, 0) = 2.25074
Vxod(3, 0) = 1.1487
Vxod(4, 0) = 1.4299
Vxod(5, 0) = 2.1028
Vxod(6, 0) = 1.6762
Vxod(7, 0) = 1.4966
Vxod(8, 0) = 1.4656
Vxod(9, 0) = 1.4579
Vxod(10, 0) = 1.2202
Vxod(11, 0) = 1.07
Vxod(12, 0) = 1.3399
Vxod(13, 0) = 1.3153
Vxod(14, 0) = 1.3
Vxod(15, 0) = 3.19

вместо второго столбца идёт первый (или если брать нумерацию с 0 то вместо 1 идёт нулевой который показан)
исправьте функ.

{=Bclaster1(U8:AB8)}
Код модуля


Function Bclaster1(ByRef rah As Range, Optional VolatileOn As Boolean = True) As Variant
Application.Volatile VolatileOn
Dim VOZ As Range
Dim i As Long
Dim smas(7) As Single
For Each VOZ In rah.Cells
smas(i) = VOZ.Value
i = i + 1
Next VOZ

Arrast = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
Dim Vxod(15, 7) As Double
Dim Wix(15, 3) As Double
Dim SRR As Double
Dim Otvet(3) As Double


Vxod(0, 0) = 1.25
Vxod(1, 0) = 2.0288
Vxod(2, 0) = 2.25074
Vxod(3, 0) = 1.1487
Vxod(4, 0) = 1.4299
Vxod(5, 0) = 2.1028
Vxod(6, 0) = 1.6762
Vxod(7, 0) = 1.4966
Vxod(8, 0) = 1.4656
Vxod(9, 0) = 1.4579
Vxod(10, 0) = 1.2202
Vxod(11, 0) = 1.07
Vxod(12, 0) = 1.3399
Vxod(13, 0) = 1.3153
Vxod(14, 0) = 1.3
Vxod(15, 0) = 3.19

Vxod(0, 1) = 1.24515
Vxod(1, 1) = 1.18096
Vxod(2, 1) = 0.9186
Vxod(3, 1) = 0.9499
Vxod(4, 1) = 1.1
Vxod(5, 1) = 0.923
Vxod(6, 1) = 0.795
Vxod(7, 1) = 1.103
Vxod(8, 1) = 0.9616
Vxod(9, 1) = 1.014
Vxod(10, 1) = 1.6844
Vxod(11, 1) = 0.9659
Vxod(12, 1) = 1.182
Vxod(13, 1) = 1.0756
Vxod(14, 1) = 1.3319
Vxod(15, 1) = 0.787

Vxod(0, 2) = 0.90068
Vxod(1, 2) = 1.106
Vxod(2, 2) = 1.5457
Vxod(3, 2) = 0.8842
Vxod(4, 2) = 0.949
Vxod(5, 2) = 1.4304
Vxod(6, 2) = 1.6762
Vxod(7, 2) = 1.0126
Vxod(8, 2) = 0.9613
Vxod(9, 2) = 0.9907
Vxod(10, 2) = 0.8511
Vxod(11, 2) = 0.943
Vxod(12, 2) = 0.9818
Vxod(13, 2) = 1.0015
Vxod(14, 2) = 1.0511
Vxod(15, 2) = 2.235

Vxod(0, 3) = 1.7086
Vxod(1, 3) = 1.5317
Vxod(2, 3) = 0.96439
Vxod(3, 3) = 1.45885
Vxod(4, 3) = 1.5462
Vxod(5, 3) = 1.267
Vxod(6, 3) = 1.404
Vxod(7, 3) = 1.698
Vxod(8, 3) = 1.0661
Vxod(9, 3) = 1.7481
Vxod(10, 3) = 1.708
Vxod(11, 3) = 1.7577
Vxod(12, 3) = 1.441
Vxod(13, 3) = 1.5826
Vxod(14, 3) = 2.29
Vxod(15, 3) = 0.9967

Vxod(0, 4) = 2.1289
Vxod(1, 4) = 1.2665
Vxod(2, 4) = 1.3368
Vxod(3, 4) = 1.111
Vxod(4, 4) = 2.1706
Vxod(5, 4) = 2.0706
Vxod(6, 4) = 1.357
Vxod(7, 4) = 3.2485
Vxod(8, 4) = 1.2794
Vxod(9, 4) = 1.2215
Vxod(10, 4) = 1.3358
Vxod(11, 4) = 1.5945
Vxod(12, 4) = 1.2306
Vxod(13, 4) = 1.8365
Vxod(14, 4) = 1.35
Vxod(15, 4) = 1.5754
Vxod(0, 5) = 0.77625
Vxod(1, 5) = 1.1095
Vxod(2, 5) = 1.28907
Vxod(3, 5) = 0.9793
Vxod(4, 5) = 1.28187
Vxod(5, 5) = 0.8887
Vxod(6, 5) = 1.0243
Vxod(7, 5) = 0.7703
Vxod(8, 5) = 0.9238
Vxod(9, 5) = 1.3
Vxod(10, 5) = 1.0626
Vxod(11, 5) = 0.8781
Vxod(12, 5) = 1.6952
Vxod(13, 5) = 0.9347
Vxod(14, 5) = 1.2428
Vxod(15, 5) = 1.1611

Vxod(0, 6) = 1.7017
Vxod(1, 6) = 1.03686
Vxod(2, 6) = 0.951
Vxod(3, 6) = 0.93238
Vxod(4, 6) = 1.1162
Vxod(5, 6) = 1.5947
Vxod(6, 6) = 0.9389
Vxod(7, 6) = 2.2127
Vxod(8, 6) = 1.026
Vxod(9, 6) = 0.7255
Vxod(10, 6) = 0.9759
Vxod(11, 6) = 1.1127
Vxod(12, 6) = 0.8745
Vxod(13, 6) = 1.3756
Vxod(14, 6) = 0.957759
Vxod(15, 6) = 1.0708

Vxod(0, 7) = 1.0279
Vxod(1, 7) = 1.855
Vxod(2, 7) = 1.6137
Vxod(3, 7) = 1.8883
Vxod(4, 7) = 1.2936
Vxod(5, 7) = 1.1438
Vxod(6, 7) = 1.4752
Vxod(7, 7) = 1.0169
Vxod(8, 7) = 1.2299
Vxod(9, 7) = 1.2633
Vxod(10, 7) = 1.5143
Vxod(11, 7) = 1.1657
Vxod(12, 7) = 1.9391
Vxod(13, 7) = 1.822
Vxod(14, 7) = 1.96178
Vxod(15, 7) = 1.61435

Wix(0, 0) = 0
Wix(1, 0) = 1
Wix(2, 0) = 2
Wix(3, 0) = 3
Wix(4, 0) = 4
Wix(5, 0) = 5
Wix(6, 0) = 6
Wix(7, 0) = 7
Wix(8, 0) = 8
Wix(9, 0) = 9
Wix(10, 0) = 10
Wix(11, 0) = 11
Wix(12, 0) = 12
Wix(13, 0) = 13
Wix(14, 0) = 14
Wix(15, 0) = 15

Wix(0, 1) = 0.229
Wix(1, 1) = 0.5706
Wix(2, 1) = 0.72
Wix(3, 1) = 0.4921
Wix(4, 1) = 0.4181
Wix(5, 1) = 0.4351
Wix(6, 1) = 0.6068
Wix(7, 1) = 0.1747
Wix(8, 1) = 0.5
Wix(9, 1) = 0.4766
Wix(10, 1) = 0.382
Wix(11, 1) = 0.3034
Wix(12, 1) = 0.4919
Wix(13, 1) = 0.4037
Wix(14, 1) = 0.4404
Wix(15, 1) = 0.8604

Wix(0, 2) = 0.2109
Wix(1, 2) = 0.2507
Wix(2, 2) = 0.1907
Wix(3, 2) = 0.33158
Wix(4, 2) = 0.2241
Wix(5, 2) = 0.2922
Wix(6, 2) = 0.2321
Wix(7, 2) = 0.2289
Wix(8, 2) = 0.2832
Wix(9, 2) = 0.3
Wix(10, 2) = 0.344
Wix(11, 2) = 0.3065
Wix(12, 2) = 0.288
Wix(13, 2) = 0.2484
Wix(14, 2) = 0.2924
Wix(15, 2) = 0.093

Wix(0, 3) = 0.56
Wix(1, 3) = 0.1786
Wix(2, 3) = 0.08923
Wix(3, 3) = 0.1763
Wix(4, 3) = 0.3578
Wix(5, 3) = 0.2727
Wix(6, 3) = 0.16099
Wix(7, 3) = 0.5963
Wix(8, 3) = 0.2167
Wix(9, 3) = 0.2233
Wix(10, 3) = 0.2737
Wix(11, 3) = 0.39
Wix(12, 3) = 0.22
Wix(13, 3) = 0.3478
Wix(14, 3) = 0.2671
Wix(15, 3) = 0.0465

For i = 0 To 15
SRR = 0
For j = 0 To 7
SRR = SRR + (Vxod(i, j) - smas(j)) ^ 2

Next j
Arrast(i) = SRR

Next i
For k = 0 To 3
Otvet(k) = Wix((WorksheetFunction.Match(WorksheetFunction.Min(Arrast), Arrast, 0) - 1), k)
Next k

Bclaster1 = Otvet
End Function

#54 OFFLINE   denvb

    Специалист


  • Участник II
  • ПипПипПип
  • 382 сообщения
90

Добавлено 10 August 2014 - 20:45

Bambuk, покажите кусок таблицы что есть и что считаем (именно небольшой кусок)? И как считаем на словах, без простыней формул, если возможно. Кластер и окно – это прямоугольный диапазон ячеек? Откуда этот ад ручных цифр Vxod и Wix?

#55 OFFLINE   Bambuk

    Специалист


  • mp
  • 6322 сообщения
602

Добавлено 11 August 2014 - 04:59

 denvb, on 10 August 2014 - 20:45, сказал:

Bambuk, покажите кусок таблицы что есть и что считаем (именно небольшой кусок)? И как считаем на словах, без простыней формул, если возможно. Кластер и окно – это прямоугольный диапазон ячеек? Откуда этот ад ручных цифр Vxod и Wix?
по цифрам особо не надо вникать--это центры кластеров (Vxod)и выходные сигналы (Wix). Суть для кластеров такова--я взял 4 топовых лиги (англ, франц, итал, испан.) за 5 сезонов, в куче они я думаю дают некоторую средневзвешенную тенденцию футбола в продвинутых странах (ну с некоторыми конечно оговорками...просто чтоб меньше считать), потом всю работу я в основном провёл в статистической программе (насколько корректно не знаю, но единственное что я не делал--не приводил данные к близкой размерности деля например на дисперсию...но у меня параметры так забацаны что это на мой взгляд не очень критично так как они по ходу получения приводятся к близкому к 0--1 диапазону а остальные там средние не более 2-3..в целом должно катить...). Поскольку центры кластеризации определены, то нет необходимости далее изобретать велосипед, а можно тупо брать данные и находить расстояния(Евклидовы) до центров кластеров и вот какое меньшее к тому кластеру и относим, а далее просто даётся ответ кластера и всё (ну данные в целом разносятся на группировки и с ними можно дальше работать--например вводить ограничения на другие параметры имеющиеся в БД которые в кластере не участвуют итд итп)...
Если Вы такую работу начнёте сами делать то много времени убьёте на все заморочки (это или мощьный софт какой-то надо мудить или ещё как а тут можно в екселе всё делать встроенными функциями.). Вот примерно какие данные https://yadi.sk/i/qRRQ7FsaZPywe но тут мало--это я для поста в ветке Турбо (Качественные прогнозы на футбол) обрабатывал
Ссылка Здесь
а так вообще в БД данных больше раза в два (и это только потому что я играю только по 1Х2 и всё)

Вот примерно по одной паре объём дан--смотри конец поста (без кластеров и их ответов, по части приведённого можно раскидывать на группировки разными способами...часть из которых в этой теме для чайников и описаны--ибо я сам чайник в программировании).

Единственный большой минус--ексель не тянет такой объём вычислений прога виснет--надо после расчёта все данные копировать и вставлять как значения (можно оставить одну строку с формулами и вот её тянуть по базе и оставлять потом одну какую-то строку и всё иначе ексель не вытянет даже пять лиг ибо все данные вычисляются фактически только по резам игр (ну и кефы какие-то...). В теме турбо там есть ссылка на файл (кластеры для футбольных прогнозов там всё более подробно описано и даны встроенные функци и как ими пользоваться--в общих чертах)..далее просто можно развивать это направление (кому оно покажется привлекательным и неординарным).


3 0 1,766307 1,766307 0 0 0 1 0 0 0 0 0 -4,52513311 37,1563977 10,3727743 -0,16209348 0,04773274 0,264565 1,48 4,05 7,22 1,49-5,2-7,43 1,77 3,87 5,71 2,00E-05 0,0002 0,0014 0,0084 0,0385 0,126 0,2587 0,2687 0,1752 0,0818 0,0296 0,0087 0,0022 280 Atalanta Pescara 2 1 1,077 1,308 0,615 2,231 1,521781909 0,713556034 2,2353 3 13 1,94 1 2,06 13 1,83 1,52178191 21 1,52178191 1 0,71355603 1 1 11 0 1,57865385 1,1277793 9 9 32,3 22 23,1 30,9 0,99411 1 -0,25 23 -0,25 16 0 3 -1,5 21 -0,25 14 0 0 -0,25G3:-0,25D0 1D3:-0,25G3 -0,25D0:-1,5G0 -1G0:-0,25D0 -0,25G3:-0,25D0&-0,25D0:-1,5G0 1D3:-0,25G3&-1G0:-0,25D0 G3 D0 D0 G0 1 1 0 1,0839 1,2282 2,5946 32 21 27 27 0,407407407 0*1 24 1*1 34 2*1 67 0,385 0,231 0,385 0,154 0,154 0,692 1,53 4,33 8,67 1,86-5,2-3,71 1,49-5,2-7,43 1,49 5,2 7,43 0,333 0,333 0,333 0,111 0,111 0,778 1,48 0 0 -0,04538 -0,26923 0,449231 -0,41308 1,185185 0,777778 0,777778 0 0,65625 0 0,203103 0,441368 -0,23826486 0,388889 0,055556 0,33333 1,16667 1,33333 0,83333 1,66667 0,83333 1,58333 0,66667 2,16667 1,125 1,25 0,875 1,875 0,875 2 0,625 2,625 0,4167 0,25 0,3333 0,1667 0,1667 0,6667 0,25 0,0833 0,6667 0,3333 0,0833 0,5833

Отредактировано Bambuk, 11 August 2014 - 05:00.


#56 OFFLINE   Bambuk

    Специалист


  • mp
  • 6322 сообщения
602

Добавлено 11 August 2014 - 06:07

По поводу "ОКНА" это какой-то условно говоря временной интервал, или объём данных-точек итд. Например такие вот параметры как З1 П1 З2 П2 в статье про кластеры они вычислялись следующим образом--бралось некоторое число записей (примерно 2/3 сезона) и находились параметры З1 П1 (забитых и пропущенных) для домашних игр и соответственно З2 П2 для гостевых (для гостя) получалось 13-14 игр примерно (кроме вновь вошедших в начале сезона там и меньше может быть) первые 8-10 туров выкидываются фактически (при желании можно и не выкидывать но обрабатывать иначе учитывая предыдущий сезон в основном,-- что может негативно повлиять на выводы относительно способностей команд). Окно (формула) потом просто тянется по данным и всё (в силу специфики екселя все расчёты автоматом повторяются, но в сдвинутом окне). Можно конечно и фиксированное число данных сделать..но думаю там особо погоды не сделает если мы будем 12-13-15 брать или строго 14. Так как там потом приводится к одной игре делением общего числа голов на число игр (это по идее случайная величина и ХЗ насколько оценка точна--данных-то мало). Можно допустим некоторые параметры и не вычислять а брать с каких-то сайтов. вот допустим с wettbasis.touch-line.com/?Lang=0&CTID=23&CPID=61&TEID=576&pStr=Team_Stats
ТИПА AVERAGE STATISTICS 2014 - 2015

HOME AWAY

Goals scored 1.5 1.6

Goals conceded 0.8 1.3

Time first goal scored 45 mins 35 mins

Time first goal conceded 35 mins 41 mins

Yellow cards 1.4 1.7

Red cards 0.2 0.1

Subs used 2.9 2.9

Biggest victory 3-0 6-1

Biggest defeat 2-1 6-2

Отредактировано Bambuk, 11 August 2014 - 06:09.


#57 OFFLINE   игрок

    Специалист


  • Участник II
  • ПипПипПип
  • 424 сообщения
8
  • МестоположениеМосква

Добавлено 12 August 2014 - 07:20

а где скачать можно эту прогу?

#58 OFFLINE   Bambuk

    Специалист


  • mp
  • 6322 сообщения
602

Добавлено 12 August 2014 - 08:43

 игрок, on 12 August 2014 - 07:20, сказал:

а где скачать можно эту прогу?
Какую именно прогу? Тут в ветке нет прог., есть встроенные функции VBA Вы их просто копируете отсюда (или можно из публикации "Кластеры для футбольных прогнозов") и вставляете в эксель книгу, потом сохраняете её с поддержкой макросов и всё будет пыхтеть. Я сам плохо в ВБА секу, но тут есть кто может помочь если чё неясно (вот тут допустим обработчик один помогли сделать (распаковывать данные по ячейкам с сайта статистики по играм).

В этой ветке можно допустим пообсуждать на примере какомто конкретном как чем пользоваться. Если У кого есть время свободное и желание допустим делать тоже самое что делает Турбо в своей ветке(Качественные прогнозы на футбол) но без догонялова...я могу дать тут некоторую формализованную процедуру как такие ставки выбрать. Но единственное что у меня нет кефоф на линию Z1>=1 (сейчас вот сижу демаю как её породить из других кефоф (например из 1Х2 и ТМ2.5)....
Просто если кефы будут по хоу тестирования то можно полностью сделать формализованный прибыльный алгоритм(если получится...могут кефы сильно валить вниз букмекеры)..
ну в целом это будет хорошая открытая практика... У меня времени просто нет вести такую ветку с примерами. Пишите тут кому это интересно.

Пока вот для начала функция кластеризации всего по двум параметрам. ОЧ12 и З1 (в публикации про кластеры написано что как вычислять или можно на сайтах брать...думаю для ОЧ12 можно с любого сайта так как ОЧ12=очки1/число игр1-очки2/число игр2, а вот этот З1 он хоть и отличаться будет от моего но думаю не шибко сильно с сайта wettbasis.touch-line.com (выше я приводил).

{CLASTZZZ(AB31:AC31)} (выделяются сразу две ячейки куда функция возвращает ответы и вводится формула как для работы с массивами) AB31:AC31-это две соседние ячейки в правой значение ОЧ и соседняя З1—они передаются в функцию)

Function CLASTZZZ(ByRef rah As Range, Optional VolatileOn As Boolean = True) As Variant
Application.Volatile VolatileOn
Dim VOZ As Range
Dim i As Long
Dim smas(1) As Single
For Each VOZ In rah.Cells
smas(i) = VOZ.Value
i = i + 1
Next VOZ

Arrast = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
Dim Vxod(31, 1) As Double
Dim Wix(31, 1) As Double
Dim SRR As Double
Dim Otvet(1) As Double

Vxod(0, 0) = 0.33
Vxod(1, 0) = -1.299
Vxod(2, 0) = 0.2466
Vxod(3, 0) = 0.485
Vxod(4, 0) = -0.646
Vxod(5, 0) = -0.318
Vxod(6, 0) = -1.56
Vxod(7, 0) = 0.128
Vxod(8, 0) = 1.46
Vxod(9, 0) = -0.769
Vxod(10, 0) = -0.4469
Vxod(11, 0) = -1.083
Vxod(12, 0) = 0.623
Vxod(13, 0) = 0.035
Vxod(14, 0) = 0.9389
Vxod(15, 0) = -0.06417
Vxod(16, 0) = -0.4
Vxod(17, 0) = 0.707
Vxod(18, 0) = -0.3369
Vxod(19, 0) = 0.2879
Vxod(20, 0) = -0.0073
Vxod(21, 0) = 0.892
Vxod(22, 0) = 1.2635
Vxod(23, 0) = 0.2963
Vxod(24, 0) = 1.2732
Vxod(25, 0) = -1.086
Vxod(26, 0) = -0.043
Vxod(27, 0) = 0.517
Vxod(28, 0) = -0.347
Vxod(29, 0) = -0.833
Vxod(30, 0) = -0.03786
Vxod(31, 0) = -0.401

Vxod(0, 1) = 1.3826
Vxod(1, 1) = 0.944
Vxod(2, 1) = 3.079
Vxod(3, 1) = 2.433
Vxod(4, 1) = 1.249
Vxod(5, 1) = 1.298
Vxod(6, 1) = 1.32
Vxod(7, 1) = 2.122
Vxod(8, 1) = 2.061
Vxod(9, 1) = 1.61
Vxod(10, 1) = 0.7848
Vxod(11, 1) = 1.994
Vxod(12, 1) = 1.543
Vxod(13, 1) = 1.5749
Vxod(14, 1) = 1.7496
Vxod(15, 1) = 1.8314
Vxod(16, 1) = 1.83
Vxod(17, 1) = 1.1754
Vxod(18, 1) = 1.058
Vxod(19, 1) = 1.07
Vxod(20, 1) = 0.8818
Vxod(21, 1) = 2.173
Vxod(22, 1) = 3.57
Vxod(23, 1) = 1.71
Vxod(24, 1) = 2.78
Vxod(25, 1) = 1.3438
Vxod(26, 1) = 1.393
Vxod(27, 1) = 1.94
Vxod(28, 1) = 1.517
Vxod(29, 1) = 0.958
Vxod(30, 1) = 1.181
Vxod(31, 1) = 2.265

Wix(0, 0) = 0
Wix(1, 0) = 1
Wix(2, 0) = 2
Wix(3, 0) = 3
Wix(4, 0) = 4
Wix(5, 0) = 5
Wix(6, 0) = 6
Wix(7, 0) = 7
Wix(8, 0) = 8
Wix(9, 0) = 9
Wix(10, 0) = 10
Wix(11, 0) = 11
Wix(12, 0) = 12
Wix(13, 0) = 13
Wix(14, 0) = 14
Wix(15, 0) = 15
Wix(16, 0) = 16
Wix(17, 0) = 17
Wix(18, 0) = 18
Wix(19, 0) = 19
Wix(20, 0) = 20
Wix(21, 0) = 21
Wix(22, 0) = 22
Wix(23, 0) = 23
Wix(24, 0) = 24
Wix(25, 0) = 25
Wix(26, 0) = 26
Wix(27, 0) = 27
Wix(28, 0) = 28
Wix(29, 0) = 29
Wix(30, 0) = 30
Wix(31, 0) = 31

Wix(0, 1) = 0.442
Wix(1, 1) = 0.235
Wix(2, 1) = 0.656
Wix(3, 1) = 0.642
Wix(4, 1) = 0.317
Wix(5, 1) = 0.399
Wix(6, 1) = 0.17
Wix(7, 1) = 0.544
Wix(8, 1) = 0.53
Wix(9, 1) = 0.32
Wix(10, 1) = 0.298
Wix(11, 1) = 0.38
Wix(12, 1) = 0.56
Wix(13, 1) = 0.428
Wix(14, 1) = 0.617
Wix(15, 1) = 0.489
Wix(16, 1) = 0.428
Wix(17, 1) = 0.42
Wix(18, 1) = 0.375
Wix(19, 1) = 0.372
Wix(20, 1) = 0.445
Wix(21, 1) = 0.64
Wix(22, 1) = 0.81
Wix(23, 1) = 0.517
Wix(24, 1) = 0.846
Wix(25, 1) = 0.3
Wix(26, 1) = 0.46
Wix(27, 1) = 0.578
Wix(28, 1) = 0.345
Wix(29, 1) = 0.259
Wix(30, 1) = 0.38
Wix(31, 1) = 0.556

For i = 0 To 31
SRR = 0
For j = 0 To 1
SRR = SRR + (Vxod(i, j) - smas(j)) ^ 2

Next j
Arrast(i) = SRR

Next i
For k = 0 To 1
Otvet(k) = Wix((WorksheetFunction.Match(WorksheetFunction.Min(Arrast), Arrast, 0) - 1), k)
Next k

CLASTZZZ = Otvet
End Function

Если "герой ТУРБО-2" сыщется я далее тут напишу всё остальное чё надо делать (так как тут одних приведённых простейших кластеров недостаточно....эксель желательно знать в общих чертах (на крайняк я вычислитель могу переслать--надо тока данные вставлять и смотреть ответ..правда его--вычислитель ещё сделать надо будет чтоб меньше запариваться с выбором пар).

#59 OFFLINE   Bambuk

    Специалист


  • mp
  • 6322 сообщения
602

Добавлено 12 August 2014 - 09:45

Некоторые параметры которые можно использовать как дополнительные условия для выборок пар.
Замечание—они влияют на результат—первая забьёт больше одного мяча. При этом есть парадокс состоящий в следующем—ответы Z1>1_OUT формально перестают быть значимыми для события первая забьёт больше 0 (хотя тут понятно по смыслу что если допустим ответ (допустим в виде неравенства «Z1>1_OUT»>0,63 порождает более 60% случаев Z1>1 то он породит более 90% случаев
Z1>0…. (дело тут в том что для большего 0 случая кластеризация может проходить иным образом и
не совпадать с кластерами для Z1>1) поэтому надо адекватно воспринять далее написанное.

Атрибуты (это как вариант какие можно попробовать для дополнительных критериев) и приблизительная значимость (в %) для результата—первая(дом.) забьёт более 1-го мяча.
Z1>1_OUT 42%
Г1 22%
FOR-G 13.4 %
EFV2 8%
EFV1 6,2%
V1 2,3%
DELTA*Din 2%
Г2 1,3%
П2 1,3%
L1 0,8%

Атрибуты (это как вариант какие можно попробовать для дополнительных критериев) и приблизительная значимость для результата—первая(дом.) забьёт более 0 мячей.
Г1 11%
FOR-G 23.1 %
FOR-V 37.4 %
оч1-окно 9,6%
EFV2 6,2%
EFV1 5,9%

Вместо
FOR-G 23.1 %
FOR-V 37.4 %
Можно использовать фору F1(0) порождённую из линии 1Х2
F1(0)=К1*(1-1/КХ) (попутно вот для форы Ф2 F2(0)=К2*(1-1/КХ) )
И добавить сигнал L2 (проигрыши гостевой в гостях(приведённые к размерности вероятности ---делением на общее число игр по которым считаем)

Кстати вот эти форы (вычисляемые экспериментально)
FOR-G
FOR-V
Могут использоваться при их «конфликте» (расхождении) для порождения множеств для ставок (с прибылью)..ну это в других там темах а не в конкретной с ТУРБОНАДДУВОМ… а вот эта фора F1(0)=К1*(1-1/КХ) (это не фора БК!!! а аналог и так можно проставиться по идее в линии 1Х2 если это конечно выгоднее) тоже может использоваться---например в теме для новичков обсуждалась возможность ставок на Х (кстати надо у Андре спросить насчёт профита по его системе…так как он там поменял немного критерии для Х-ставок)..там можно наложить ограничение на F1(0) и выделить из множества пар для Х-ставок подмножество для ставок например Ф2(0) или 2Х (или сместить плечё на Х)—там кефы будут меньше и нет таких напрягающих нервы лузов как в Х (ставок правда мало таких будет в подмножестве .)

Отредактировано Bambuk, 12 August 2014 - 09:52.


#60 OFFLINE   Bambuk

    Специалист


  • mp
  • 6322 сообщения
602

Добавлено 12 August 2014 - 12:38

Так как кефоф у меня нет на идивид. Тотал. То попробую пояснить на примере П1
----как это всё примерно может работать.
Вот самый простой пример с одним дополнительным критерием к сигналу кластера
OUT Z1>1

Берём
OUT>0,57
EFV2=0,005…0,6

Смотрим по ретро данным балансы
П1 Х П2
257,51 162,94 145,9
% с оборрота=0,055368852 (5,5%)
Выборка 244 примера (всего объём дан. 5156) то есть 4,7% матчей берётся примерно—это мало конечно, но для пояснительного примера покатит….
Чтоб тут не говорили противники статистических подходов, но ни один вменяемый видя данные 257,51—выручено по П1// 162,94—по Х// 145,9—по П2
ставить в Х и П2 не будет!!!!(лучше вообще не ставить).



СЧЁТ И ПОРЯДОК ИГРАВШИХ КЕФОФ ТАКОЙ.
Valencia Real Sociedad/ 1/ 2/ 0/ 0/ 3,99
Valencia Granada CF/ 1/ 0/ 1,25/ 0/ 0/
Real Sociedad Granada CF/ 2/ 2/ 0/ 4,34/ 0
Barcelona Betis/ 4/ 2/ 1,22/ 0/ 0/
Real Madrid Betis/ 3/ 1/ 1,28/ 0/ 0/
Atl. Madrid Granada CF/ 5/ 0/ 1,3/ 0/ 0/
Valencia Valladolid/ 2/ 1/ 1,38/ 0/ 0/
Atl. Madrid Real Sociedad 0/ 1/ 0/ 0/ 6,31/