Bitcoin Forum
May 24, 2024, 10:45:47 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: automatic satoshicircle gambler bot -- martingale  (Read 2979 times)
AstroKev (OP)
Newbie
*
Offline Offline

Activity: 23
Merit: 0


View Profile
June 13, 2013, 10:34:27 PM
Last edit: July 04, 2013, 03:14:42 AM by AstroKev
 #1

the satoshicircle site is pretty fun to and doesn't spam the blockchain like a lot of the dice games.  after playing by hand for awhile i decided to implement a simple martingale style strategy as a php script.  as with most things bitcoin, this is pretty simple and very basic and therefore is now released into public domain.

oh and obviously, i'm not responsible for anything you lose/break/etc so use at your own risk.

i'd recommend starting small and working your way up.  you can easily get 15 "losses" in a row, so give yourself much more room than you would think you need!  enjoy!

Code:
<?php

//
// very simple bot to play a martingale strategy against satoshicircle.com
// 
// how to use:
//
// adjust martingale parameters and bailout points appropriately below.  You can change the "circle" you want to use
// or 
// sign up at: https://satoshicircle.com/?aid=843
//
// of course you're welcome to do whatever you feel like with this.
// you should read http://en.wikipedia.org/wiki/Martingale_(betting_system) 
//
// donations greatly appreciated!
//     BTC: 1LJ5qXEqveTvdFZFkvDk9MhpyDRCicLPT8
//     LTC: LcdnGybqvgfTKSV4yCscbZoDTTQiicuVw9
//


date_default_timezone_set ('America/Los_Angeles');

$AcctInfo = array ();

// $AcctInfo ['CookieFile'] = '/tmp/sc-cookies-' . posix_getpid();
// first visit https://satoshicircle.com/?aid=843 
// then you need to grab the secret out of your url and plaster it in here.


$secret 'YOUR-SECRET-GOES-HERE';

// after first bet, we only give a small increment trying 
// to win back the original bet and only a small amount.
$usebetrecovery 1;  
$betrecoverymux 1.25;

$eatnegativereturn 1// if a bet is a fractional win (between 0 and 1, like 0.25 or 0.70), reset bet series)

$bmux 2.25;      // if you lose, multiply the previous bet by this much.  
$backwalkmux 0.7;  // when reducing bets, reduce by this amount

$startbet 0.000004;
$minbet $startbet;
$bailiter 12;

$bailpctglessbalance 0.70;
//$bailpctglessbalance = 0;
// if our balance drops to this percentage below the highest balance we have seen, then stop.


$idgame 4;   
               
// 1 is the 3x circle.        9/17
               // 2 is the "5x" circle.   7/17  
               // 3 is the "10x" circle.     5/17
               // 4 is the "2x" circle.      8/17

$idbet "";
$clientseed rand (); // stick whatever you like here; change it or random or whatever.
$iter 1;
$consecerr 0;  // exit after this many consecutive errors.
$ttlbets 0;

$minbalance 0.0;
$maxbalance 1.0

$postdata sprintf ("function=getBalance&secret=%s"$secret);
GetURL ($r$AcctInfo"https://satoshicircle.com/control.php"""$postdata0);
if (
strncasecmp ($r ['response'], '{"balance"'10) == 0) {
   
$json json_decode ($r ['response'], true);
   
$curbalance $json ['balance'];
}

$startbalance $curbalance;
$highestbalance $curbalance;
$bet $startbet;

