**Windows Software by Carl Ursini**

**I. About ACE**

Advanced Count Explorer is a simple yet powerful blackjack program which transforms user-input statistical data into accurate, precise, and useful output data. To quickly analyze results from blackjack simulations, the user enters data for each count value, and at the touch of a button essential information is displayed. Included in the output is Kelly optimal bet sizing, dependent on the user’s risk-tolerance and bankroll size, hourly expected value and standard deviation dependent on rounds observed/played per hour, risk of ruin, desirability indices, short-term (trip) statistics, and more. By changing input variables, the user can create a playing system, a short-term analysis, save and open data files, and print the results to accompany its respective simulation report for quick reference.

II. __Directions for using ACE__

**Advanced Count Explorer **requires an IBM-compatible computer system with Windows 95 or higher, and at least 640×480 screen resolution (this resolution will fill the screen). After loading the program file “ACE.EXE”, the main window appears where you will supply all necessary data required by the computer to make the calculations.

The first step is to provide the range of true count values to be input/analyzed (Note: wherever “true count” is used in this file or in the program itself, it is simply a reference number for the count, so they may represent running and other counts if your system warrants). Pressing Alt-E and Alt-T will set the cursor in the minimum and maximum true count input boxes respectively. The range can be no greater than 31, so for example you could input true counts from -15 to +15. Select **Refresh** from either the screen button or menu bar (under the **Action** title), or pressing Alt-R, after selecting the range, and a number of text boxes will appear. If your range is large enough, a scrollbar will appear to the right of the screen which is used to view the entire range. Please note that whenever you click on **Refresh**, all data is cleared from the boxes — be careful not to mistakenly clear data, as you will be required to re-enter it.

Your next step is to choose the size of your bankroll. The data you enter here is used to calculate the optimal bet and risk of ruin figures. **ACE** will not let you input individual TC bet amounts greater than the bankroll. You can get to this box by either clicking inside it, pressing Alt-B, or simply pressing the Tab key if the **Refresh** button is currently selected. Note that using the Tab key is probably the quickest way for you to enter your data, rather than using the mouse. If you need to “back up” to a previous input box, use Shift-Tab.

Now select how many rounds per hour you *observe *(Alt-O). If your system entails a play-all approach, rounds observed and rounds played are equal. However, if you are a back counter/wonger, the rounds observed per hour includes all rounds you count, playing or not. By varying your input here after the initial call to **Calculate**, you’ll be able to quickly see how your hourly results are affected by table fullness and dealing speed. The default value for rounds observed per hour is 100.

You now choose the percentage of Kelly proportional betting to be examined for optimality statistics (Alt-K). The default value is 100%, however you may want to analyze optimal bet sizes which are more risk-averse, such as 50% for 1/2 Kelly. After you make your selection, the count statistics can be input. If you selected more than 10 count values to explore, a scroll bar will appear on the right edge of the form. Simply move the box up or down to view those counts which aren’t visible.

The first column of text boxes are reserved for the frequency distribution. Fill in these spaces with the percentage of rounds observed at each respective count. Input the frequencies in decimal form, with a value between 0 and 1.

The second column contains boxes for the player advantage at each count value. Like inputting frequencies, enter the advantage values in decimal form, and between -1 and 1. Be aware of how many decimal places you enter, so that your results are accurate. For example, a .5% advantage would be entered as .005.

The third column is designated for standard deviation per round (per unit bet) data. The only restriction is that the value entered must be positive.

Bet sizes at each count should be input in the fourth column text boxes. Bets are entered in unit form, and all calculation results will also be represented as units. You may enter bets with decimal values and they must be positive. **ACE** won’t let you enter any individual count’s bet that is greater than the bankroll size you entered.

Labelled **M.H.** for multiple hands, the fifth column contains check boxes which are defaulted as unchecked. Leave it unchecked if you play only one hand at the respective count, but click on it if you wish to examine multiple hand statistics. When the box is checked, the next two columns will appear which require you to input data specific to multiple hand play.

**#H** stands for number of hands, and you may enter any positive integer (including 1). Note that for multiple hand play, the units bet that you entered previously will be placed on each of X number of hands you enter in this space. **ACE** won’t let you exceed your bankroll at any count value, so: (Bet) * (#H) <= Bankroll.

