Option Explicit
Sub Main
'implementazione filtro abasul x A in classe voluta (fino alla 89) + data estrazione rs max in selettivo by lotto_tom75
'metodo abasul completo---
'Intanto, prima di spiegare come fare per scegliere le Combinazioni da giocare proposte dallo script,
'bisogna prima capire bene questo concetto: il mio modo di operare si affida esclusivamente a principi
'statistico-matematici e pertanto le scelte delle Combinazioni previsionali non fanno a che fare né a
'"metodi per il lotto" né ad una "casuale previsione cabalistica per il lotto".Ecco come si procede:
'si devono scegliere tra tutte le Combinazioni ricercate dallo script: 1) Due ambi secchi; due terzine
'per ambo e due quartine per ambo ma che abbiano come data del loro max storico l'anno più vicino
'a quello odierno, cioè dell'ultima estrazione. 2) Tutti i 18 numeri che sono compresi per ogni combinazione
'devono essere tutti diversi. 3) Le previsioni che quindi In tutto ne sono sei, devono essere sempre seguite
'estrazione su estrazione, perché quando ad esempio una di essa supera il range "tra 45% e 75%"
'deve essere tolta e giocarne sempre di meno.
'-----fine metodologia abasul
Dim nSorte,aRuote,Ini,fin,sMsg,nMoltip,nTrov,nNumSel
Dim nCicloTeo,nRitMax,nRitMin,nClasseLunghetta,nRuoteSel,nLunghetteDaTrov
Dim TimeStart
Dim k,CollComb,cColonna
Dim aN
Dim TipoAlgo
Dim RetRit,RetRitMax,RetIncrRitMax,RetFrq
Dim nSuperficialita
nTrov = 0 '
nNumSel = ScegliNumeri(aN)
'aN = Array(0,16,49,60)
'nSorte = 2 ' ScegliEsito
nSorte = InputBox("Scegli sorte di ricerca","Sorte di ricerca",2)
If nSorte < 0 Or nSorte > 5 Then
nSorte = InputBox("Hai scelto una sorte impossibile da valutare. Scegli sorte di ricerca appropriata...","Sorte di ricerca",2)
End If
'nClasseLunghetta = 3 'ScegliClassseLunghetta
nClasseLunghetta = InputBox("Scegli classe di ricerca","Classe di ricerca",UBound(aN) - 1)
TipoAlgo = 4
nSuperficialita = 0
Dim contatore
contatore = 0
Call Scrivi
Call Scrivi("Elaborazione effettuata con archivio lotto aggiornato all'estrazione del: " & giorno(EstrazioneFin) & "-" & Mese(EstrazioneFin) & "-" & Anno(EstrazioneFin))
Call Scrivi
Call Scrivi("Classe " & nClasseLunghetta & " sorte " & nSorte)
Call Scrivi
'nRuoteSel= 1 : ReDim aRuote(1) : aRuote(1) =RO_'SelRuote(aRuote)
Dim r
For r = 1 To 12 ' to 12
nRuoteSel = r : ReDim aRuote(r) : aRuote(r) = r
nLunghetteDaTrov = 10000 ' Int(InputBox("Lunghette da trovare","Quantità lunghette",10))
ReDim Preserve aRuote(nRuoteSel)
nCicloTeo = CicloTeorico(nClasseLunghetta,nSorte,UBound(aRuote))
nMoltip = 1
'sMsg = "Inserire il ritardo massimo ipotizzato per la sorte voluta nella lunghetta" & vbCrLf
'sMsg = sMsg & "Il valore mostrato è il CicloTeorico per la sorte di " & nSorte
'sMsg = sMsg & " su " & nClasseLunghetta & " numeri su " & nRuoteSel & " ruote moltiplicato per " & nMoltip
nRitMax = 0' Int(InputBox(sMsg,,nCicloTeo * nMoltip))
'sMsg = "Inserire il ritardo minimo ipotizzato per la sorte voluta nella lunghetta" & vbCrLf
'sMsg = sMsg & "Il valore mostrato è il CicloTeorico per la sorte di " & nSorte
'sMsg = sMsg & " su " & nClasseLunghetta & " numeri su " & nRuoteSel & " ruote moltiplicato per 3"
nRitMin = 0 ' Int(InputBox(sMsg,,nCicloTeo * 3))
fin = EstrazioneFin
Ini = fin - nRitMax
'If Ini <= 0 Then Ini = 1
Dim idrsmax ' il numero dell'estrazione in cui si è verificato il ritardo storico per la sorte specificata
Dim estrazione
For estrazione = Ini To fin
TimeStart = Timer
Call GetLunghettePiuRitardate(aN,aRuote,nClasseLunghetta,nSorte,CollComb,EstrazioneIni,EstrazioneFin,nRitMin,nRitMax,nLunghetteDaTrov,TipoAlgo,nSuperficialita)
'Call GetLunghettePiuRitardate(aN,aRuote,EstrazioneIni,EstrazioneFin,nClasseLunghetta,nSorte,CollComb)
Call OrdinaItemCollection(CollComb,"Ritardo",,,- 1)
For Each cColonna In CollComb
contatore = contatore + 1
Call StatisticaFormazioneTurbo(cColonna.aNum,aRuote,nSorte,RetRit,RetRitMax,RetIncrRitMax,RetFrq,EstrazioneIni,EstrazioneFin)
idrsmax = SerieEstrazioneStorico(EstrazioneIni,EstrazioneFin,cColonna.aNum,aRuote,nSorte)
'Dim matchxdataraugualersmax
'If RetRit=idrsmax Then
'
' matchxdataraugualersmax=DataEstrazione(idrsmax)
'
'End If
Dim diff
diff = RetRitMax - RetRit
If(RetRit >= 0) Then
Dim datoabasul
datoabasul =(RetRit/RetRitMax) * 100
diff = RetRitMax - RetRit
If(RetRit >= 0) Then
If(datoabasul >= 45) And(datoabasul <= 75) Then
Call Messaggio("trovata")
Call Scrivi("PROVA OUTPUT SECONDO FILTRO ABASUL con sole formazioni con ra distante dal rispettivo rs x A in terzina tra il 45% e 75%")
Call Scrivi("<font color=green>OK la formazione ha passato il filtro abasul per A in 3ina con valore di filtro: </font>" & datoabasul)
Call Scrivi("Sorte ricercata: " & nSorte & " classe: " & nClasseLunghetta)
'idrsmax = SerieEstrazioneStorico(Ini,fin,cColonna.aNum,aRuote,nSorte)
Call Scrivi(SiglaRuota(aRuote(r)) & " - " & cColonna.GetStringaNum & " Rit " & RetRit & " rit max " & RetRitMax & "<font color=blue> data ritardo max " & DataEstrazione(idrsmax) & "</font> incmax " & RetIncrRitMax & " frequenza " & RetFrq)
' Scrivi
' Call Scrivi (Int(EstrazioneFin))
' Call Scrivi (Int(idrsmax))
Dim ValorediffEstrazioneFinmenoidrsmax
ValorediffEstrazioneFinmenoidrsmax = Int(EstrazioneFin) - Int(idrsmax)
' Scrivi
Call Scrivi("<font color=red>VALORE DIFF data ultima estrazione - data rs max <strong>" & ValorediffEstrazioneFinmenoidrsmax & "</strong></font>")
Else
'Call Scrivi("<font color=red>NO la formazione NON ha passato il filtro abasul per A in 3ina con valore di filtro: </font>" & datoabasul)
End If
End If ' x controllo valori non nulli di ra e rs
'Call Scrivi("Sorte ricercata: " & nSorte & " classe: " & nClasseLunghetta)
'Call Scrivi(SiglaRuota(aRuote(r)) & " " & cColonna.GetStringaNum & " Rit " & RetRit & " rit max " & RetRitMax & " incmax " & RetIncrRitMax & " frequenza " & RetFrq)
'Call Scrivi(cColonna.GetStringaNum)
End If
If ScriptInterrotto Then Exit For
Next
Next
Call Scrivi("------------------------------------------------------------------------------")
If ScriptInterrotto Then Exit For
Next 'secondo next aggiunto per tentativo di elaborare ogni ruota in una volta sola
Call Scrivi("Tempo di elaborazione : " & FormattaSecondi(Timer - TimeStart))
End Sub
Function ScegliClassseLunghetta
Dim aVoci(30)
Dim k,i
For k = 2 To(2 - 1) + UBound(aVoci)
i = i + 1
aVoci(i) = k
Next
k = ScegliOpzioneMenu(aVoci,5,"Classe lunghetta")
ScegliClassseLunghetta = Int(aVoci(k))
End Function
Function SelRuote(aRuote)
Dim t,k,bTutte
bTutte = False
't = ScegliRuote(aRuote)
'For k = 1 To t
'If aRuote(k) = TT_ Then
'bTutte = True
'Exit For
'End If
'Next
If bTutte Then
ReDim aRuote(10)
For k = 1 To 10
aRuote(k) = k
Next
SelRuote = 10
Else
SelRuote = t
End If
End Function
Function FormattaSecondi(s)
'Questa Function trasforma il numero di secondi passato come parametro in una stringa
' passando i secondi si ottengono ore minuti e secondi in formato hh:mm:ss
' s ---> Numero di secondi da formattare
' ritorna una stringa il cui formato è hh:mm:ss (la function non funziona se in totale abbiamo piu di 99 ore )
Dim hh
Dim Mm
Dim Ss
Dim TimeStr
hh = s \ 3600
Mm =(s Mod 3600) \ 60
Ss = s -((hh * 3600) +(Mm * 60))
TimeStr = Format2(hh) & ":" & Format2(Mm) & ":" & Format2(Ss)
FormattaSecondi = TimeStr
End Function