User Comments

  • Stefan
    13.4.2016 18:58:10

    Watch my video.

  • Stefan
    13.4.2016 12:13:50

    Actually all Entry Criteria are sharable properties of the market or the market selection/s, and running bots with its activity influence all those values. Your question just shows that you do not understand what you asked.

  • Stefan
    12.4.2016 17:28:49

    Miro, this is actually quite funny because if I remember it correctly I added “Concurrent Execution” bot by your request when you tried to build some trading strategy.

    The main difference between those two bots is the “Execute Bots” bot just starts bots execution and then stops.

    The “Concurrent Execution” bot starts bots execution in its own execution pool, so your action bots are hidden, in the “Market Bots” view you can see running only your “Concurrent Execution” bot.

    That is one advantage, hiding action bots execution, so by canceling one bot, you can execution of all actions bots.

    Let’s say you want to create a spoofing bot, placing bets 2, 3, 4, 6 ticks from the best offered price. To construct such bot you would need to create four “Place Bet” bots, allowing place a bet in odds range and setting the PriceImprovement parameter.

    It is obvious that you would like spoof on back, and sometimes on lay side, but you do not need to create four versions for backing and four versions for laying. You will use bots execution from clicking on ladder feature, so you can name your “Place Bet” bot settings with general names, like “Place 2 ticks from”

    Finally you add bots to “Execute Bots” or “Concurrent Execution” bot parameter: BotNames, and name your spoofing bot, job done.

    Activating “User Ladder” and selecting your spoofing bot in “Bots to Execute” view, you can now execute your bot by clicking on ladder. Bot will take bet type, stake and odds as the maximal lay odds your bot will operate to, and opposite for back side.

    “Concurrent Execution” bot has internally implemented two features:

    If any of internally running bots will end, all the rest of bots is forced to end their execution as well.

    When bots are created for execution, only the first bot will take parameters from a click on ladder. Unfortunately this feature limits for now using the “Concurrent Execution” bot in scenarios similar to spoofing bot example I described above.

    I can remove this feature, what I have done in my tests, or can make it adjustable.

  • Stefan
    12.4.2016 11:40:41

    Unfortunately, there is no information whether a tournament is man's or woman's one, or singles or doubles one, in betfair api data, so you must filter it yourself manually by tournament name.

    In the Event Browser view, the tournament name is presented in Event Details column. You can filter or group by this column, so this way you can quicker navigate to matches you want to open.

    For doubles, there is / in Event name, right? For instance: Nedunchezhiyan/Nguyen v Chung/Yoo

    I believe you know that any data presented by bfexplorer in grid views can be sorted, grouped, filtered and searched. The filtering feature can be used for Event column by setting fallowing filter:

    Event Does not contain /

    What do you think the result will be?

    All double matches will be filtered out.

  • Stefan
    12.4.2016 10:14:44

    Yes, that is correct.

  • Stefan
    11.4.2016 21:42:46

    I have just released the latest version of bfexplorer adding PointsScore and PlayerServingIndex parameters to Tennis Bot.

    Do you know that you can add multi value for all score parameters? For instance PointsScore: 0 - 30;15 - 30

  • Stefan
    11.4.2016 18:47:39

    The best way to test any staking plan bot is to execute your strategy on greyhounds markets. A new race is started every 20 minutes or so.

    If you want to see bets placed by bot in Bot Executor, just double clicking on the market will open it to Bet Event view, so you can see your bets, and at what market state your bot finished on the market, if you had set StopMarketMonitoring parameter, the market will be set to Inactive so prices will not be updated.

  • Stefan
    11.4.2016 11:55:07

    That means that you are applying a staking plan to your betting, it means that you must use the “Execute Till Target Profit” bot to execute your tennis bot.

    On the other hand this staking strategy plan requires execution of matches step by step only. A new bet is placed (bot executed) only after previous bet result is known.

    If you bet or trade at the same time on many markets, then you can monitor your bet position on these markets by My Bet Position tool/view, and you can close bet position on all markets when necessary.

  • Stefan
    11.4.2016 11:29:01

    This seems to be a very good idea, so I will develop a bot in following days. Save the spreadsheet without text player’s names and scores, so it can be used as template and post it to me by email.

  • Stefan
    10.4.2016 19:05:29

    It would be better if you prepare general formula to calculate number of breaks, or better to say difference in breaks. Anytime this number changes it is either a newer player break, or re-break, right?

  • Stefan
    10.4.2016 15:04:47

    I will change the parameter MaximumOddsDifference description to:

    “The maximum odds difference (between best offer lay odds and best offered back odds, in ticks) to place your bet.”

    There are more services for market data monitoring: “Open Markets” service, “Bot Executor” service, and “Bot Executor for Selections” service.

    For security reasons it is not possible to monitor the same market in different services, only in one of them. Therefore double-clicking on a market in the “Bot Executor” view, will remove the market from the monitoring queue of the “Bot Executor” service, and the market is reopened in the “Open Markets” service.

    If there is set Monitored flag set, then “Bot Executor” started the market monitoring, and similar if flags “Matched Bets” or “Unmatched Bets” is set, you can be sure that bot placed bets. “Profit Balance” is recalculated if there are matched bets on the market, in some cases bot can place a bet, and as the following refresh by default occurs in 1 second, the market can be suspended, so profit is not recalculated. In the Profit column you will see a number after a market is closed, and your strategy uses some kind of staking plan bot.

    I have got scripts, you can run to recalculate Profit for closed markets from “Open Markets” service.

    “Bot Executor” executor monitors markets only when bot/s is/are running on the market. Immediately after bot ends its execution and StopMarketMonitoring parameter is set, the market is reopen to “Open Markets” service.

    Frankly to say all that could be learnt just watching how “Bot Executor” works. I already mentioned the importance of bot testing in the practice mode, and with manual execution. This way you can test any bot parameter behavior.

  • Stefan
    10.4.2016 13:00:46

    You can use Entry Criteria for both bots in your bot solution, if that makes sense. I think what you need is to set Entry Criteria only for your staking plan bot. If you do so then set correctly ExecuteOnSelection parameter, because that parameter will define which selection values you can and to Entry Criteria.

    When you select any bot parameter, a description is displayed as well, for the parameter: MaximumOddsDifference, you can read the following description: The minimum odds difference to place your bet.

    How can be calculated odds difference?

  • Stefan
    10.4.2016 2:14:49

    Please read the following article:

    Case Study 13 - Loading up markets each day automatically


    I do not understand the following ..

    "but having a bid/offer column would mean I could see at an instance what the price is. Clicking through hundreds of matches would be laborious and time-consuming..."

    Why you should click through through hundreds of matches?

  • Stefan
    9.4.2016 16:26:15

    Maybe I should rephrase my sentence:

    “Unfortunately, it seems that checking market status is time limited, after couple hours betfair does not return any results.”


    “After a betfair market is closed, the market data (retrievable through betfair api) are valid limited time only. “

    So your problem could be linked to this fact, your staking plan bot, had been trying to load market status, but as the market data were not valid anymore, the market was left in block array, and if there is no block available for a bet allocation, your staking plan bot stops placing bets.

    I tested this fact today morning, having a market which was closed couple days ago, and the market closed today around 5 hours ago.

    For the first market betfair api returns no data, for the second one I can still retrieve valid market data, the information about won and lost selections your staking plan bot needs.

    So my question is what was the time from the last bot execution, till the next bot execution time?


    You do not have to check validity of markets manually. If you set market Entry Criteria, and the parameter: EvaluateEntryCriteriaOnlyOnce either for your staking plan bot or for your action bot then first time when the bot evaluates these criteria, are they are not met, the market is removed, so your strategy will not be executed on such market.

    When executing your bot automatically using “Bot Executor” just uncheck “Open only selected” option, so all markets will be loaded, markets for couple days maybe, this is actually important to the fact we discussed above, not having to big time span between next iteration of your staking plan bot.

    In the “Bot Executor” view, you can show hidden columns “Matched Bets” and “Unmatched Bets”, and close/hide columns “In-play”, “Profit Balance”. You are from Australia, so these markets are not turned at in-play for you.

    If the column Monitored is checked, you know that for this market was executed your bot, and if “Matched Bets” and “Unmatched Bets” are checked then you definitely know that bets were placed on this market.

    Selecting the market and double clicking on it, will open the market to “Bet Event” view, so you can check market data, and bets placed on this market.

    “Bot Executor” stops market monitoring automatically when there is no running bot on the monitored market.

    If you set your action bot parameter StopMarketMonitoring to True (checked), then “Bot Executor” will reopen such market to “Bet Event” view, so you can check what bet was placed and what are current market prices.

  • Stefan
    9.4.2016 14:53:46

    I know that my English is very poor, so please read the following text and let me know if that make sense:

    “Unfortunately, it seems that checking market status is time limited, after couple hours betfair does not return any results.”

    Yes, your staking bot automatically checks the status of previous markets, when your bot executes on a new market.

  • Stefan
    9.4.2016 12:46:19

    Yes, that is the betfair api behavior, the serving flag is not changed immediately after ending game. If you want to proceed with players break identification, then you should suggest how to calculate correct break numbers judged from games score in a set.

    Unfortunately, it seems that betfair api is/was not designed by developers who make data model and set of api methods the way, we betfair applications developers would need and use.

  • Stefan
    9.4.2016 12:39:31

    I think I identified potential problem with your staking plan bot. The bot checks if previous markets are already settled, by calling betfair api method on the market. If the market is closed it means that all bets were settled and is known winning selection. Unfortunately, it seems that checking market status is time limited, after couple hours betfair does not return any results.

    I will prepare a script you will execute manually at the end of the betting session to check market status for remaining markets.

  • Stefan
    9.4.2016 11:31:12


    No, you do not have to delete/remove your bot setting from My Bots to Execute. Actually it is not a bot instance in “My Bots to Execute” panel/view, but as I said just bot parameter settings. When you click on Execute toolbar button, or bot is executed by “Bot Executor”, then a new bot instance is created and bot settings are set to this bot instance, so bot will behave according to the bot settings.

    Your custom bot creates internally a market block array which contains all markets your staking plan executing your bets on. For now the only way how to reset your staking plan strategy is to restart bfexplorer.


    There is no need to set any time for an action bot, nor your staking plan bot, as the staking plan bot is automatically executed by “Bot Executor” at set time. Of course when you execute your staking plan manually, and you want your action bot to be executed at set time, then you need to set ExecuteOnTime parameter.


    “Open Markets” view shows all open markets, you open with some intention, right? So when you do not need a market to be monitored anymore you simply close it from “Bet Event” view, or from “Bet Event Trader” view depending of which view you prefer.

    Why you can close a market from “Bet Event/Bet Event Trader” view? Well, because as I said you open your market with some intention: to place a bet or to trade when some conditions are met, to make some research, monitoring market prices movements, and so on.

    So decision to close a market depends on basically on market prices, and that could be seen in “Bet Event/Bet Event Trader” view only.

    Of course, “Open Markets” view offers its own features as well, you can filter, sort, or group markets, and you can switch “Open Markets” view to card view interface where you can see all market selections prices and place bets without switching to “Bet Event/Bet Event Trader” view.

    Bfexplorer Console offers script execution tool, which can be used to close all markets as well.

    Just type:


    and click on Execute toolbar button in the Bfexplorer Console view.

    Read about Bfexplorer Console, and if you have got some idea for useful script then post it here on forum.

  • Stefan
    8.4.2016 17:09:01

    Your bot strategy consists from two bots:

    “Execute Block Staking Plan” what is custom bot I built for you implementing your staking plan.

    The action bot you enter to your staking plan bot, setting the parameter BotName.

    This bot implementation of yours actually allows using any bfexplorer bot to place your bets. In your specification you wanted to place a bet, but this way can actually use a trading bot as well, if that makes sense to use in your staking strategy.

    Because you will run your strategy automatically on all football markets of your choice utilizing Bot Executor tool, it is a good practice to test your action bot behavior first manually executing it on selected market in Bet Event view, so you will see how your action will work.

    If you set Entry Criteria or allowed odds range, or any other parameter influencing your action bot behavior, then you should test the action bot on martket selections which fulfils such criteria, and also on market selections on which your action bot should not place a bet, just to check if everything works as you intended.

  • Stefan
    8.4.2016 16:49:08

    I think in any betfair strategy first you need to fully understand what a profitable factor in your strategy is, and how to avoid big loses.

    Keep in mind that trading in practice mode can show totally different results than trading for real money, as any entered position will have some influence on trading market.

    I think you test your strategies sitting to your computer and running them in Bet Event Trader, so you can actually see how your bots open bet positions and what is the current profit on the market (min/max profit level).

    For me, in first stages of bot strategy testing is actually not important the maximal amount of profit, but always only if a strategy can generate any profit, even 0.1 Euro profit is good.