The next column is labelled **C.C.** for correlation coefficient. Enter the decimal value (between 0 and 1) for this multiple hand statistic in this text box. If you do not have data for correlation coefficient but know the covariance, a simple calculation is required:

C.C. = __Covariance__

**Variance**

Once all data is entered you may click on the **Calculate** button, select “Calculate” from the menu bar item (under **Action**), press Alt-C, or simply press Enter to view the resulting calculations. If any value was entered incorrectly (outside limits or non-numeric), **ACE** will inform you, and only the statistics up to that count value will be shown — you must correct your error and re-click **Calculate**. Once all the results are shown, you can change any of the numbers entered, and click **Calculate**. By doing this, you can quickly compare playing methods, bankroll considerations, and playing conditions. One item worth mentioning is that **ACE** does not take into consideration any standard errors inherent in the user-input simulation results. Therefore, it is recommended that the simulations you will analyze through this software be long enough, and yield reasonably accurate statistics (ie- small standard error), so that subsequent erroneous output data is kept to a minimum.

To save the data you have input, simply click on **File** from the menu, then choose **Save**, or press the keys Ctrl-S from the main screen. A window will appear to assist you in choosing a directory and filename for saving the information. Save your files as data files (.dat) to avoid confusion between other file types. To retrieve your data that has been saved previously, choose **Open** from the **File** menu, or press Ctrl-O. A window will pop-up to help you find the desired data file (with .dat extension). Only the input boxes will be filled, so you will need to click on **Calculate** after opening your file to view the results. Remember to save your work before refreshing the screen or exiting **ACE**, or you’ll be required to re-enter all fields if you wish to analyze the same set of simulation statistics. If you try opening a file and no data is transferred to the screen, make sure you chose an existing data file and that you typed it correctly in the **Open** window.

You can also print copies of your statistics by clicking on **File** on the menu bar, then choosing **Print**, or pressing the keys Ctrl-P. Make sure your default printer is setup properly and paper is inserted. **ACE** will print out 2 pages; the first contains all specific count statistics, and the second contains the overall/total results that appear below the lower solid line on the screen. As well, if you’ve calculated any statistics in the **Short-Term** window, before printing you will be asked if you want these figures to be printed. At this point, if you choose ‘Yes’ (or press Enter) these stats will be the last items printed; if you choose ‘No’ then the short-term data won’t be printed, and if you choose ‘Cancel’ then the entire print job will be terminated and you’ll be sent back to the main window.

If you need assistance while running the program, the column headings and textbox titles will pop-up short self-descriptions if the mouse pointer is held over them for a few seconds. To read this file, click on the **Help** menu item and select **Help**, or press the keys Ctrl-H together. When you are finished using **ACE** and would like to exit, click on **Exit** from the **File** menu bar title, close the window, or press Ctrl-X.

III. __Explanation of calculated results__

You will notice that the output statistics’ colors are either red or white. Any value that is white is an optimal result. It is important to note that this means the calculation is based on optimal betting in accordance with the bankroll size and % Kelly. Therefore, if your optimal risk of ruin value is 13% for example, this doesn’t mean a 5% risk is worse! Obviously, the “optimal” risk of ruin for a blackjack playing method would be 0%, which of course is highly unlikely if you make any non-zero bet.

Count statistics will appear to the right of the data you entered. In the first column, the expected value (EV) for the count is listed. It is multiplied by 100 to show more accuracy since in most cases these values will be quite small. To the right of the EV numbers is the total standard deviation (SD) at each count. The third column reveals what the optimal bet is for the count (in units), based on the data you entered. Note that if you entered data for multiple hands, the optimal bet is for each of the X hands you selected. The last two columns show the EV (multiplied by 100) and SD for each count, based on what the optimal bet was calculated to be.

Under the count statistics, a number of figures are shown. Under the first column is listed the total frequency (in decimal form), which will only equal 1 if every possible count value was examined.

Under the **EV** column is **Total EV/ROx100** and **Total EV/RPx100**. The EV/RO figure represents the total expected value per round *observed*, whereas EV/RP is the total EV per round *played*, based on your frequencies and zero/non-zero bets. Each value is once again multiplied by 100 to show more accuracy. The same two statistics are visible under the optimal EV column, and represent total EV under optimal betting.

