Quick Tips
Need a quick answer and have no time for browsing through trigger examples? Quick Tips will help you to resolve simple problems. Click on the link with a question to read an answer underneath.- How to make a trigger start 45 sec after or before the off?
- After I started MF Pro and opened 'Triggers', I can't see the triggers I added last time
- How do I stop it betting when my balance reaches certain level?
- My triggers are not working. What to do?
- How to calculate the amount I want to back to win £100?
- How can I apply staking plans?
- How can I cancel a trigger if another trigger has worked?
- How do I compare the current price with that 1 hour ago?
- How to bet a percent of the total bank
- How to bet on a selection based on its position in the list, and not its price
- How to make a trigger bet the default betting amounts specified for the market
- How to check or uncheck all selections in the market
- How to bet to a fixed liability/payout
- How to bet on the selection with the specific BetFair order
- How to cancel all unmatched bets if at least one was matched
- How to apply triggers to specific selections
- How to cancel unmatched bets and post them at the best price before the start of the event
- How to Dutch Selections Chosen By Specific Conditions
- How to bet in races with a specific number of runners?
- How to stop betting after x wins/losses in a row?
- How to back at lay odds and lay at back odds?
- How to eliminate the loss on possible winners In-Play?
- How to apply triggers to specific markets
- How to apply various stop-loss methods
- How to determine whether the previous event affected by a trigger has finished
- How to apply the 'Fill or kill' rule?
- Betting on selections whose IDs are given in Excel
Just add one of the following conditions to your trigger:
To start before the off:
Minutes Before the Off is equal or less than 0.75
To start after the off:
Minutes Since the Off is equal or greater than 0.75
Triggers are loaded into the software after the event tree and "My Markets" are loaded. The order of loading is crucial, because if any of triggers refer to a specific market that is not loaded yet, they won't be able to operate correctly.
Therefore you just need to wait till both event tree and "My Markets" list get loaded. Then press the "Triggers" button one more time.
There are two ways of doing that.
1. Edit "Betting Options", "Banking":
Stop automated betting when the total bank has reached ...
2. Add the following condition to your triggers:
Trigger Expression total_funds is equal or greater than [insert amount here]
Note: if you are trading in test Mode, the condition must refer to a different variable:
Trigger Expression test_funds is equal or greater than [insert amount here]
First of all, check if you turned the triggered betting on. If the bulb button next to "Triggers" looks like this:
, then you need to turn them on by pressing the bulb and making it look green.
Also, open your triggers and check if they are active. If a trigger or trigger block is not active its body is painted with gray colour. The "Execute" field of the trigger must not be set to "never". There is a quick way to check which triggers are currently active. Just click on the bar in the bottom of the application:

It will open a window where you will see all active triggers to the right.
If this does not help either, analyze trigger logs carefully. You can access trigger logs by clicking on the trigger row in the aforesaid window. Trigger logs must contain all the information you need to find out why your triggers are not being executed.
Also, check this option: "No triggering till ... mins before the event's start". Make sure it doesn't block your triggers.
Amount: 100/(back_price-1)
Similarly, if you want to lay to a liability of £100, use the following formula:
Amount: 100/(lay_price-1)
Using the "Win/Lose Trigger Variables" you can utilise various staking plans in MF Pro's triggers.
Here are several examples.
1. Backing or laying £10 and recouping losses in the next bets. Then returning to the original bet size as soon as the bet won.
Amount: IF(last_lost=0, 10, 10+last_lost)
2. Laying to the liability of £10 and recouping losses in the next bets. Then returning to the original bet size as soon as the bet won.
Amount: IF(last_lost=0, 10/(lay_price-1), 10/(lay_price-1)+last_lost)
3. Backing £10, and if the bet lost, adding £10 to every next bet until it wins, then reverting to the original bet size. For example, 10, 20, 30, 40, etc.
Amount: IF(last_lost=0, 10, 10+hist_1_backa)
For laying:
Amount: IF(last_lost=0, 10, 10+hist_1_laya)
4. Laying £10 and doubling bet size after every 2 losing events, till the bet wins. Then stopping. Example: 10, 10, 20, 20, 40, 40
Amount: IF(last_won=0, 10, IF(AND(last_lost>0, losses%2=0), hist_1_laya*2, hist_1_laya))
Condition to add to the trigger:
Total Won Amount is equal or less than 0
5. Add winnings from a back bet to the next bet size. Reset the bet amount to the original value if a bet loses. Example: 10@1.4 (won), 14@2.2 (won), 16.8@4.5 (lost), 10
Amount: IF(last_won>0, 10 + hist_1_pl, 10)
You can modify this to stop after a certain number of consecutive wins. For example, to reset the bet size to the initial £10 after 3 wins in a row, change the "Amount" field to:
Amount: IF(AND(last_won>0, wins<3), 10 + hist_1_pl, 10)
6. Backing to the profit of £10, then if the bet lost recouping the losses plus 50% of the initial profit target. I.e.: £25@1.4 (lost), £33.33@2.2 (lost), £20.95@4.5 (won), £10 etc.
Amount: IF(last_lost=0, 10/(back_price-1), (10+last_lost + 5)/(back_price-1))
7. Doubling bet size after each loss, i.e. 10, 20, 40, 80 etc.
For backing:
Amount: IF(losses=0, 10, hist_1_backa*2)
For laying:
Amount: IF(losses=0, 10, hist_1_laya*2)
8. Backing/laying according to Fibonacci staking plan
For backing:
Amount: IF(losses<2, 2, hist_1_backa+hist_2_backa)
For laying:
Amount: IF(losses<2, 2, hist_1_laya+hist_2_laya)
9. Backing to the profit of £10, then recoup the losses in the next game so as to win the target £10 and recover the previously lost amount. I.e. £6.67@2.5 (lost), £20.84@1.8 (lost), £31.26@2.2 (lost), £102.64@1.67 (won), £5.0@3.0 etc.
Amount: (10 + last_lost) / (back_price-1)
10. Laying on a selection, then recouping the loss according to the following plan (commission not included).
Add 1/4 of the loss to the next four bets. If all of them won, revert to the original lay amount. If at least one of them lost, then adding 1/4 of that loss to the next four bets and so on. Example: £10@2.5 (lost £15), £13.75@5.0 (won £13.75), £13.75@3.35 (won £13.75), £13.75@1.9 (lost £12.38), £13.09@4.8 (won £13.09), £13.09@2.0 (won £13.09), £13.09@2.6 (won £13.09), £13.09@2.8 (won £13.09), revert to £10. Overall P/L: £52.48
Amount: IF(last_lost>0, X+last_lost/4, IF(OR(wins>3, wins=0), X, hist_1_laya))
Replace X with the initial amount of your stake, for example 10.
There is a special trigger action "deactivate trigger/block". It makes the specified trigger inactive (sets its "Execute" field to "never"). You can apply this action if certain conditions are met. For example:
Trigger 1
Action: deactivate trigger/block Trigger 2
Conditions:
Any Selection's Back Matched is greater than 0
Trigger 2
...
This example shows how Trigger 1 deactivates Trigger 2 as soon as at least one matched back bet is detected in the market.
If you want to perform some action and deactivate a trigger simultaneously, then it's better to do it otherwise. In the trigger, that must be deactivated when another trigger gets executed, add the following condition:
Trigger or Trigger Block [trigger name] has not been executed
This will guarantee that the trigger won't work if the trigger specified as [trigger name] has been executed at least once.
For example:
Trigger 1
Action: lay
Price: lay_price
Amount: 10
Conditions:
Any Selection's Back Matched is greater than 0
Trigger 2
Action: cancel back
Conditions:
Any Selection's Back Unmatched is greater than 0
and Trigger or Trigger Block Trigger 1 has not been executed
There are two ways of doing this: through a special trigger condition, and through a trigger variable.
1. Trigger condition
Selection's Back Price Dif over [x] mins
Selection's Lay Price Dif over [x] mins
By inserting a number instead of [x], you can get the absolute price difference within the last x minutes. The word "absolute" means that the difference is not given in price ticks. For example, if the back price was 4.0 ten minutes ago, and now became 4.4, then the condition:
Selection's Back Price Dif over 10 mins is equal to 0.4
will be true, because the price has changed exactly by 0.4. If it were 4.4 five minutes ago, and became 3.8, then "Selection's Back Price Dif over 5 mins" will be -0.6.
Therefore to know how much the price changed within the last hour, construct a similar condition:
Selection's Back Price Dif over 60 mins ...
or
Selection's Lay Price Dif over 60 mins ...
2. Trigger Expression
There are special trigger variables returning the price difference over time as an absolute value, and as a number of ticks. They are, respectively, pdif_[number] and tdif_[number]. You can use these variables in trigger expressions. To find out whether the back price grew more that by 5 ticks over the last 20 minutes, create the following condition:
Trigger Expression tdif_20 is greater than 5
Another example: finding out if the price has dropped by more than 20% over the last 15 minutes:
Trigger Expression -pdif_15*100/(back_price-pdif_15) is greater than 20
If the price was - say - 6.0 fifteen minutes ago, and became 5.0, then pdif_15 will return -1.0. Inserting these figures in the formula will give us:
--1*100/(5--1) = 100/6 = 16.67%
So it is not greater than 20.
Examples
1. Lay on any selection whose price increased by 3 or more ticks over the last 10 minutes
Action: lay
Price: lay_price
Amount: specify amount
Markets, Market Status: choose appropriate
Selections: All Matching Selections
Execute: once per market
Conditions are met:
Any Selection's Lay Price is greater than 0
and Trigger Expression tdif_10 is equal or greater than 3
2. Lay on any selection whose price increased by 20% over the last 10 minutes
Action: lay
Price: lay_price
Amount: specify amount
Markets, Market Status: choose appropriate
Selections: All Matching Selections
Execute: once per market
Conditions are met:
Any Selection's Lay Price Dif over 10 mins is equal or greater than (lay_price-pdif_10)*0.2
3. Back on any selection whose price decreased by 40% within the last 20 minutes
Action: back
Price: back_price
Amount: specify amount
Markets, Market Status: choose appropriate
Selections: All Matching Selections
Execute: once per market
Conditions are met:
Any Selection's Back Price Dif over 20 mins is equal or less than -(back_price-pdif_20)*0.4
To bet 5% of the available funds, in test or real mode:
0.05*IF(test_mode=1, test_funds, total_funds)
To bet 10% of the balance, in both test and real mode:
0.1*IF(test_mode=1, test_balance, balance)
To bet to the liability of 10% of the bank, at the current lay price, apply the following formula:
0.1*IF(test_mode=1, test_balance, balance)/(lay_price-1)
To bet at a different price just replace "lay_price" with the price you want to bet at.
If you want to bet on the first selection in BetFair's list, no matter what its price is and whether it is a favourite or not, use the following trigger scheme:
Action: choose appropriate
Selections: All Matching Selections
Conditions:
Any Selection's Back Price is less than 1000
and Trigger Expression sel_index is equal to 1
The first condition here is superfluous, it is only needed because the "Selections" field contains the word "Matching". The second condition is what picks the first selection in the list, as sel_index returns its position.
If you want to bet on a group of selections, say the first 4, change the conditions to:
Any Selection's Back Price is less than 1000
and Trigger Expression sel_index is less than 5
To apply the trigger to the last 3 selections in the list, you would write:
Any Selection's Back Price is less than 1000
and Trigger Expression sel_index is between runner_number-4 and runner_number
Insert the following values into the Amount field of the trigger.
For backing:
Amount: default_backa
For laying:
Amount: default_laya
Switch a market to the "Full Mode", then right-click on any checkbox next to "Apply GreenUp, Dutching & Triggers". Select the necessary option ("Check All", "Uncheck All", "Toggle All") from the pop-up menu.
1. Backing at the current back odds
The trigger variable for the current back odds is back_price. So to back to fixed winnings you should insert the following formula:
[winnings]/(back_price-1)
where [winnings] is the amount you want to win. For example, to win £10:
10/(back_price-1)
2. Laying at the current lay odds
The trigger variable for the current lay odds is lay_price. So to lay to a fixed liability, apply the following formula:
[liability]/(lay_price-1)
where [liability] is the amount you are prepared to lose.
For example, to lay to the liability of £10, use this formula:
10/(lay_price-1)
Note: the above formulas are supposed to be inserted in the "Amount" field of the trigger.
If you want to bet on the first, second, third etc. selection, according to the order that BetFair set for this market, and not to the prices, you need to use the trigger variable sel_index, which returns the index of the selection in the BetFair list of runners.
There are many ways of adding the appropriate condition to your trigger, depending on which conditions you already have there. Here are just a couple of examples:
1. Betting on the first selection in the list.
Selections: All Matching Selections
Conditions are met:
Any Selection's Back Price is greater than 0
and Trigger Expression sel_index is equal to 1
Note: the first condition does not do anything related to the task, but it is required, because the "Selections" field is set to "All Matching Selections". So the first condition must start with "Any Selection's". As you can see, it will choose all selections in the market, because their prices are all above 0.0. Then the second condition will filter out the single selection that is number one in the list.
2. Betting on the second selection, if it is the favourite (according to its price).
Selections: Favourite
Conditions are met:
Trigger Expression sel_index is equal to 2
3. Betting on the first three selections
Selections: All Matching Selections
Conditions are met:
Any Selection's Back Price is greater than 0
and Trigger Expression sel_index is less than 4
4. Betting on the first selection if its lay price is less than 3.0
Selections: All Matching Selections
Conditions are met:
Any Selection's Lay Price is less than 3.0
and Trigger Expression sel_index is equal to 1
5. Betting on the first selection if its lay price is less than 3.0, or betting on the second selection if its lay price is less than 5.0. Otherwise don't bet at all.
Selection: All Matching Selections
Conditions are met:
Any Selection's Lay Price is less than 3.0
and Trigger Expression sel_index is equal to 1
OR
Any Selection's Lay Price is less than 5.0
and Trigger Expression sel_index is equal to 2
Note: the above trigger's conditions contain a block of conditions, connected with the OR operator.
Some strategies lay or back on all selections in the market, and cancel all unmatched bets as soon as at least one of the bets has been matched. Below is a simple trigger that shows how to do that.
1. Cancelling back bets
Action: cancel back
Markets, Market Status: choose appropriate
Selections: All Matching Selections
Execute: once per market
Conditions are met:
Any Selection's Back Unmatched is greater than 0
and Any Other Selection's Back Matched is greater than 0
2. Cancelling lay bets
Action: cancel lay
Markets, Market Status: choose appropriate
Selections: All Matching Selections
Execute: once per market
Conditions are met:
Any Selection's Lay Unmatched is greater than 0
and Any Other Selection's Lay Matched is greater than 0
If you want to make your triggers bet on specific selections, rather than on "Favourite", "All Matching Selections", "Probable Loser" etc., then you have two options:
1. Create a separate trigger for each selection you want to bet on.
A trigger can be applied to a specific market and selection. You just select the market in the event tree, then go to "Triggers" page, create a trigger and select that market from the drop-down list. After you have selected the market, the list of its selections will appear in the "Selections" field, and you can choose the one you want to bet on.
![]() |
![]() |
2. Apply Greenup, Dutching & Triggers
If the above option does not suit your needs or you want to apply the trigger to more than one selection, then you will need to mark all selections that you will be trading on. Click on each market that you will be betting in, and switch it to "Full Mode". If you do this regularly, then you should consider turning "Full Mode" on by default. Then uncheck all selections that you will not be betting on. They will be grayed out. The rest selections will be the ones that your triggers will be working with.
Then set the "Selections" field of the trigger to "All Selections". In spite of the word "All", the trigger will be applied only to those selections that you marked on the market page.