while ((
$curbalance $bet 0) && 
   (
$curbalance $minbalance) &&
   (
$curbalance $maxbalance) &&
   (
$curbalance $bet $highestbalance $bailpctglessbalance)) {

   
sleep (6);

   
$postdata sprintf ("function=getSpin&bet=%.8f&secret=%s&clientSeed=%s&idbet=%s&idgame=%s",
      
$bet$secret$clientseed$idbet$idgame);
   
GetURL ($r$AcctInfo"https://satoshicircle.com/control.php"""$postdata0);

   
$winloss '';
   if (
strncasecmp ($r ['response'], '{"spin":'8) == 0) {
      
$json json_decode ($r ['response'], true);
      if (
$json ['result'] >= 1$winloss "WIN";
      else 
$winloss "LOSE";
      
$curbalance $json ['balance'];
      if (
$curbalance $highestbalance$highestbalance $curbalance;
   } 

   if (
$startbalance 0$startbalance $json ['balance'];
   
$delta $json ['balance'] - $startbalance;

   if (
$startbalance != 0$deltapctg $delta $startbalance 100;
   else 
$deltapctg 0;

   
printf ("%s\t%s\t%s\t"date ('Y-m-d H:i:s'), ++$ttlbets$iter);
   
printf ("%.8f\t%s\t%s\t"$bet$json ['result'], $winloss);
//   printf ("%.8f\t%.4f%%\t", $delta, $deltapctg);
   
printf ("%.8f [%.8f] %.8f\t"
      
$highestbalance $bailpctglessbalance,
      
$curbalance,
      
$highestbalance);
   
printf ("%.4f%%\n"$deltapctg);


   if (
strcasecmp ($winloss'win') == 0) {
      
printf ("\n");
      
$bet $startbet;
      
$iter 1;
      
$consecerr 0;
   } else if (
strcasecmp ($winloss'lose') == 0) {
      if ((
$usebetrecovery) && ($iter == 1)) {
         
$bet *= $betrecoverymux;
      } else {
         if ((
$json ['result'] > 0) && ($json ['result'] < 1)) {
            if (
$eatnegativereturn) {
               
printf ("eating negative return bet\n");
               
$bet $startbet;
               
$iter 0;
            } else 
$bet *= $json ['result'];
         } else {
            
$bet *= $bmux;
         }
      }
      
$iter++;
      
$consecerr 0;
   } else {
      
$consecerr++;
      
$sleeptime << $consecerr;
      
printf ("consecerr=%d  sleeping: [%d]\n"$consecerr$sleeptime);
      
sleep ($sleeptime);
      if (
$consecerr 5) exit();
   }

   if (
$iter $bailiter) {
      
printf ("iter: [%d] > %d -- eating and walking backwards.\n"$iter$bailiter);
      
$bet /= $bmux;
      
$bet *= $backwalkmux;
      if (
$bet $minbetmux) {
         
printf ("iter: [%d] -- walked backward and now at minbet.  eating loss and restarting.\n"$iter);
         
$iter 1;
         
$bet $startbet;
      }
   }
}


printf ("%s\tEXIT!  curbalance=%.8f   highestbalance=%.8f  bet=%.8f   bailpoint=%.8f\n"date ('Y-m-d'), $curbalance$highestbalance$bet$highestbalance $bailpctglessbalance);


function 
GetURL (&$Response, &$AcctInfo$url$ref NULL$postdata NULL$header 1)
{
   
$Response = array ();

   
$ch curl_init();
   
curl_setopt ($chCURLOPT_URL$url);
//   curl_setopt ($ch, CURLOPT_USERAGENT, $AcctInfo ['UserAgent']);
//   curl_setopt ($ch, CURLOPT_PROXY, $AcctInfo ['ProxyIPPort']);
//   curl_setopt ($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
//   curl_setopt ($ch, CURLOPT_COOKIEFILE, $AcctInfo ['CookieFile']);
//   curl_setopt ($ch, CURLOPT_COOKIEJAR, $AcctInfo ['CookieFile']);
   
curl_setopt ($chCURLOPT_REFERER$ref);
   
curl_setopt ($chCURLOPT_RETURNTRANSFER1);
   
curl_setopt ($chCURLOPT_FOLLOWLOCATION1);
   
curl_setopt ($chCURLOPT_HEADER$header);
   
curl_setopt ($chCURLOPT_SSL_VERIFYPEER0);
   
curl_setopt ($chCURLOPT_SSL_VERIFYHOST0);
   
curl_setopt ($chCURLOPT_VERBOSEfalse);
   
curl_setopt ($chCURLOPT_CONNECTTIMEOUT10);
   
curl_setopt ($chCURLOPT_TIMEOUT30);

   
curl_setopt ($chCURLOPT_HTTPHEADER, array (
         
'Accept: */*',
         
'Accept-Language: en-us,en;q=0.5')
      );
   if (
$postdata != NULLcurl_setopt ($chCURLOPT_POSTFIELDS$postdata);

   
$Response ['response'] = curl_exec ($ch);
   
$Response ['info'] = curl_getinfo ($ch);
   
$Response ['error'] = curl_error ($ch);

//   var_dump ($Response);

   
curl_close ($ch);
}



?>



EDIT ::: Jun 18, 2003 :::
I've reworked a bit of this so that by default it is using the 50/50 circle.  Also there are a few new parameters to edit.

usebetrecovery -- if this is '1' then it will attempt a very small increase (betrecoverymux) on the second bet as an attempt to recoup only the first bet and win only a slight amount.  this is an easy way of extending the martingale stretch by one additional run.

backwalkmux -- in the event the stretch goes past bailiter, instead of restarting the entire run from scratch, the bets are instead reduced by this amount until the bet amount is less than the original starting bet.  again this helps with some recovery with a "run gone wrong"

bailpctglessbalance -- this numbers adjusts upwards as the 'maximum balance' increases and stops the bot in the event that the losses become this percentage of the largest balance seen.  For example, if you start with 0.10 BTC, and have this set as 0.70, the bot will stop if a bet were to place the balance at or below 0.07. (0.1 * 0.7).  This number will scale upwards as your balance increases, so if you went up to 0.15 BTC, this would become 0.105 (0.15 *.07) and is recalculated with each spin.


the output file format:


1) time/date
2) total bets since bot started
3) number of iterations in the current stretch
4) bet used
5) result of bet
6) whether it's considered a win or loss ('WIN/LOSE')
7) bailpoint balance [ current balance ] highest balance seen
8 ) percentage gain/loss since bot started