**Total SD/RO**, **Avg. SD/RO**, and **Avg. SD/RP** are listed under the **SD** column. The total SD per round observed is the sum of all count standard deviation values, and the average deviations are values that are used in most blackjack calculations. As with EV, average values are given for both rounds observed and rounds played. As well, the same three figures appear under the optimal SD column and represent SD under optimal betting.

**DI**, or desirability index, values are shown on the left portion of the screen. In general, the higher the number, the better the game. Consult Don Schlesinger’s “SCORE” article in *Blackjack Forum* for an informative analysis of game rankings based on relative DIs. The optimal DI is shown as well, and will always be greater than (or equal to) your DI value. Thanks to Don (founder of term “DI”, author of *Blackjack Attack*) for granting me permission of its use in **ACE**, as well as the “Trip Ruin Formula” which he published and I have made use of in the **Short-Term** window.

Under the DI figures, **ROR** and **Opt. ROR** values are listed. The ROR (Risk of Ruin) statistic is the probability of losing your entire bankroll based on the data you entered, and never altering your playing method or conditions. This is the *long-term *risk of ruin, which places no limit on the number of rounds played (infinite hours of play), and should not be confused with the *short-term* risk of ruin. Short-term ROR is calculated in the **Short-Term** window, is dependent on hours of play, and will be touched upon in section **V.**, below. The optimal ROR is the risk associated with betting optimally (see above for further explanation).

To the right of the preceding numbers are hourly results. Dependent upon the number of rounds observed per hour, **ACE** reveals approximate hourly EV, SD, and the estimated number of hours it will take for your bankroll to double (provided you aren’t ruined beforehand).

IV. __Optimal spreads__

Calculating optimal bet spreads, or ramping, can be calculated easily with **ACE** if you are under these constraints, and can’t use the given optimal bet sizes to the fullest. Suppose you have chosen to spread from 1-8 units, and will place your maximum bet (of 8 units) at TC = 5. To solve by using a trial-and-error method, change the value in the **% Kelly** box until the **Opt. Bet** for TC = 5 is 8 (approximately). You now know what fraction of the Kelly criterion will reveal your optimal spread. Now you can change the bet sizes for the remaining TC values by setting them equal to their respective optimal bet figures. Note that if you have chosen to “max out” at a TC lower than the highest TC entered, you must set each TC > 5 bet equal to 8 as well (in this example). It should also be mentioned that in order to reach a higher level of optimality you should “max out” only at the highest TC value entered, all else being equal. For example, with the same 1-8 unit spread and data for counts up to +9, you should make these ramp calculations by placing the 8 unit bet at TC = 9, and all other counts less than 8 units. Although this yields higher precision, it probably won’t be practical at the tables. Another method involves a few mathematical calculations:

The percentage of Kelly (in decimal form — make sure you multiply this by 100 before the

% Kelly

entry) whereby the optimal bet spread is obtained will be denoted by **x**.

Then the formula is: **x = (M)(Var)**

(B)(Adv)

where M = maximum bet (8 in the example above) at designated TC

B = bankroll size

Adv = advantage at designated TC (in decimal form)

Var = variance (SD²) at designated TC

If you are calculating the spread at a count where you play multiple hands, there is a small addition to the formula:

**x = (M)(Var)(1 + ((h-1)(CC)))**

(h)(B)(Adv)

where h = number of hands played at designated TC

CC = correlation coefficient at designated TC

You’ll see that once you’ve created your optimal spread, your risk of ruin will have changed. If you want to reproduce your original ROR, multiply your bankroll size by **x**, above (ignore the new optimal bet statistics that are produced). In order for you to obtain the original ROR and leave the optimal spread intact, your unit size changes.

Your new unit size will be: __old unit size__

x

V. __Short-term statistics__

By selecting **Short-Term Statistics** from **Action** on the menu bar, or by pressing Ctrl-S, a window appears which computes results dependent on short-term bankroll, hours observed, and hourly EV and SD figures. Short-term statistics are also referred to as trip statistics because they are generally calculated for the number of hours and size of bankroll one would experience on a blackjack trip of various lengths. For example, a serious player might take a week’s vacation to a gambling destination, is taking 100 units for 25 hours of play, and would like to know in advance what kind of chances he/she has of : losing the 100 units, winning more than 300 units, breaking even, etc. With **ACE**, you can quickly develop a short-term/trip strategy which accommodates your unique risk tolerance versus reward potential by changing any of the input variables. Leave the mouse pointer over any of the labels in the window and a short description of its function will appear.

