User Comments

  • Stefan
    24.8.2019 9:17:15

    I do not think Bet Angel can execute your fourth strategy:

    Championship: Back Underdog when odds are 3.0 - 3.5

    Because similar like my “Place Bet” bot, when you sort selections, all selections are included. So to get underdog, the naïve approach is to sort selections by Last Traded Price, and the second item in sorted list is underdog, but as all selections are taken, The Draw selection could be second one as well, therefore you need custom script like I did here:


    I would suggest you to post your request to market feeder as well. They have similar policy like me, for subscribers they build one simple trigger for free, otherwise you must pay for it.

    I have some case studies for market feeder as well:

    And bfexplorer could execute any strategy market feeder users have problems with.

    I just wonder if market feeder can manage to execute your strategy simpler way. Your automation script for skilled developer is no problem at all, using Bfexplorer BOT SDK.

    Just for inspiration, your FootballExecuteOnUnderdogBotTrigger.fsx uses: ExecuteActionBotOnSelection to execute your preset strategy, entered by BotName parameter on selection the bot trigger script evaluate.

    As you can setup all your strategies by “Place Bet” bot, your strategy requires choosing exact named bot strategy for exact league.

    The league is stored in the property of BetEvent object:


    You can get it from Market object. So five lines of code in F# (have a look at match keyword) will give you the name of strategy that should be executed, and in your bot trigger code such bot strategy can be executed by:

    TriggerResult.ExecuteMyActionBotOnSelectionWithParametersAndContinueToExecute (botName, mySelection, None, false)


  • Stefan
    19.8.2019 10:15:59

    It is good you posted your request to betangel forum. We will see what solution will be offered:

    Automation : Football Pre-Game Strategy

  • Stefan
    18.8.2019 14:15:41

    Nick, what you do is expert level for betfair trader, and common users can use just built-in bots and set automation/so create their betting or trading strategies just by setting bot parameters, so without programming.

    You are maybe that Nick, who used bfexplorer back in 2007 when I started developing bfexplorer. A lot of changed from that time, a lot of apps had ended and new one comes, and I believe you used most of betfair apps on the market up to now.

    Even those apps, which are labeled user friendly for automation, are actually not so user friendly when specific task must be executed, so not just task prebuilt in rules settings dialogs like market feeder or betangel use, and forums of these betfair apps just confirm what I say because it is full of simple questions users asked, well at least from my point of view: Study   

    Very good example is this one:

    Because it shows how bfexplorer app manages strategy automation by comparing to other betfair apps, for which BDP team from Australia made tutorials:

    And my tutorial:  

    Actually, your request for strategy automation is similar to one presented by BDP Australia. You have got ML model that generates those coefficients for your prefer football leagues, maybe similar like FiveThirtyEight

    And you need to automate your betting strategy, so by league you run preset strategy when your coefficient met set criteria.

    This automation task has again nothing with betfair, it is just programming task to conduct result of one app as the input to the other app, and it is task for software developer or just skilled user.

    You must realize what you want to do and how, and to understand that you must learn by doing.

    Just a hint from my understanding of your strategy automation, build your custom bot to do really just specific task, so:

    Load you data, and tagged them by league name.

    Your custom build trigger will identify league of the match/market.

    From league name you find your coefficient and evaluate it whether is in allowed range. If it is in allowed range, you execute preset league strategy, created from pre built bfexplorer bots.

    This way you will get bot trigger which will do just this specific task, the rest is done by bfexplorer bots, so this way you can simply switch from just placing a bet, like you do with “Place Bet” bot strategy settings to trading strategy when you like, using “Place Bet and Close Selection Bet Position” bot settings.

  • Stefan
    18.8.2019 11:25:14

    Nick, I hope you will finally manage to do it, as frankly to say what you ask is just common work of software developer, when he uses external libraries/assemblies and build a new one that will be used by hosting application. The hosting application is in this case the bfexplorer app.

    ** Some words for non programmer/software developers.

    What is IDE? Basically it is editor allowing to write code and build that code to (executable) assembly to run it and debug. IDE – Integrated Development Environment like Visual Studio, or Visual Code, both from Microsoft, available for free in Visual Studio Community version.

    So you managed to build the bot trigger assembly, if you want to execute and debug this assembly then it must be loaded by hosting application and its infrastructure, so the simplest way is to set Build Output path of your bot assembly to:

    C:\Program Files (x86)\BeloSoft\Bfexplorer

    Yes, to the folder where bfexplorer app is installed to. As this is the application folder, a common windows user has no writable access to. You must run your IDE as administrator.

    How your code, so your bot trigger assembly can be executed in the first, and how the assembly can be loaded to the bfexplorer app domain, so you would be able to debug your bot code?

    Your bot trigger assembly is .dll file, so file that cannot be executed directly. To execute it/load it to bfexplorer app domain, you simply switch Debug Start Action to Start external program:

    C:\Program Files (x86)\BeloSoft\Bfexplorer\Bfexplorer.exe

    Nick, what I have wrote up to now is just common way of doing work, when you need to execute and debug assembly with hosting application, so it is not specific task just for Bfexplorer BOT SDK. If you are software developer you may have done that many times.

    ** The following task is specific for bfexplorer app.

    Ok, we have got bot trigger assembly and we were able to run bfexplorer app from our IDE. In my post about Bfexplorer BOT SDK, you could read how to set Debug \ Start Options \ Command line arguments, so when executing bfexplorer from IDE it automatically logins to betfair and switch Practice Mode on, of course when debugging bot we do not want to place real bets on betfair, right?

    Bfexplorer app does not know anything about your bot trigger assembly for now, simply because it was not yet loaded to app domain. It is quite different with bot assemblies, like this one:

    Where all bots declared by this bot assembly:

    Are loaded by bfexplorer automatically, all what such bot assembly must fulfill is implement IBotCreator interface, and the name of assembly must end with .Bot

    Your bot assembly is compiled bot trigger, so bfexplorer app loads such trigger using "Execute Trigger Bot", and I actually showed that in my video above. In this case you do not use bot trigger code, so .fsx file, but compiled .dll assembly file, so just swith to .dll and browse your file in:

    C:\Program Files (x86)\BeloSoft\Bfexplorer

    When setting the bot parameter: TriggerFilePtahName

    More information about Bfexplorer BOT SDK can be found in my post on forum, just search: SDK

    SDK means Software Development Kit.

  • Stefan
    17.8.2019 11:13:28

    Ok, such use case scenario can be automated. Custom built bot can read csv file and use this data as trigger value for bet placement triggering.  What you already have set with Place Bet bot setting, so those four bot strategy settings, will be used by your custom trigger bot. If you are used to bet/trade on those 4 top leagues only, the bot can do as well market filtering, so your strategy can really run fully automated.

    In my video you could see that in My Favourite Events, I have got: Football - Top Leagues

    You maybe create such favourite event, if not here are parameters:

    Name: Football - Top Leagues

    Event type: Soccer

    Market types: MATCH_ODDS

    With text: "English Premier League" OR "Ligue 1" OR "Bundesliga 1" OR "La Liga" OR "Serie A"

    Country/s: GB;FR;ES;IT;DE

    Then when you click on, in the Event Browser are loaded all Match Odds markets (matches) for top European leagues.

    ** Bot programming

    So this F# script code was good test for you that you are not able to program. Couple hints:

    It is F# script file, and as script file can be execute directly in IDE, it contains all information needed to link all required references, so IDE can build executable code from it.

    Google F# script, and derictives: #I, #r

    Actually I left there: //(* and //*)

    So when you uncomment




    Then when you rename file from .fsx to .fs you will get F# source code file you can add to F# .net project, add references from (#I) folder, refrences are those 4 assemblies (files) in #r directives, and you are done. Click build and you will get bot assembly “Execute Trigger Bot”   can use directly. Your project must be built for .net 4.7.2

    Just try your skills, if you manage that, then using Bfexplorer BOT SDK you can build your custom bot yourself.

  • Stefan
    16.8.2019 14:50:52

    I have prepared bot trigger script that can be used to execute your underdog strategy.

    You can use this script to evaluate your programming skills:


    Any script executed by bfexplorer is first compiled to .net assembly, and then is loaded to app domain,  you can see it in my video that this process takes up to 20 seconds, therefore it is better to use bot assembly directly than bot script, so if you manage to build from this script, the .net assembly, then you can do your automation bot as well.

  • Stefan
    16.8.2019 13:44:36

    First, you need to declare from where you will take your value per league, because you say:

    “Let's say I have an arbitrary constant value that I set for each league.”

    So the wording “I set”, suggest that your process of getting this value is not fully automated, you set it yourself.

    It is not taken from your ML model for instance, or from other application, or downloaded from some api.

    If you set this value manually, then your betting process is not fully automated, and it does not make sense to automate such process.

  • Stefan
    15.8.2019 9:21:36

    Yes, custom built bot can read value from any available resource.

    Have a look at here:

    Where bots reads additional information from this web site:

    You can create such bot trigger yourself if you are able to program. Here are some examples of bot script code:

    You have to familiarize yourself with Bfexplorer BOT SDK

    Of course if you cannot do so, then for my subscribers I offer free service for simple bot scripts (that require up to 1 hour of my time). Unfortunately I do not think in your case I can manage developing such bot script in 1 hour.

  • Stefan
    14.8.2019 18:11:01

    Keep in mind that locale setting on my computer is not GB, so floating point values in my country are with comma: 1,5 in GB you must type 1.5, mainly when you enter parameter values in Entry Criteria, as here it is just text value.

    In bot setting where numbers are expected the comma or dot is entered automatically.  

  • Stefan
    14.8.2019 18:02:25

    For all your football strategies you can use Place Bet bot, the main settings you need to set are:

    BetType: Back, MinimumOdds and MaximumOdds, SortSelectionBy (depending on used strategy: Do Not Sort or Last Price Traded), EvaluateEntryCriteriaOnlyOnce, and of course Entry Criteria: LastPriceTraded is between x and y.

    What is really critical for all your strategies is this Entry Criteria, and EvaluateEntryCriteriaOnlyOnce set to True (checked).

    If you set this parameters, then at the moment of bot/strategy execution on evaluated selection are checked Entry Criteria, only once, and if this criteria are not valid, your bot will not continue its execution so no bet will be placed.

    What would happen if you would forgot to enter those two parameters?

    Well, the bot would be executed on the market and as you set MinimumOdds and MaximumOdds as well, the bet is placed only when odds would become valid for evaluated selection.

    Your last strategy is a little bit tricky, well for testing you can try with similar settings like I created for La Liga, and set the parameter: ExecuteOnSelection to 2, but these settings does not guarantee evaluation of home or away teams only as underdog when sorting selections by Last Price Traded can be The Draw selection.

    I can create trigger script to execute this type of strategy.

    Before using your bot/strategy settings, test them on different markets, to confirm that back bet is placed only when all criteria are met and on the correct selection/team.

    Then you can use Strategy / Bot Executor tool, and execute your strategies on different leagues. I showed that in my video tutorial, but have a look at as well on how to use Event Browser tool.

    When you run your strategies in Bot Executor, markets are automatically loaded and open at set time, you do have to leave them open in Bet Event, so click on Open Markets and close all of them.

  • Stefan
    8.8.2019 13:15:30

    BDP team from Australia made great work and added my bfexplorer app to list of third party tools suitable for running fully automated strategies on betfair exchange:

    Just to add to the list of mentioned features, web browser view is not just browsing my web site.

    The web browser inside the app allows integration of any web site offering additional data for trading, or just data visualization, please have a look at here:

    Analyzing betfair data to trigger trading on horse racing markets.

    So how does it work?

    As web browser is integrated in bfexplorer app, web browser “knows” which market you have got open in Bet Event view, and which selection is active.

    Then there is simply rule for parameter naming, read article above:

    {eventId} {marketId} {nMarketId} {selectionId}

    So if you have got web site which offers data to betfair market ids directly then you can simply replace that parameters in url. Your web site works with betfair ids directly, and in fact you offer additional information for bettors or traders, so you could as well create such easy accessible web page, and bfexplorer user could have such information in one click.

    Another way of using this browser is with bot sdk code, for web site where there is no direct betfair ids information on web site, so only one way to automate web page from third party provider is to make short program to “translate” available information to exact web page url, I did so for instance for sofascore that brings additional statistics and live stream through bet365 for tennis matches (of course you must have account with bet365 to watch live tv stream).

    Betfair Tennis Trading Automation

  • Stefan
    6.8.2019 12:38:16

    Yes, it is possible. When you start your strategy in bot executor you have got option: Restart the automation at time, and you can define that time by parameter: Restart time 12:00, for instance.

    This option is available only when you execute your strategy on your favourite event (added to My Favourites Events). If you bet/trade on horse racing markets I believe you already added such favourite event to your list.

    So not when you select just couple markets, it means as well that your strategy must make/ by set rules/criteria on which markets it will run and on which not, or your strategy is selection based.

    Please have a look at on attached video, go to 1:27 minute, where I show what is described here. If you do not have such feature in your bfexplorer app, then just install the latest version of bfexplorer app.

  • Stefan
    3.8.2019 20:27:21

    Today's test:

  • Stefan
    3.8.2019 7:10:32

    I already tried to implement saving and loading of grid conditional formatting but failed to did so, back in 2015. Please read the following post:

    My reply in the comment: Saving a ladder status is not yet implemented. I am still working on it and it is not so easy because grid control does not support loading and saving custom formatting in the use case I have got in my ladder implementation.

    Be aware of the fact that bfexplorer by default creates some conditional formatting, so if you clear some of this rules you will lost settings for instance for to back/to lay data bar, as those two rules are set to share maximal offered volume to show realistic WOM.

    I can try to do so again.

    You can save different application layouts only, have a look at here:

    May I see your conditional formatting of grids?

    What I can suggest you is not to exit bfexplorer app, and hibernate your computer not shutting it down, then when you start your computer again bfexplorer app will be running, to force re-login, when bfexplorer had lost login session to betfair server, just click on Reload button (located bottom right in the application status bar).

  • Stefan
    1.8.2019 12:07:01

    My reply to betfair BDP team:

    Yes, understanding of UX can be very difficult, but in bfexplorer actually all necessary steps required to run automation strategy are very simple, half of steps you do when you open bet event market for manual betting or trading.

    When you open bfexplorer for the first time, there are no My Favorite Events added, so you open a bet even clicking on one of items in the Events list.

    In the Event Browser are displayed all events you click on, so for instance if you clicked on Upcoming in-play events, then in Event Browser are all active bet events on betfair which are open at in-play as well.

    Now big plus icon is in Event Browser toolbar, when you click on in, and as you are in the context in events, what else you can add to events, well yes only My Favourite Event. You bet on greyhounds so I believe you added there Greyhounds Racing, right? Or you did not mange to do anything.

     I would like to hear with what you have got main problems when dealing with bfexplorer user experience (UX).

    Now when you just read the screen, you can see such plus icons, or similar looking icons like reload, start, and stop, and so on.

    Why are the same icons on many places in bfexplorer app, and why are they the same, well because they represent the same action, like add, start, stop…

    In My Strategy to Execute, is small plus icon, and I think  I do not have to repeat again what was said about plus icon, in this context when clicking on the toolbar button, a new strategy is added.

    And it is similar to execute automated strategy, so similarly like when you open bet even market, you can execute strategy in the same Event Browser view, just by clicking on Execute in Strategy Executor.

    So all steps:

    I thought you watch my video and will try to repeat what you see in that tutorial:

    Then you would ask, I cannot find “Greyhound Racing Betfair ML Ratings Trigger” from your video, and then I would reply, this strategy is available only for subscribers who paid for development of the strategy, but as in this case the strategy is from public domain I added it to “Community Bots” so with the latest release of bfexplorer app, you could find it there. This happened next day after I posted the above article.

    So from UX point of view, user acts in context of actions displayed on user interface, in this case in different views.

    So creating a strategy is just click on add button, then filling in parameters that are described in description view, and actually all bot strategies have default parameters so just by click on Save button user adds new strategy which can be executed, and in practice mode user can watch how the bot behaves so from that user can understand what actually strategy does, for instance:

    “Place Bet and Close Selection Bet Position”

    What such named strategy can do?

    Well yes, place bet, and then close bet position.

    Naming convention is general, I hope it is understandable; ok others could call it green up, or tick offset and so on, but the point here is that using different parameter settings influence strategy/bot behavior, and this way are built all bfexplorer bots.

    Your bot:

    “Greyhound Racing Betfair ML Ratings Trigger”

    What Mr. Smith could understand from such name, well maybe a word trigger, so bot/strategy triggers something?

    As bfexplorer app is extendable, anyone familiar with any .net programming language can build its own strategy, and such strategy is added to the application when app is starting up.

    Therefore I thought that someone from your team will take some time and try to implement your ML strategy using

    I can create simplified version or share my code.

    It is like you do when you code VBA in Excel, but in this case strategy is directly integrated to bfexplorer app, and so it can be really executed autonomously in 24/7 mode, none from your third party tutorials can do that:

    But bfexplorer can do so.

    I thought that your tutorials are aimed to community of data scientists, who are familiar in different programming languages like R or Python, or just use ML tools without programming as Microsoft Azure Machine learning tools, and so.

    If you think Excel automation is the way to go, then go through betfair app vendors forums, where people have big problems to automate their betfair strategies using Excel formulas and/or VBA, so it is quite impossible for common people to do anything reasonable without assistance.

    So what option have data scientist build his ML/AI model for couple months?

    Learn some third party tool, and make automation which is actually not so good automation, and he must reload markets manually or copy selections to Excel sheet.     

    Learn betfair api and spend another 2 months building his betfair bot app. Or of course he can hire someone on freelancer web sites. Or he can use my Bfexplorer BOT SDK and and program just trigger bot, as the rest will be done by bfexplorer app.

  • Stefan
    25.7.2019 18:32:16

    What is actually tick offset?

    You place a bet and when bet is fully matched the opposite bet is automatically placed to hedge your bet position in profit. Alternatively it can be set to place your hedge bet when market goes against your bet, so you close your bet position in loss.

    Any automation, so any bots can be found in view My Bots to Execute, of course if you did not add there any bot, there is empty list there.

    To add your bot, click on toolbar button in the “My Bots to Execute” view “Add a new bot.”

    As mentioned above the tick offset automation can be named the other way like: “Place bet and close selection bet position”, I use such naming convention for bots because it explains the bot activity as well.

    As you can see in my short video I have got quite a lot of different bot settings added in “My Bots to Execute” view. I hope you understand that one bot can be preconfigured/setup by its parameters, to behave differently. Therefore I would suggest using your own naming rules to keep your list of bot settings understandable.

    If you want to replicated/clone other bot settings, just select you bot, and click on the toolbar popup menu item of “Add bot” toolbar named Clone.

    Bots are usually used in fully automated strategies using Bot Executor tool, in this case you will manually start your bot by clicking on ladder, and therefore you need to activate “Use Ladder” option in the “My Bots to Execute” toolbar, in this context it means: Use a ladder click to execute your bot.

    What makes the trading bot “Place Bet and Close Selection Bet Position” act like tick offset? In the bot parameters it is OfferMyBet set to True (checked), and the parameter PlaceBetInAllowedOddsRange set to False (unchecked).

    If you forget to set those parameters and you would use it with Use Ladder activation mode, the bot will be started but depending on what odds you clicked on ladder the Minimum/MaximumOdds parameters will be adjusted, so bot will wait till allowed odds range is traded and only then starts placing opening bet.

    Keep in mind as well that in “Use Ladder” mode, the Stake and BetType parameter of your bot is adjusted from current settings in the main toolbar, therefore it is really good practice to use right naming convention of your bot settings. For instance for fully automated trading you would create settings of “Place bet and close selection bet position” bot, and name it:

    Back for 2 ticks profit

    Lay for 1 ticks profit or 3 ticks loss

    But for general use it is better to use naming like in this case “Tick Offset” (but of course with appropriate bot settings set), or Trade 2 ticks profit, so from the bot setting name it is clear that bot will be used in “Use Ladder” mode.

    Here is list of similar posts about Tick Offset

  • Stefan
    5.7.2019 9:36:38

    Click on the menu item:

    View / Workspaces / Add

    And add your workspace. You can create as many of workspaces you want to, for instance I have got three workspaces: Bot, Trading, and Tennis Trading.

    You can switch off not used views and rearrange them, resize them and so on. For trading you can set ladders as the main user interface for Bet Event view, for Bot (or whatever you name it yourself) just market grid view, and so on.

    Having more than one workspace you can switch between them, it is automatically added in My Workspaces menu, where you can choose which workspace bfexplorer will use by default.

    Once a workspace is created you can Save it, I mean in already added workspace if you make some changes, you need to save it, it is not done automatically during bfexplorer app closing.   

    Of course, selected workspace is automatically loaded during bfexplorer app starting.

    For more details please read this article and watch video:

    You ask this after how many years of using bfexplorer app? Well that is really sad, as it seems you never clicked on any menu item, and as any application have a menu, the bfexploer have the one as well, the five menu groups offering all application actions/operations, so:

    Application, Market, View, Tools, Help

  • Stefan
    4.7.2019 16:51:52

    Wait for couple matches, and if I am right and problems are just seldom json data type mismatch on some matches then the chance is that you will be able to use old version again.

    If not and betfair actually fixed that problem and json data are in new format for all matches, then you will have to update to the latest version of bfexplorer, as I had to change code of football data provider to make it work.

    What so difficult to understand?

  • Stefan
    4.7.2019 16:26:46

    Watch this video, as I said with the latest version of bfexplorer all works fine.

    I do not remember exact date but month or two ago during one of my live session on trading football markets I noticed that some matches were not updated further investigation showed that some of json data were not the same type as football live score provider required, so update of match data failed. I fixed that and released.

    You are saying that what worked yesterday does not work today, so the mismatch of data in json is just temporally, not occurring on all matches. I did not trade football those days so I hardly to say, but my version of bfexplorer works without problems.

    Backup your old version as mentioned, or just use the latest version, the chance is that problem is really only in those mismatch of json data, so your old version can start working later, if you do not want to update to the latest version.

    I would really suggest using common sense, as when program works for days, and then suddenly stops working, it is not because something worn out, so the problem must be out of program, in data the program uses.

  • Stefan
    4.7.2019 13:31:41

    Football Bot needs valid feed of match score data, and I have just checked that on one football match at in-play just executing the football bot, bot must report the match time and score. Does your bot report the match data?

    I always work with latest version of bfexplrer only, so if your bot setting is compatible with this version of Football Bot, then just save bot settings end send the file by email.