---

HOW TO USE:

Simple copy/paste/save the code from above and save as "scbot.php".  Edit the configuration parameters, esepecially the 'YOUR-SECRET-GOES-HERE' area.  Get a secret key by visiting https://satoshicircle.com/?aid=843 and copying the secret out of the url you see in your browser.  Of course, you can modify any of the other parameters as you like as well and begin running the bot.  To stop it, either break out or let it exit out once an exit condition is met (i.e. minimum balance or maximum balance)








Example log:

Quote
2013-06-18 23:17:26   1   1   0.00300000   2   WIN   0.07771138 [0.11101626] 0.11101626   2.7774%

2013-06-18 23:17:32   2   1   0.00300000   0   LOSE   0.07771138 [0.10801626] 0.11101626   0.0000%
2013-06-18 23:17:39   3   2   0.00375000   2   WIN   0.07823638 [0.11176626] 0.11176626   3.4717%

2013-06-18 23:17:46   4   1   0.00300000   2   WIN   0.08033638 [0.11476626] 0.11476626   6.2491%

2013-06-18 23:17:52   5   1   0.00300000   2   WIN   0.08243638 [0.11776626] 0.11776626   9.0264%

2013-06-18 23:17:59   6   1   0.00300000   .7   LOSE   0.08243638 [0.11686626] 0.11776626   8.1932%
2013-06-18 23:18:05   7   2   0.00375000   2   WIN   0.08443138 [0.12061626] 0.12061626   11.6649%

2013-06-18 23:18:12   8   1   0.00300000   0   LOSE   0.08443138 [0.11761626] 0.12061626   8.8876%
2013-06-18 23:18:19   9   2   0.00375000   2   WIN   0.08495638 [0.12136626] 0.12136626   12.3593%

2013-06-18 23:18:25   10   1   0.00300000   2   WIN   0.08705638 [0.12436626] 0.12436626   15.1366%

2013-06-18 23:18:32   11   1   0.00300000   .7   LOSE   0.08705638 [0.12346626] 0.12436626   14.3034%
2013-06-18 23:18:39   12   2   0.00375000   2   WIN   0.08905138 [0.12721626] 0.12721626   17.7751%

2013-06-18 23:18:45   13   1   0.00300000   2   WIN   0.09115138 [0.13021626] 0.13021626   20.5525%

2013-06-18 23:18:52   14   1   0.00300000   0   LOSE   0.09115138 [0.12721626] 0.13021626   17.7751%
2013-06-18 23:18:59   15   2   0.00375000   0   LOSE   0.09115138 [0.12346626] 0.13021626   14.3034%
2013-06-18 23:19:05   16   3   0.00843750   2   WIN   0.09233263 [0.13190376] 0.13190376   22.1147%

2013-06-18 23:19:12   17   1   0.00300000   2   WIN   0.09443263 [0.13490376] 0.13490376   24.8921%

2013-06-18 23:19:18   18   1   0.00300000   2   WIN   0.09653263 [0.13790376] 0.13790376   27.6694%

2013-06-18 23:19:25   19   1   0.00300000   2   WIN   0.09863263 [0.14090376] 0.14090376   30.4468%

2013-06-18 23:19:32   20   1   0.00300000   2   WIN   0.10073263 [0.14390376] 0.14390376   33.2242%

2013-06-18 23:19:38   21   1   0.00300000   2   WIN   0.10283263 [0.14690376] 0.14690376   36.0015%

2013-06-18 23:19:45   22   1   0.00300000   2   WIN   0.10493263 [0.14990376] 0.14990376   38.7789%