3. Matching a pattern in the selection's name
This method is efficient if you always bet on a selection with a specific name, for example "The Draw" in Soccer, or "FTSE Down" in Financial markets.
For example, to bet on "The Draw", add a trigger with the following properties:
Action, Price, Amount, Markets, Market Status - choose appropriate
Selections: All Matching Selections
Conditions are met:
Any Selection's Name contains "The Draw"
The trigger will be applied to "The Draw" in any monitored market. To apply it to other selections, just change the "The Draw" pattern to something else.
Another example is betting on a specific trap in Greyhound races:
Any Selection's Name is equal to "Trap 1"
If you are performing some kind of repetitive greening up or auto-dutching, you may encounter the problem of unmatched bets. If you leave them till the moment when the event starts, they will be automatically voided by BetFair, and you may be exposed to big losses.
To minimize these losses you may want to cancel all unmatched bets right before the off (say, when it's left less than 30 sec) and post them at the best price available. There are two options of doing this.
1. Stop-Loss Options
Go to "Settings", "Stop-Loss" options, and configure this option:
Post unmatched bets at best available price on these conditions:
If the time left till the off is less than ... mins
This will make MF Pro automatically adjust the price of your unmatched bets, as to make them matched. This option will suit perfectly for closing unmatched bets generated from auto-dutching, and all other non-hedging strategies.
2. Trigger - Distribute Loss Between Selections
If you were greening up, and unmatched bets left, then just posting them at the current best price, with their bet size remaining the same, will be a bad option. The better one will be distributing the loss equally among all selections in the market. For that purpose you may set up the following triggers:
Trigger 1:
2a) Cancelling Back Bets
Name: cancelling bets
Action: cancel back
Markets: choose appropriate
Selections: All Matching Selections
Market Status: Not In-Play
Execute: once per market
Conditions are met:
Any Selection's Back Unmatched is greater than 0
and Minutes Before the Off is less than 0.5
2b) Cancelling Lay Bets
Name: cancelling bets
Action: cancel lay
Markets: choose appropriate
Selections: All Matching Selections
Market Status: Not In-Play
Execute: once per market
Conditions are met:
Any Selection's Lay Unmatched is greater than 0
and Minutes Before the Off is less than 0.5
2c) Cancelling All Bets
Name: cancelling bets
Action: cancel all
Markets: choose appropriate
Selections: All Matching Selections
Market Status: Not In-Play
Execute: once per market
Conditions are met:
Any Selection's Back Price is greater than 0
and Minutes Before the Off is less than 0.5
AND
Any Selection's Back Unmatched is greater than 0
or Any Selection's Lay Unmatched is greater than 0
Note: the first condition in trigger 2c does not have any function, except that it starts the conditions list, because the "Selections" field is set to "All Matching Selections". When "Selections" contain the word "Matching", the first condition must start with the words "Any Selection's".
Trigger 2:
Action: distribute loss between selections
Markets: choose appropriate
Selections: All Matching Selections
Market Status: Not In-Play
Execute: once per market
Conditions are met:
Any Selection's Affected by Trigger cancelling bets
The second trigger is common for all three variants: it finds the selections whose bets were cancelled by the first trigger, and distributes their loss equally.
If you want to Dutch the whole field, just use the "Auto-Dutching" button and its settings in each market.
But if you want to Dutch only on special selections, chosen according to some criteria, you should set up a trigger. The trigger must pick the selections by the special conditions, and then apply one of the trigger variables: either match_b_book (if you are backing) or match_l_book (if you are laying).
For example, if you want to back-Dutch all selections whose price falls between 3.0 and 9.0, then set up this trigger:
Action: dutch back
Amount to win: input the amount you want to win
Markets, Market Status: choose appropriate
Selections: All Matching Selections
Execute: once per market
Conditions are met:
Any Selection's Back Price is between 3 and 9
and Trigger Expression match_b_book is less than 100
This trigger picks all selections priced between 3 and 9, and makes sure that the book percentage they make together is less than 100. As you know if it is equal or greater than 100, it is impossible to back-Dutch.
You can customize this trigger. For example, if you wish to bet only if the book% is between 60 and 90, modify the second trigger condition:
and Trigger Expression match_b_book is between 60 and 90
Add the following condition to your trigger:
Market's Number of Selections is ...
For example, to bet in races with 8 or more runners:
Market's Number of Selections is equal or greater than 8
Bet in a race with less than 10 runners:
Market's Number of Selections is less than 10
Note: this certainly concerns not only races, but all other types of markets as well.
1. Stop after 5 wins in a row.
Add the following condition to your trigger:
Trigger Expression wins is less than 5
2. Stop after 4 losses in a row.
Add the following condition to your trigger:
Trigger Expression losses is less than 4
3. Stop if the total won amount is greater than 10 and the number of wins is equal or greater than 6:
Total Won Amount is equal or less than 10
and Trigger Expression wins is less than 6
When you set up a betting trigger, you can set the "Price" property to any value, trigger variable or a combination of trigger variables, numbers and arithmetic expressions.
Therefore, to bet at back prices (no matter whether you are backing or laying), input "back_price". And to bet at lay prices, input "lay_price". For example:
Action: back
Price: lay_price
Action: lay
Price: back_price
If you want to place a back bet on any selection that hit a certain price value (for example 1.5), use the following trigger:
Action: spread loss
Markets: choose the type of market you will be trading in
Selections: All Matching Selections
Market Status: In-Play
Execute: once per selection
Conditions are met:
Any Selection's Back Price is equal or less than 1.5
and Fitting Selection's Profit/Loss is less than 0.0
This trigger will eliminate the loss on any selection whose price is 1.5 or lower. Thus their P/L will be showing a figure very close to zero. If there are more than one such selection, even if they take on their prices at different times, the bet will be placed on each of them.
If you want to place only one bet on the first selection, that drops below the minimum, change "once per selection" to "once per market".
MF Pro gives you the ability to apply your triggers to special gorups of markets, such as "Horse Races", "Soccer Games", "Greyhound Races" etc. But sometimes you may need to make it even more specific, for example, only handicap races, or only FTSE markets. How to do that? The answer is: through parsing the market's name.
The type of the market you want to pick can often be taken from its name. For example, handicap races contain the word "Hcap" in its name. Therefore, to make a trigger be executed only in handicap markets, simply add the following condition:
Market's Name contains Hcap
If you want to apply a trigger to daily Up or Down financial markets, add the following condition:
Market's Name contains Daily U/D
For triggering in Australian Horse races:
Market's Name contains (AUS)
and so on.
Here are several methods that you may use to stop potential loss made by one or more bets.
1. Matching unmatched bets at the best available price.
MarketFeeder Pro offers built-in options for posting your unmatched bets at the best available price, on certain conditions. Use the "Stop-Loss" tab in "Settings" to configure the conditions, on which MF Pro will match your unmatched bets automatically, in every monitored market.
You can also do this using a trigger (if you want to stipulate special conditions that are not available in "Stop-Loss" options. See an example of such trigger below:
Action: match back unmatched bets / match lay unmatched bets
Markets, Market Status: choose appropriate
Selections: all matching selections
Execute: once per market (or choose another option, if you want to do this several times)
Conditions are met:
Any Selection's ... (specify the parameters of the selections, whose bets must be matched)
2. Eliminating the loss on a specific selection, and spreading it equally among the other selections
You can create a trigger, which will remove all potential loss (zeroing the P/L) for a specified selection, and spread it equally among the other selections. Below is the trigger example:
Action: spread loss
Markets, Market Status: choose appropriate
Selections: all matching selections
Execute: once per market (or choose another option, if you want to do this several times)
Conditions are met:
Any Selection's ... (specify the parameters of the selections, whose bets must be matched)
Usually traders do this at In-Play, when the selection they laid becomes a potential winner with a low price. So one of the most frequently used trigger is:
Action: spread loss
Markets: All Markets
Market Status: In-Play
Selections: all matching selections
Execute: once per market
Conditions are met:
Any Selection's Profit/Loss is less than 0
and Fitting Selection's Back Price is equal or less than ... (here comes the lowest price limit)
3. Distributing the loss on a specific selection equally between all selections in the market.
This option is available for selections, which you laid or backed on, in case you want to compensate the potential loss with an opposite bet, thus distributing the loss in the same way, as distributing the profit with a "green up" function. For example, if you backed on a selection before the off, and at In-Play its price grew up to the limit of a potential loser, you may want to make a lay bet and "green it down". And on the contrary, if you laid on a subsequent potential winner, you will expect the program to back on the selection and distribute the loss. The difference between "spreading the loss" and "distributing the loss" is that the "spread loss" function eliminates the loss completely, plus it can do this even if you did not bet on that specific selection (for example, if its loss was generated by back bets placed on other selections). The "distribute loss" function just reduces the potential loss (makes it equal for all selections), and it will work only if you placed at least one bet on the selection.
A corresponding trigger is composed similarly to a "spread loss" one:
For laying after backing:
Action: distribute loss between selections
Markets: All Markets
Market Status: In-Play
Selections: all matching selections
Execute: once per market
Conditions are met:
Any Selection's Back Matched is greater than 0
and Fitting Selection's Back Price is equal or greater than ... (here comes the highest price limit)
For backing after laying:
Action: distribute loss between selections
Markets: All Markets
Market Status: In-Play
Selections: all matching selections
Execute: once per market
Conditions are met:
Any Selection's Lay Matched is greater than 0
and Fitting Selection's Lay Price is equal or less than ... (here comes the lowest price limit)
Add these two conditions to your trigger:
Previous Triggered Event's Outcome is settled
or Trigger or Trigger Block [choose the current trigger's name] has not been executed (overall)
This literally means: if there was at least one event where the trigger has been already executed, then check if it was settled. If not, then execute the trigger anyway.
The word (overall) here means, that you need to tick the box titled "overall". Note: before adding the second condition, you need to save the trigger, so that its name appears in the drop-down list with trigger names
Note: to be able to perform these conditions, disable the option "Delete finished event automatically" in "General Options".
First of all, if you are looking for the way to match unmatched bets at the best price, if they have not been taken within a certain period of time, use the built-in "Stop-Loss Options".
But if you want to cancel one or more unmatched bets, if they have not been matched within certain time, then use the triggers given below.
The triggers are given for back bets only. If you want to cancel lay bets, just replace all back-oriented options with the same lay-oriented options.
1. Cancelling unmatched bets, if it's been more than 5 minutes since they were placed.
Action: cancel back
Markets, Market Status: choose appropriate
Selections: All Matching Selections
Execute: once per selection
Conditions are met:
Any Selection's Back Unmatched is greater than 0
and Trigger Expression now_time - bu_backtime is greater than 5*0.000694
Pay attention to the figure "5" in the second condition. If you want to change the period of time from 5 minutes to anything else, you need to replace "5" with the new number of minutes.
The trigger is set to be executed "once per selection". It means it'll be checking unmatched bets for each selection, and will cancel them in 5 minutes after they are placed, no matter when they were placed. You can change this option to "once per market", and in that case the trigger will be activated as soon as there is at least one unmatched bet. It will cancel all unmatched bets that will meet the condition, and then will stop monitoring that market.
2. Cancelling unmatched bets, if it is 1 minute left till the beginning of the event
Action: cancel back
Markets, Market Status: choose appropriate
Selections: All Matching Selections
Execute: once per market
Conditions are met:
Any Selection's Back Unmatched is greater than 0
and Minutes Before the Off is equal or less than 1
This trigger will cancel all unmatched bets at 1 minute before the scheduled start.
Either back or lay on the selections whose order is specified by the numbers given in an Excel spreadsheet.
For example, you enter the IDs of the horses you want to bet on a daily basis, in an Excel spreadsheet. See below:
![]() |
![]() |
This means you want to bet on the second, seventh and eighth horse in a race. The numbers in the sheet indicate the position of the horse in the list of selections that BetFair forms for each market.
1. Create a spreadsheet where you will insert the values that the trigger must refer to.
2. Give the sheet where these data will be stored some name, for example, "Sheet1".
3. Now you need to allocate the cells where you will input the indices of selections. For instance, A1:A5 or A1, B1, C1. There can be any number of cells as you may want to bet on any number of selections.
4. Save the sheet somewhere where you'll be able to find it later.
5. Create the following trigger:
Action: back (or lay)
Price, Amount: type in the corresponding values
Markets, Market Status: select appropriate
Selections: All Matching Selections
Conditions are met:
Any Selection's Rank is in list cell_Sheet1_A1, cell_Sheet1_A2, cell_Sheet1_A3, cell_Sheet1_A4 ...
Instead of the ellipsis continue the list of the cells where selections IDs are stored. If there is only one such cell, then certainly the list will end at cell_Sheet1_A1.
The addresses of the cells are made up as an example. Your sheet may be called in a different way, for example "selections". In that case the address of the cell will be cell_selections_A1, or cell_selections_B5 if you choose another column and row.
6. Press the "Launch Excel" button. The program will connect to the sheet that you have just created.
7. Now add the markets you want to trade in to "My Markets", and start monitoring them. The trigger will check the aforesaid cells and place the bet on the selections with those indices.
8. Be sure to always open the previously saved sheet before pressing "Launch Excel", in order to make MF Pro connect to that sheet instead of creating a new one.
You can read the details on Excel-related variables in the help file's chapter "Trigger Variables" / "Excel-Bound Variables".
In order to place bets using only one trigger for all the markets you'll be monitoring, you can insert the list of selections IDs in the corresponding market sheets. These market sheets are created automatically for each market in "My Markets" list as soon as you press the "Launch Excel" button. They are named after the ID of the market. You can allocate a special column for the selections IDs, for example, P, and insert them in each market sheet. Then modify the above trigger:
Conditions are met:
Any Selection's Rank is in list cell_querymarket_id_P1, cell_querymarket_id_P2, cell_querymarket_id_P3, cell_querymarket_id_P4 ...


In this example the trigger will bet on "Miss Sophisticat", "Blue Dynasty" and "Zafisio" in the race "16:50 Sand", and also on other horses whose IDs will be stored in the first three cells of the "P" column of other market sheets.
If you have the names of selections rather than their IDs, then it is more reasonable to use the "Import selections for auto-trading" button. See an example here.



