-- 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