2013-06-18 23:19:52   23   1   0.00300000   0   LOSE   0.10493263 [0.14690376] 0.14990376   36.0015%
2013-06-18 23:19:58   24   2   0.00375000   .7   LOSE   0.10493263 [0.14577876] 0.14990376   34.9600%
eating negative return bet
2013-06-18 23:20:05   25   1   0.00300000   0   LOSE   0.10493263 [0.14277876] 0.14990376   32.1827%
2013-06-18 23:20:12   26   2   0.00375000   2   WIN   0.10493263 [0.14652876] 0.14990376   35.6544%

2013-06-18 23:20:18   27   1   0.00300000   0   LOSE   0.10493263 [0.14352876] 0.14990376   32.8770%
2013-06-18 23:20:25   28   2   0.00375000   2   WIN   0.10493263 [0.14727876] 0.14990376   36.3487%

2013-06-18 23:20:31   29   1   0.00300000   2   WIN   0.10519513 [0.15027876] 0.15027876   39.1261%

2013-06-18 23:20:38   30   1   0.00300000   2   WIN   0.10729513 [0.15327876] 0.15327876   41.9034%

2013-06-18 23:20:45   31   1   0.00300000   2   WIN   0.10939513 [0.15627876] 0.15627876   44.6808%

2013-06-18 23:20:51   32   1   0.00300000   0   LOSE   0.10939513 [0.15327876] 0.15627876   41.9034%
2013-06-18 23:20:58   33   2   0.00375000   0   LOSE   0.10939513 [0.14952876] 0.15627876   38.4317%
2013-06-18 23:21:05   34   3   0.00843750   2   WIN   0.11057638 [0.15796626] 0.15796626   46.2430%

2013-06-18 23:21:11   35   1   0.00300000   0   LOSE   0.11057638 [0.15496626] 0.15796626   43.4657%
2013-06-18 23:21:18   36   2   0.00375000   0   LOSE   0.11057638 [0.15121626] 0.15796626   39.9940%
2013-06-18 23:21:24   37   3   0.00843750   2   WIN   0.11175763 [0.15965376] 0.15965376   47.8053%

2013-06-18 23:21:31   38   1   0.00300000   0   LOSE   0.11175763 [0.15665376] 0.15965376   45.0279%
2013-06-18 23:21:38   39   2   0.00375000   0   LOSE   0.11175763 [0.15290376] 0.15965376   41.5562%
2013-06-18 23:21:44   40   3   0.00843750   .7   LOSE   0.11175763 [0.15037251] 0.15965376   39.2128%
eating negative return bet
2013-06-18 23:21:51   41   1   0.00300000   2   WIN   0.11175763 [0.15337251] 0.15965376   41.9902%

2013-06-18 23:21:58   42   1   0.00300000   2   WIN   0.11175763 [0.15637251] 0.15965376   44.7676%

2013-06-18 23:22:04   43   1   0.00300000   2   WIN   0.11175763 [0.15937251] 0.15965376   47.5449%

2013-06-18 23:22:11   44   1   0.00300000   0   LOSE   0.11175763 [0.15637251] 0.15965376   44.7676%
2013-06-18 23:22:19   45   2   0.00375000   2   WIN   0.11208576 [0.16012251] 0.16012251   48.2393%

2013-06-18 23:22:25   46   1   0.00300000   0   LOSE   0.11208576 [0.15712251] 0.16012251   45.4619%
2013-06-18 23:22:32   47   2   0.00375000   0   LOSE   0.11208576 [0.15337251] 0.16012251   41.9902%
2013-06-18 23:22:39   48   3   0.00843750   0   LOSE   0.11208576 [0.14493501] 0.16012251   34.1789%
2013-06-18 23:22:45   49   4   0.01898438   0   LOSE   0.11208576 [0.12595063] 0.16012251   16.6034%
iter: [5] > 4 -- eating and walking backwards.
2013-06-18 23:22:52   50   5   0.01328906   2   WIN   0.11208576 [0.13923969] 0.16012251   28.9062%

2013-06-18 23:22:59   51   1   0.00300000   2   WIN   0.11208576 [0.14223969] 0.16012251   31.6836%

2013-06-18 23:23:05   52   1   0.00300000   0   LOSE   0.11208576 [0.13923969] 0.16012251   28.9062%
2013-06-18 23:23:12   53   2   0.00375000   0   LOSE   0.11208576 [0.13548969] 0.16012251   25.4345%
2013-06-18 23:23:18   54   3   0.00843750   0   LOSE   0.11208576 [0.12705219] 0.16012251   17.6232%
2013-06-18   EXIT!  curbalance=0.12705219   highestbalance=0.16012251  bet=0.01898438   bailpoint=0.11208576
b!z
Legendary
*
Offline Offline

