-- see the video on yt: https://www.youtube.com/watch?v=EeWtk8KKN78
chance990 = 0.115
chance9900 = 0.01
multi990 = 0.0012
multi9900 = 0.00012
ls = 0 -- loosestreak
ws = 0 -- winstreak
lc = 0
wc = 0
lsmax = ls
unitfactor = 0.0000001
basebet = unitfactor * 1
capped = false
streaksource_start = 30000 -- # of tries too calculate max streaks ( more tries > higher max streak > more security )
streaksource_end = 30000
waitstake_start = 100 -- 66% of maxstreak wait, 33% of maxstreak stand
waitstake_end = 100
budget_ratio = 100
keepwait = true
po1 = { payout=2, ch=49.50, multi=2.02, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po2 = { payout=2.5, ch=39.60, multi=1.68, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po3 = { payout=3, ch=33.00, multi=1.51, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po4 = { payout=3.5, ch=28.29, multi=1.42, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po5 = { payout=4, ch=24.75, multi=1.34, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po6 = { payout=4.5, ch=22.00, multi=1.30, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po7 = { payout=5, ch=19.80, multi=1.26, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po8 = { payout=5.5, ch=18.00, multi=1.24, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po9 = { payout=6, ch=16.50, multi=1.22, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po10 = { payout=6.5, ch=15.23, multi=1.20, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po11 = { payout=7, ch=14.14, multi=1.18, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po12 = { payout=7.5, ch=13.20, multi=1.165, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po13 = { payout=8, ch=12.38, multi=1.15, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po14 = { payout=8.5, ch=11.65, multi=1.14, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po15 = { payout=9, ch=11.00, multi=1.13, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po16 = { payout=9.5, ch=10.42, multi=1.125, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po17 = { payout=10, ch=09.90, multi=1.12, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po18= { payout=15, ch=06.60, multi=1.095, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po19 = { payout=20, ch=04.95, multi=1.07, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po20 = { payout=25, ch=03.96, multi=1.055, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po21 = { payout=30, ch=03.30, multi=1.04, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po22 = { payout=35, ch=02.83, multi=1.035, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po23 = { payout=40, ch=02.48, multi=1.03, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po24 = { payout=45, ch=02.20, multi=1.0275, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po25 = { payout=50, ch=01.98, multi=1.025, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po26 = { payout=55, ch=01.80, multi=1.0225, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po27 = { payout=60, ch=01.65, multi=1.02, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po28 = { payout=65, ch=01.52, multi=1.019, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po29 = { payout=70, ch=01.41, multi=1.018, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po30 = { payout=75, ch=01.32, multi=1.0165, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po31 = { payout=80, ch=01.24, multi=1.015, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po32 = { payout=85, ch=01.16, multi=1.014, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po33 = { payout=90, ch=01.10, multi=1.013, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po34 = { payout=95, ch=01.04, multi=1.0125, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
po35 = { payout=99, ch=01.00, multi=1.012, basebet=nil, strk_max=nil, strk_stand=nil, strk_wait=nil, lshigh=0, lslow=0, lshighmax=0, lslowmax=0 }
polvls = {
-- po1, po2, po3, po4, po5, po6, po7, po8,
-- po9, po10, po11, po12, po13, po14, po15,
po16, po17, po18, po19, po20, po21 , po22,
po23, po24, po25, po26, po27, po28, po29,
po30, po31, po32, po33, po34, po35
}
polvlcount = 20
tempstand = 0
ticked = false
-- possible results for groups of 2
-- 00 01 11 10
-- we go for 10
alg01 = true -- 1 (high)
alg02 = false -- 0 (low)
algpos = 1
alg_bet1 = unitfactor * 1.2
alg_bet2 = unitfactor * 2
stoplossflag = false
stoploss = unitfactor * 800
ltd = 0
ltdis0 = false
ltdSplit = 5
loosestreak = 0
winstreak = 0
basebet3p = unitfactor * 1
chance3p = 48.5
targetruns = 0
maxbalance = balance
minbalance = balance
lastbalance = balance
balancedelta = 0
target = balance * 0.02
maxprofit = profit
pdelta = 0
budget = 0
maxbet = 0
lastprofit = 0
chanceDiv = 33
stake = 0
WaT = true -- Wait after Trigger
tcnt = 0
dl = false -- last decision
dll = false -- before last decision
dlll = false -- ...
dllll = false
dlllll = false
echo_dl = ""
echo_dll = ""
echo_dlll = ""
echo_dllll = ""
echo_dlllll = ""
clumptrigger = false
ct = " <> "
dbl = false
echo_dbl = ""
basebet_flat = unitfactor * 1
tippingjar = 0
bethigh = true
hiloStrng = "HIGH"
firstrun = true
mychance = chance3p
multi = multi3
chance = mychance
nextbet = 0.00000001
chance = 49.0
mynextbet = nextbet
--calculateBets()
function dobet()
if firstrun then
calculateBets()
firstrun = false
end
registerRolls()
if !win then
ls = ls + 1
ws = 0
else
ws = ws + 1
-- ls = 0
end
if !capped then
betselect()
else
flat()
end
checkups()
end
function flat()
if !win then
if capped then
mynextbet = mynextbet * multi
print( ls.." > nb: "..round( mynextbet, 8 ).." b: "..round( balance, 8 ))
end
ws = 0
else
balancedelta = balance - lastbalance
--swingprofit = swingprofit + balancedelta
lastbalance = balance
print( "\n>> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >>")
print( "\n >>> WIN after [ " .. ls .. " ] rounds at ".. round( mychance, 2 ) .. "% <<<\n")
print( " p/pd: "..round( profit, 8 ).." ( "..round( balancedelta, 8).." )")
print( " b/minb: "..round( balance, 8 ).." ( "..round( minbalance, 8).." )\n")
print( " lsmax: " .. lsmax.." ( "..bets..")")
--print( " swtgt: "..round( swingtarget, 8 ))
print( " jar: "..round( tippingjar, 8 ).."\n")
print( "\n*********************************************************************************")
capped = false
ls = 0
lastprofit = profit
mychance = chance3p
--if stoplossflag then
-- ltd = ltd - currentprofit
mynextbet = 0
--end
multi = 2
end
end
function divIt()
if !stoplossflag then
if algpos == 1 then
if lastBet.roll > 49.5 then
bethigh = false
mynextbet = alg_bet2
else
mynextbet = alg_bet1
end
end
if algpos == 2 then
bethigh = true
mynextbet = alg_bet1
if !win then
alg_bet2 = alg_bet2 + alg_bet1
end
end
end
if algpos == 1 then
algpos = 2
else
algpos = 1
end
if maxbalance - balance >= stoploss then
mynextbet = 0
stoplossflag = true
betselect()
end
print( "[ " .. algpos .. " ]" .. " [" .. maxbalance - balance .. "] r: " .. round( balance, 8 ) .. " n: " .. round( nextbet, 8 ))
end
function checkups()
if balance < minbalance then minbalance = balance end
if profit > maxprofit then maxprofit = profit end
if mynextbet > maxbet then maxbet = mynextbet end
if lsmax < ls then lsmax = ls end
if tippingjar >= 0.00050001 then
---tip( "quintessence", 0.00050001 )
tippingjar = 0
--maxbalance = balance
ls = 0
end
if mynextbet > balance or nextbet > balance then
print( "\n*********************************************************************************")
print( " >>> BUST after [ " .. ls .. " ] rounds at ".. round( mychance, 2 ) .. "% <<<\n")
print( " pr/pb: "..round( profit, 8 ).." / "..round( previousbet, 8 ))
print( " pr/delta: "..round( profit, 8 ).." ( "..round( ( profit - lastprofit ), 8).." )")
print( " ls/maxb: " .. lsmax.." ( "..round( maxbet, 8).." )")
print( " b/minb: "..round( balance, 8 ).." ( "..round( minbalance, 8).." )\n")
print( " bets: " .. bets)
print( "\n*********************************************************************************\n\n")
-- stop()
end
if balance > maxbalance + target then
tippingjar = tippingjar + ( balance - maxbalance ) * 0.5
maxbalance = balance
target = balance * 0.005
--stoplossflag = false
mynextbet = 0
--mychance = chance3p
--targetruns = 0
calculateBets()
betselect()
end
if balance > maxbalance then
maxbalance = balance
alg_bet2 = alg_bet1
if !stoplossflag then
mynextbet = 0
mychance = chance3p
stoplossflag = false
else
mynextbet = 0
mychance = chance3p
stoplossflag = false
end
-- targetruns = 0
--betselect()
end
chance = round( mychance, 2 )
--if mynextbet < unitfactor then mynextbet = unitfactor end
nextbet = mynextbet
if balance - nextbet < maxbalance - 0.002 then stop() end
end
function betselect()
local lasthigh = 0
local lastlow = 0
for i = 1, polvlcount do
if polvls[i].lshigh > polvls[i].strk_wait and !capped then
ls = polvls[i].lshigh
mychance = polvls[i].ch
multi = polvls[i].multi
mynextbet = polvls[i].basebet
tempstand = polvls[i].strk_stand
bethigh = true
--pdelta = budget
print("\n**************************************************************************")
print(" >>> going [ "..polvls[i].payout.." x ] after "..ls.." rounds <<<")
print("")
print(" betting on HIGH")
print(" chance: "..mychance.."%")
print(" basebet: "..round( mynextbet, 8 ))
print("\n")
print( "\n<< << << << << << << << << << << << << << << << << << << << <<\n")
capped = true
end
if polvls[i].lslow > polvls[i].strk_wait and !capped then
ls = polvls[i].lslow
mychance = polvls[i].ch
multi = polvls[i].multi
mynextbet = polvls[i].basebet
tempstand = polvls[i].strk_stand
bethigh = false
print("\n**************************************************************************")
print(" >>> going [ "..polvls[i].payout.." x ] after "..ls.." rounds <<<")
print("")
print(" betting on LOW")
print(" chance: "..mychance.."%")
print(" basebet: "..round( mynextbet, 8 ))
print("\n")
print( "\n<< << << << << << << << << << << << << << << << << << << << <<\n")
capped = true
end
end
end
function calculateBets()
local gainstring = ""
local waitstake = waitstake_start
local ws_delta = round((( waitstake_end - waitstake_start ) / polvlcount ), 0 )
local streaksource = streaksource_start
local streaksource_delta = round((( streaksource_start - streaksource_end ) / polvlcount ), 0 )
print("ws_delta: "..ws_delta.." streaksource_delta: "..streaksource_delta )
for i = 1, polvlcount do
polvls[i].strk_max = round( math.abs( math.log( streaksource ) / math.log(( 100 - polvls[i].ch ) / 100 )), 0 )
budget = balance * ( budget_ratio / 100 )
polvls[i].strk_stand = polvls[i].strk_max
local bet = unitfactor * 1
for j = 1, polvls[i].strk_max do
bet = bet * polvls[i].multi
budget = budget - bet
if budget < unitfactor * 1 then
polvls[i].strk_stand = j - 1
break
end
end
budget = balance * ( budget_ratio / 100 )
local bet = unitfactor * 1
for k = 1, round( polvls[i].strk_stand * (( 100 - waitstake ) / 100 ), 0 ) - 1 do
bet = bet * polvls[i].multi
end
polvls[i].basebet = round( bet, 8 )
-- if polvls[i].strk_wait == nil then
-- polvls[i].strk_stand = round(( polvls[i].strk_stand * ( waitstake / 100 )), 0 )
-- polvls[i].strk_wait = polvls[i].strk_max - polvls[i].strk_stand
-- end
-- local waitdiff = polvls[i].strk_wait - ( polvls[i].strk_max - polvls[i].strk_stand )
-- if keepwait and polvls[i].strk_wait != nil and waitdiff > 0 then
-- local bet = unitfactor * 1
-- for l = 1, waitdiff do
-- bet = bet * polvls[i].multi
-- end
-- if waitdiff > 0 then gainstring = " > "..waitdiff.." gained" else gainstring = "" end
-- polvls[i].basebet = round( bet, 8 )
-- else
polvls[i].strk_stand = round(( polvls[i].strk_stand * ( waitstake / 100 )), 0 )
polvls[i].strk_wait = polvls[i].strk_max - ( polvls[i].strk_stand /1 )
--end
waitstake = waitstake + ws_delta
streaksource = streaksource - streaksource_delta
print("[ "..polvls[i].payout.." x ] "..polvls[i].strk_max.." | "..polvls[i].strk_stand.." | "..polvls[i].strk_wait.." > bb: "..polvls[i].basebet..gainstring)
end
print("streaksource_start: "..streaksource_start.." streaksource_end: "..streaksource_end )
streaksource_start = round(( streaksource_start + ( streaksource_start / 100 * 0.9 ) ), 0 )
streaksource_end =round(( streaksource_end + ( streaksource_end / 100 * 0 ) ), 0 )
if streaksource_end > 1000000 then streaksource_end = 1000000 end
if streaksource_start > 1000000 then streaksource_start = 1000000 end
end
function registerRolls()
for i = 1, polvlcount do
--print("lastroll: "..lastBet.roll)
if lastBet.roll <= 100 - polvls[i].ch then
polvls[i].lshigh = polvls[i].lshigh + 1
else
for j = 1, i do
polvls[j].lshigh = 0
--print("del lvl "..j)
end
end
if lastBet.roll >= polvls[i].ch then
polvls[i].lslow = polvls[i].lslow + 1
else
for j = 1, i do
polvls[j].lslow = 0
end
end
if polvls[i].lshigh > polvls[i].lshighmax then polvls[i].lshighmax = polvls[i].lshigh end
if polvls[i].lslow > polvls[i].lslowmax then polvls[i].lslowmax = polvls[i].lslow end
end
end
function selectbet()
if WaT then
tcnt = tcnt + 1
if tcnt == 1 then checkLastRoll() end
if tcnt == 2 then
WaT = false -- after waiting 2 rolls we can start
tcnt = 0
updatePastRolls()
checkLastRoll()
basebet = basebet3p
print( "\n---------------------------------- ----------------------------------------------------------------\n" )
print( " >>> T A R G E T R E A C H E D - R E S E T")
print( " target: " .. round( target, 8 ))
print( " new target: " .. round( target, 8 ))
print( " maxbet: " .. round( maxbet, 8 ))
print( "\n--------------------------------------------------------------------------------------------------\n" )
chance = chanceWork
end
else
updatePastRolls()
checkLastRoll()
end
if clumptrigger and dl == dll and dll == dlll then
clumptrigger = false
ct = "> <"
end
if clumptrigger and dl != dll and dl == dlll then
clumptrigger = false
ct = "> <"
end
-- clump check v1
if dl == dll and dlll == dllll and dllll != dlllll then
clumptrigger = true
ct = " >< "
end
-- clump check v2
-- if dl == dll and dlll != dll and dlll == dllll and dllll != dlllll then
-- clumptrigger = true
-- ct = " >< "
-- end
if !clumptrigger then
if ls == 4 then
bethigh = dll -- (decision before last)
else
bethigh = !dll
end
else
if ls == 4 then
bethigh = dllll -- (decision before last)
else
bethigh = !dllll
end
end
end
function checkLastRoll()
if lastBet.roll <= chance then
dl = false
echo_dl = "0"
else
dl = true
echo_dl = "1"
end
end
function updatePastRolls()
dlllll = dllll
dllll = dlll
dlll = dll
dll = dl
echo_dlllll = echo_dllll
echo_dllll = echo_dlll
echo_dlll = echo_dll
echo_dll = echo_dl
end
function round( val, decimal )
if ( decimal ) then
return math.floor(( val * 10^decimal ) + 0.5 ) / ( 10^decimal )
else
return math.floor( val + 0.5 )
end
end