The user is first prompted for the short-term bankroll size, in units. In most cases, this trip bankroll is only a fraction of the entire bankroll input from the main page, however you can enter any positive, non-zero number you wish. Click anywhere in the box to the right of “Bankroll” or press Alt-B and then enter your desired BR.

Hitting the Tab key, pressing Alt-H, or clicking in the box beside “# Hours” will allow input of the number of hours observed in the short-term. Enter any number greater than zero inside this box, for the number of hours you wish to explore statistics for. You might notice that if you set your short-term BR to the bankroll you input from the main window and use the hourly EV and SD from the main window, then as you increase the number of hours the short-term ROR will increase and eventually equal the long-term ROR, which makes perfect sense.

Press Alt-E, or click in the box beside “EV / Hour” to input the hourly expected value for your game conditions and method of play. If you’ve opened the **Short-Term Statistics** window after calculating figures from the main window, you’ll notice that this box will automatically be filled with the hourly EV. However, you can change this at any time, but should find it useful if you are conducting a short-term analysis of a playing method you’ve just calculated results for. You can enter any number here, including negative EVs. Below “EV / Hour” is “SD / Hour” and operates the same as the former box. Tab or Alt-S will set the cursor inside the box.

On the right half of the window are three optional calculations that are made if selected. To select any or all of them, click in the white boxes on the left. A check mark will appear and you will be prompted to enter data at this point. The first optional calculation is the probability that your win (Y) at the end of the short-term hours will be less than or equal to the value you enter in the box (in units). Below this is the probability that your win will be greater than or equal to the input value. Lastly, you can calculate the chance of your win being between two unit values. In these two boxes, you should enter the lower bound in the left-most box, but **ACE** will correct your input if you don’t anyhow. If you click in the white box again, the check mark will disappear as will the numbers you entered in the black boxes, this calculation will not be made once you hit **Calculate**, and will not be included in any printouts you make. Keep in mind that to analyze a loss, you should enter a negative sign (-) before the number. It is important to note that these three probability statistics do *not* take into account the chance that you might be ruined sometime within the chosen number of hours. They are calculated assuming that either; 1) you are never behind by an amount the size of your bankroll during the duration of the short-term, or 2) you obtain additional funds if you are ruined, so as to permit you to play until the required number of hours are reached. So for example, the probability of Y being less than or equal to -BR (the loss of your short-term BR) *at the end* of the chosen time period will be less than the calculated short-term ROR (short-term ROR is the chance of losing the BR at any time *during* the time period, whereas P(Y <= -BR) is the chance of being behind by at least BR *after* the designated time is reached).

After you have entered all of the required information and any of the optional fields you wish to examine, click on the button labelled **Calculate**, press Alt-C, or most easily the Enter key. A number of short-term statistics instantly appear, including the EV and SD calculated at the end of the short-term, the short-term risk of ruin (see previous paragraph for detailed explanation), and the probabilities for any limit-constrained field you have check marked. By changing any of the values you’ve entered, then pressing Enter, you can quickly see the effects of (for example) cutting your short-term BR in half, playing twice as long, and so on.

When you are finished with the **Short-Term Statistics** window, you can return to the main window by either closing the window, clicking on the “Back to Main” button, or pressing Alt-M or Esc. If you wish to print the short-term statistics you’ve generated, make sure that these results are visible and that you haven’t changed any of your input variables before going back to the main window. Then follow the steps outlined above to create a printout of the data. If you want to print the short-term stats only, and nothing from the main window, then you will be required to **Refresh** the main window first. If you re-enter the short-term stats window, you’ll notice that the black result numbers will not appear, and the “EV / Hour” and “SD / Hour” boxes will contain values transferred from the main window (blank if nothing was calculated from the main window).

As a final note, in the unlikely chance you encounter slight errors caused through calculation, these are due solely to rounding, they will be extremely small, and they will not significantly affect your results by any means. For example, if you choose to find P(Y <= 0) and P(Y >= 0) in the **Short-Term Statistics** window, there is a small chance that the sum of these results might not equal 100 (the correct sum). However, the difference will be slight and the integrity of **ACE** need not be in question as a result.

-CU

Last Update 04/05/05