Fill-or-kill and ways to make sure a bet is matched
This is an example on how to make sure your bet is fully matched, plus to implement the "Fill-or-kill" rule.
There are four blocks in the file.
Block 1, "User variables"
Here you can put any variables that you'll be using in the triggers. The single variable in the example is "time_sec", the number of seconds that should have passed since the moment of placing a bet before you'll need to cancel or match it. In the example it is equal to 10 sec.
Block 2, "Repetitive attempts to match a bet at the current price"
The triggers here will cancel and re-place your bet (or what is left of it) at the current offered price. If the price has changed while the bet was being sent to BetFair, the trigger will repeat its attempt after the time specified in time_sec and so on.
Block 3, "Compulsory matching at any price available"
These triggers, unlike the one in the previous block, will update the price of the unmatched bet, rather than cancelling and re-placing it. For back bets the new price will be 1.01, for lay bets it'll be something that is determined by a setting called "When laying at "best" price offer a price that is ... ticks above the current lay price" in "Betting Options". This will guarantee that unmatched bets will be matched, though it's impossible to predict at what exactly price.
Block 4, "Fill or kill"
The triggers in this block perform the standard FOK: they will cancel any unmatched bets after a certain time has passed since you placed them.
Here is an example of what FOK does:
Please pay attention that we disabled two blocks, as only one of them should run at a time.
All triggers are repeated at a maximum frequency of 1 sec. If your refresh rate is even higher, edit this figure yourself, only remember that it can't be less than the frequency at which your bets are updated from BetFair.
How to test the triggers
Open the file, activate the block that you want to test (for example, "Fill or kill") and the block with the user variable. Deactivate other blocks (set their "Repeat Block" field to "never").
Save the triggers and close the window. Add a couple of markets to "My Markets". Start refreshing one of them. Place unmatched bets of both types randomly and see what will happen to them.