LockCL2 Arbitrage
Lock CL2 strategy is the most universal and optimal strategy for using with hedged accounts of different types and prop firm challenges. It is an advanced version of latency arbitrage strategy intended for use with 2 different accounts. It can be two different brokers or two different accounts with the same broker.
Lock CL2 logic has several important advantages:
- It enter arbitrage deals by closing positions and it makes it more difficult for broker to associate this strategy with latency arbitrage.
- It keeps locked positions for a long time before arbitrage signal occurs which helps to avoid virtual dealer and anti-arbitrage plugins (if broker uses them) for longer time.
Disadvantage of Lock CL2 strategy is that it requires for operation 2 accounts with the same broker (under 2 different names) or 2 different brokers (under the same name or under different names).
It can be also set to run on the same accounts but in this case it is much easier for broker to detect it.
Lock CL2 strategy logic
1) If there are no open orders it opens the first order by arbitrage signal, trails it and when one of the closing triggers is hit (TP, SL. Trailing Stop, lifetime stop) opens opposite) position(creates lock).
2) If lock is already open (we have both buy and sell positions) and it gets another arbitrage signal, it enters arbitrage deal by closing position that is opposite to the arbitrage signal (when gets buy signal it closes sell position and vice versa) and creates virtual order in the same direction with the remaining real position. Virtual order exists only in the software and used to track arbitrage deal. After that it trails this virtual order and after SL or TP or trailing stop is hit it reopens closed real position to exit deal.
3) If lock is closed manually or by automatic closure rule it proceeds with step 1.
Lock CL2 arbitrage strategy Instruments and orders Tab:


Description of the parameters:
Enabled – enables or disables trading on a selected instrument.
Name – symbol name on a fast feed.
Lot size 1 – lot size to be traded on side 1.
Lot size 2 – lot size to be traded on side 2.
Decimals – number of decimal places in symbol quotes.
Spread SL – allows to calculate SL based on spread. When Spread SL is enabled actual SL is calculated as a current spread multiplied by S/L value.
S/L – hidden stoploss for an arbitrage trade.
T/P – hidden takeprofit for an arbitrage trade.
Min profit – starting point for trailing.
Pips for Min Profit – when set Min profit parameter comes into effect after price reaches Pips for Min profit value. Used for brokers with wide stop/freeze levels.
Trail distance – distance arbitrage trade is trailed at.
Trail units – allows to switch trailing units between points and percents.
Order lifetime – maximum arbitrage deal duration (expressed in seconds)
Slippage 1 – max allowed deviation from the price order is sent at for side 1. If price goes beyond allowed deviation order gets reject or requote. Works only for instant execution accounts and limit orders on FIX API accounts. For market execution accounts it has no effect.
Slippage 2 – max allowed deviation from the price order is sent at for side 2.
Commissions 1 – commissions for side 1. Should be set if broker charges commissions. Commissions are calculated per million (10 standard lots) so if broker charges $7 per standard lot they should be set to 70. Parameter has no effect on trading, it affects only on profit display.
Commissions 2 – commissions for side 2.
Initial direction – allows to set initial directions for lock orders. If selected 'Buy on 1' or 'Sell on 1' it will open trades only by signals in allowed directions. 'Neutral' allows to open trades in any direction.
Diff calculation method – allows to switch between several calculation modes of arbitrage difference:
Standard (univeral mode, suitable for most setups)
BuyDiff = FastAsk - SlowAsk
SellDiff = SlowBid - FastBid
SpreadCorrected (recommened when spreads on a slow broker are lower than on a fast feed)
BuyDiff = (FastBid - SlowAsk)
SellDiff = (SlowBid – FastAsk)
Reversed (experimental mode)
BuyDiff = FastBid - SlowBid
SellDiff = SlowAsk – FastAsk
Include spread – allows to include or exclude spreads from difference calculation. We recommend to keep this option checked.
Diff to open 1– difference between prices on a slow broker and a fast feed for opening arbitrage deal on side 1.
Diff to open 2– difference between prices on a slow broker and a fast feed for opening arbitrage deal on side 2.
Min Spread Slow 1 – minimal allowed spread for a slow broker 1. If actual spread is lower than Min spread slow 1 value, arbitrage signals are ignored.
Min Spread Slow 2– minimal allowed spread for a slow broker 2. If actual spread is lower than Min spread slow 2 value, arbitrage signals are ignored.
Max Spread Slow – maximum allowed spread for both slow brokers. If actual spread is higher than Max spread slow value, arbitrage signals are ignored.
Max Spread Fast – maximum allowed spread for a fast feed. If actual spread is higher than Max spread fast value, arbitrage signals are ignored.
Bid offset 1 – constant distance between bid on a fast and bid on a slow 1 broker (in points).
Bid offset 2 – constant distance between bid on a fast and bid on a slow 2 broker (in points).
Ask offset 1– constant distance between ask on a fast and ask on a slow 1 broker (in points).
Ask offset 2– constant distance between ask on a fast and ask on a slow 2 broker (in points).
Offset Calc – allows to enable automatic offset calculation.
Comment – internal order identifier. If several instances of the same instrument are used in the strategy, comments for each instance should be different.
Diff limit – maximum allowed difference for opening arbitrage trade. If actual difference it higher, signal is ignored.
Min Time – no effect in Lock CL2 strategy.
Min Pips – no effect in Lock CL2 strategy.
Statistical parameters (can't be modified):
Curr Diff 2 – current buy difference between a fast feed and a slow broker 1.
Curr Diff 2 – current sell difference between a fast feed and a slow broker 2.
Max Diff 1 – maximum buy difference between a fast feed and a slow broker 1 detected since the last software restart or the last Max diff values reset.
Max Diff 2 – maximum sell difference between a fast feed and a slow broker 2 detected since the last software restart or the last Max diff values reset.
Curr Spread Slow 1– current spread on a slow broker 1 (in points)
Curr Spread Slow 2– current spread on a slow broker 2 (in points)
Curr Spread Fast – current spread on a fast broker (in points)
Right-click menu parameters:

Columns – allows to hide or show selected symbol columns.
Clear max diff – resets Max diff values.
Add instrument – allows to add a new instrument to table.
Remove instrument – removes selected instrument from table.
Save instrument settings – force save of current configuration to database.
Open lock on selected instrument – allows to open initial lock manually on selected instrument.
Close lock on selected instrument – allows to close lock manually on selected instrument.
Open locks on all enabled instruments – allows to open initial locks manually on all active instruments.
Adjust settings automatically – automatic configuration based on spreads.
Reset settings to default – changes settings back to the default preset.
Enable all – enables all the symbols in the settings table.
Disable all – disables all the symbols in the settings table.
Save as template – allows to set current symbol configuration to template file.