Activity: 1582
Merit: 1010



View Profile
June 18, 2013, 01:35:13 AM
 #2

Are you trying to promote the idea that gambling is profitable in the long term?  Roll Eyes
AstroKev (OP)
Newbie
*
Offline Offline

Activity: 23
Merit: 0


View Profile
June 18, 2013, 05:42:23 AM
 #3

Are you trying to promote the idea that gambling is profitable in the long term?  Roll Eyes

"With my system, you too can be a /<rAd El33+ interweb bitcoin kajillionairre!"   

LOL.  No!  If you play to infinity, you will lose.  However, you can have a lot of fun in the interim and if you're lucky even win some extra BTC.  I was trying to be pretty clear about the strategy that the bot uses and the issues that it has (i.e. why you will lose in the long term).

BTW, it was pointed out to me that new users of that site will not have access to the 'default' wheel I have the bot set to use.  You have to use like the 3x wheel until you get enough points.  If the bot says "connection error" when you try to use it, then you need to change the game it is playing.  The easiest way to do this is to change the '$idgame = 2;' above to '$idgame = 1;' in the code above.







rampantparanoia
Sr. Member
****
Offline Offline

Activity: 516
Merit: 283



View Profile
June 30, 2013, 06:43:43 AM
 #4

can you add the ability to output logs as they happen? instead of waiting for the entire script to finish
thanks

or maybe output to a file so when the script hangs, you can still retrieve the output
gillespies
Newbie
*
Offline Offline

Activity: 45
Merit: 0



View Profile
June 30, 2013, 07:59:01 AM
 #5

Hi, can someone tell me how to run the script?

BTW, I am running Windows XP

Thanks a lot.
rampantparanoia
Sr. Member
****
Offline Offline

Activity: 516
Merit: 283



View Profile
July 03, 2013, 06:15:50 PM
 #6

Hi, can someone tell me how to run the script?

BTW, I am running Windows XP

Thanks a lot.

You need to have a PHP environment with CURL enabled in order to run the script. PM me if you want to lease some of my space.
statdude
Legendary
*
Offline Offline

Activity: 1498
Merit: 1000


View Profile
July 03, 2013, 07:27:50 PM
 #7

Lol what's the point of martingale?

Just make your bet and live with it.

▄█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█▄
█ ███████████████████████ █
█ █████     █ ▀██████████ █
█ █████     █   ▀████████ █
█ █████  ██ █     ▀██████ █

█ █████  ▀▀ █▄▄▄▄▄▄▄█████ █
█ █████  ▄▄▄▄▄▄▄▄▄  █████ █
█ █████  ▄▄▄▄▄▄▄▄▄  █████ █
█ █████  ▄▄▄▄▄▄▄▄▄  █████ █
█ █████  ▄▄▄▄▄▄▄▄▄  █████ █
█ █████             █████ █
█ ███████████████████████ █
▀█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█▀
  Website
    Twitter
      Gitlab
      Reddit
    Telegram
Whitepaper
  ▄█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█▄
█ ███████████████████████ █
█ ███████████████████████ █
█ ███▄    ███████▀   ▄███ █
█ ████▌    █████▀    ████ █
█ ████▌     ███▀     ████ █
█ ████▌▐█    █▀ █    ████ █
█ ████▌▐██     ██    ████ █
█ ████▌▐███   ███    ████ █
█ ███▀  ▀███ ███▀    ▀███ █
█ ███████████████████████ █
█ ███████████████████████ █
▀█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█▀
AstroKev (OP)
Newbie
*
Offline Offline

Activity: 23
Merit: 0


View Profile
July 04, 2013, 03:14:09 AM
 #8

It should be outputting as it goes.  If not, you're getting the output buffered.  Adding ob_flush() right after the "sleep (6)" in the while loop might help.

Aside:  I had some recent exchanges with the operator of the site, and it seemed they were pretty okay with the idea of these bots.  Obviously the cards are stacked against users of the bot and in their favor so it's in their interest, but in case there were concerns about this. 

---

Here is another serious hack job of this bot which uses a very different strategy than martingale.  Instead, this bot tries to make very small wins by being tuned to the 5x and/or 10x circle jackpots.  Essentially it ramps up the bet to make up for losses IF the jackpot is hit, and then a little bit.  The idea is to be able to stretch the runs out much further and minimize the case of catastrophe.  Sorry this code is so ugly.  Clearly I'm hacking around.  BTW, to use this bot "as is", aside from putting your secret in, you must also have unlocked the 5x wheel.  You should expect that this bot may run up to at least 120-150 iterations before hitting the jackpot.  Losing 20+ times in a row will cause you some grief on the amounts it will want to bet, so as always, starting very small is a good idea.

I've also added a parameter to enable a bet as a percentage of your balance. 


Code:
<?php

// Forum discussion at http://goo.gl/b4XsJ
//
// how to use:
//
// adjust parameters and bailout points appropriately below.  You can change the "circle" you want to use
// or 
// sign up at: https://satoshicircle.com/?aid=843
//
// donations greatly appreciated!
//     BTC: 1LJ5qXEqveTvdFZFkvDk9MhpyDRCicLPT8
//     LTC: LcdnGybqvgfTKSV4yCscbZoDTTQiicuVw9
//
//

date_default_timezone_set ('America/Los_Angeles');

$AcctInfo = array ();

// $AcctInfo ['CookieFile'] = '/tmp/sc-cookies-' . posix_getpid();
// first visit https://satoshicircle.com/?aid=843 
// then you need to grab the secret out of your url and plaster it in here.

$secret "YOUR-SECRET-HERE";

$jackpotwin 3;

$startbetbalancepctg 0.02// set to -1 to use fixed bet 
// $startbet = 0.0005;  // use a fixed start bet
$minbet $startbet;

$bailpctglessbalance 0.7;
// if our balance drops to this percentage below the highest balance we have seen, then stop.

// YOU MUST HAVE UNLOCKED THE 5X CIRCLE FOR THIS BOT.
$idgame 2;
               
// 1 is the "3x" circle.      9/17
               // 2 is the "5x" circle.      7/17
               // 3 is the "10x" circle.     5/17
               // 4 is the "2x" circle.      8/17   NOT TESTED PROBABLY BAD DONT USE.

$idbet "";
$clientseed rand (); // stick whatever you like here; change it or random or whatever.
$iter 1;
$consecerr 0;  // exit after this many consecutive errors.
$ttlbets 0;

$minbalance 0.0;
$maxbalance 20.0

$postdata sprintf ("function=getBalance&secret=%s"$secret);
GetURL ($r$AcctInfo"https://satoshicircle.com/control.php"""$postdata0);
if (
strncasecmp ($r ['response'], '{"balance"'10) == 0) {
   
$json json_decode ($r ['response'], true);
   
$curbalance $json ['balance'];
}

$startbalance $curbalance;
$highestbalance $curbalance;
if (
$startbetbalancepctg 0$startbet $curbalance $startbetbalancepctg 100;
$bet $startbet;
$iter 0;

if (
$idgame == 1$jackpotval 3;
else if (
$idgame == 2$jackpotval 5;
else if (
$idgame == 3$jackpotval 10;
else if (
$idgame == 4$jackpotval 2;

$wintarget $startbet $jackpotval;
$runstartbalance $startbalance;

while ((
$curbalance $bet 0) && 
   (
$curbalance $minbalance) &&
   (
$curbalance $maxbalance) &&
   (
$curbalance $bet $highestbalance $bailpctglessbalance)) {

   
$postdata sprintf ("function=getSpin&bet=%.8f&secret=%s&clientSeed=%s&idbet=%s&idgame=%s",
      
$bet$secret$clientseed$idbet$idgame);
   
GetURL ($r$AcctInfo"https://satoshicircle.com/control.php"""$postdata0);

   
$winloss '';
   if (
strncasecmp ($r ['response'], '{"spin":'8) == 0) {
      
$json json_decode ($r ['response'], true);
      if (
$json ['result'] >= 1$winloss "WIN";
      else 
$winloss "LOSE";
      
$curbalance $json ['balance'];
      if (
$curbalance $highestbalance$highestbalance $curbalance;
   } 

   
$delta $curbalance $startbalance;
   if (
$startbalance != 0$deltapctg $delta $startbalance 100;
   else 
$deltapctg 0;

   
$deltabalance $curbalance $runstartbalance;
   
$deltastartbalance $curbalance $startbalance;

//   printf ("%s\t%s\t%s\t", date ('Y-m-d H:i:s'), ++$ttlbets, $iter);
   
printf ("%s\t%s\t",  ++$ttlbets$iter);
   
printf ("wt=%.8f\t"$wintarget);
   
printf ("%.8f (D=%.8f SD=%.8f) \t%s\t%s\t"$bet$deltabalance$deltastartbalance$json ['result'], $winloss);
//   printf ("%.8f (E=%.8f, D=%.8f/SD=%.8f) \t%s\t%s\t", $bet, $sumbets, $deltabalance, $deltastartbalance, $json ['result'], $winloss);
//   printf ("%.8f\t%.4f%%\t", $delta, $deltapctg);
   
printf ("%.8f [%.8f] %.8f\t"
      
$highestbalance $bailpctglessbalance,
      
$curbalance,
      
$highestbalance);
   
printf ("%.4f%%\n"$deltapctg);

   
$recalibrate 0;

//   if ($startbetbalancepctg > 0) $startbet = $curbalance * $startbetbalancepctg / 100;

   
if ($json ['result'] >= $jackpotwin) {
      
printf ("Jackpot!  Resetting iter...\n\n");
      if (
$startbetbalancepctg 0$startbet $curbalance $startbetbalancepctg 100;
      
$iter 1;
      
$wintarget $startbet $jackpotval;
      
$bet $startbet;
      
$runstartbalance $curbalance;
   } else {
      if (
$deltabalance >= 0$bet $startbet;
      else {
         
$bet $wintarget + (-$deltabalance);
         
$bet /= $jackpotval;
      }

      
$iter++;
   }

   if (
$bet $startbet$bet $startbet;

   if (
strcasecmp ($winloss'win') == 0) {
      
$consecerr 0;
   } else if (
strcasecmp ($winloss'lose') == 0) {
      
$consecerr 0;
   } else {
      
$consecerr++;
      
$sleeptime << $consecerr;
      
printf ("consecerr=%d  sleeping: [%d]\n"$consecerr$sleeptime);
      
sleep ($sleeptime);
      if (
$consecerr 5) exit();
   }

   
sleep (6);
}


printf ("%s\tEXIT!  startbalance=%.8f   endingbalance=%.8f   highestbalance=%.8f  attemptedbet=%.8f   bailpoint=%.8f\n"date ('Y-m-d'), $startbalance$curbalance$highestbalance$bet$highestbalance $bailpctglessbalance);
printf ("Net return: %.4f%%\n"$deltapctg);


function 
GetURL (&$Response, &$AcctInfo$url$ref NULL$postdata NULL$header 1)
{
   
$Response = array ();

   
$ch curl_init();
   
curl_setopt ($chCURLOPT_URL$url);
//   curl_setopt ($ch, CURLOPT_USERAGENT, $AcctInfo ['UserAgent']);
//   curl_setopt ($ch, CURLOPT_PROXY, $AcctInfo ['ProxyIPPort']);
//   curl_setopt ($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
//   curl_setopt ($ch, CURLOPT_COOKIEFILE, $AcctInfo ['CookieFile']);
//   curl_setopt ($ch, CURLOPT_COOKIEJAR, $AcctInfo ['CookieFile']);
   
curl_setopt ($chCURLOPT_REFERER$ref);
   
curl_setopt ($chCURLOPT_RETURNTRANSFER1);
   
curl_setopt ($chCURLOPT_FOLLOWLOCATION1);
   
curl_setopt ($chCURLOPT_HEADER$header);
   
curl_setopt ($chCURLOPT_SSL_VERIFYPEER0);
   
curl_setopt ($chCURLOPT_SSL_VERIFYHOST0);
   
curl_setopt ($chCURLOPT_VERBOSEfalse);
   
curl_setopt ($chCURLOPT_CONNECTTIMEOUT10);
   
curl_setopt ($chCURLOPT_TIMEOUT30);

   
curl_setopt ($chCURLOPT_HTTPHEADER, array (
         
'Accept: */*',
         
'Accept-Language: en-us,en;q=0.5')
      );
   if (
$postdata != NULLcurl_setopt ($chCURLOPT_POSTFIELDS$postdata);

   
$Response ['response'] = curl_exec ($ch);
   
$Response ['info'] = curl_getinfo ($ch);
   
$Response ['error'] = curl_error ($ch);

//   var_dump ($Response);

   
curl_close ($ch);
}



?>




Example output:
Quote
> php sc-5x-jackpotter4-acct3.php
1   0   wt=0.00016439   0.00003288 (D=-0.00003288 SD=-0.00003288)    0   LOSE   0.11506972 [0.16435243] 0.16438531   -0.0200%
2   1   wt=0.00016439   0.00003945 (D=-0.00007233 SD=-0.00007233)    0   LOSE   0.11506972 [0.16431298] 0.16438531   -0.0440%
3   2   wt=0.00016439   0.00004734 (D=-0.00002499 SD=-0.00002499)    2   WIN   0.11506972 [0.16436032] 0.16438531   -0.0152%
4   3   wt=0.00016439   0.00003788 (D=-0.00006287 SD=-0.00006287)    0   LOSE   0.11506972 [0.16432244] 0.16438531   -0.0382%
5   4   wt=0.00016439   0.00004545 (D=-0.00002424 SD=-0.00002424)    1.85   WIN   0.11506972 [0.16436107] 0.16438531   -0.0147%
6   5   wt=0.00016439   0.00003773 (D=-0.00006197 SD=-0.00006197)    0   LOSE   0.11506972 [0.16432334] 0.16438531   -0.0377%
7   6   wt=0.00016439   0.00004527 (D=-0.00010724 SD=-0.00010724)    0   LOSE   0.11506972 [0.16427807] 0.16438531   -0.0652%
8   7   wt=0.00016439   0.00005433 (D=-0.00006106 SD=-0.00006106)    1.85   WIN   0.11506972 [0.16432425] 0.16438531   -0.0371%
9   8   wt=0.00016439   0.00004509 (D=-0.00002273 SD=-0.00002273)    1.85   WIN   0.11506972 [0.16436258] 0.16438531   -0.0138%
10   9   wt=0.00016439   0.00003742 (D=-0.00006015 SD=-0.00006015)    0   LOSE   0.11506972 [0.16432516] 0.16438531   -0.0366%
11   10   wt=0.00016439   0.00004491 (D=-0.00010506 SD=-0.00010506)    0   LOSE   0.11506972 [0.16428025] 0.16438531   -0.0639%
12   11   wt=0.00016439   0.00005389 (D=-0.00005117 SD=-0.00005117)    2   WIN   0.11506972 [0.16433414] 0.16438531   -0.0311%
13   12   wt=0.00016439   0.00004311 (D=0.00012127 SD=0.00012127)    5   WIN   0.11515461 [0.16450658] 0.16450658   0.0738%
Jackpot!  Resetting iter...

14   1   wt=0.00016451   0.00003290 (D=-0.00003290 SD=0.00008837)    0   LOSE   0.11515461 [0.16447368] 0.16450658   0.0538%
15   2   wt=0.00016451   0.00003948 (D=-0.00007238 SD=0.00004889)    0   LOSE   0.11515461 [0.16443420] 0.16450658   0.0297%
16   3   wt=0.00016451   0.00004738 (D=-0.00011976 SD=0.00000151)    0   LOSE   0.11515461 [0.16438682] 0.16450658   0.0009%
17   4   wt=0.00016451   0.00005685 (D=-0.00017661 SD=-0.00005534)    0   LOSE   0.11515461 [0.16432997] 0.16450658   -0.0337%
18   5   wt=0.00016451   0.00006822 (D=-0.00024483 SD=-0.00012356)    0   LOSE   0.11515461 [0.16426175] 0.16450658   -0.0752%
19   6   wt=0.00016451   0.00008187 (D=-0.00032670 SD=-0.00020543)    0   LOSE   0.11515461 [0.16417988] 0.16450658   -0.1250%
20   7   wt=0.00016451   0.00009824 (D=-0.00022846 SD=-0.00010719)    2   WIN   0.11515461 [0.16427812] 0.16450658   -0.0652%
21   8   wt=0.00016451   0.00007859 (D=-0.00014987 SD=-0.00002860)    2   WIN   0.11515461 [0.16435671] 0.16450658   -0.0174%
22   9   wt=0.00016451   0.00006288 (D=-0.00021275 SD=-0.00009148)    0   LOSE   0.11515461 [0.16429383] 0.16450658   -0.0556%
23   10   wt=0.00016451   0.00007545 (D=-0.00028820 SD=-0.00016693)    0   LOSE   0.11515461 [0.16421838] 0.16450658   -0.1015%
24   11   wt=0.00016451   0.00009054 (D=-0.00021124 SD=-0.00008997)    1.85   WIN   0.11515461 [0.16429534] 0.16450658   -0.0547%
25   12   wt=0.00016451   0.00007515 (D=-0.00013609 SD=-0.00001482)    2   WIN   0.11515461 [0.16437049] 0.16450658   -0.0090%
26   13   wt=0.00016451   0.00006012 (D=-0.00019621 SD=-0.00007494)    0   LOSE   0.11515461 [0.16431037] 0.16450658   -0.0456%
27   14   wt=0.00016451   0.00007214 (D=-0.00026835 SD=-0.00014708)    0   LOSE   0.11515461 [0.16423823] 0.16450658   -0.0895%
28   15   wt=0.00016451   0.00008657 (D=0.00007793 SD=0.00019920)    5   WIN   0.11520916 [0.16458451] 0.16458451   0.1212%
Jackpot!  Resetting iter...
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!