BrightTrio Arbitrage: Difference between revisions

From SharpTrader Arbitrage Software Wiki: A Detailed Overview of High-Speed Trading Technology
Jump to navigation Jump to search
No edit summary
Formatting cleanup: unified image layout (block, no float, border)
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[File:Brighttrio.png|frameless|1456x1456px]]
Bright Trio is a latency arbitrage strategy for 3 accounts designed to provide maximum masking effect.


'''Enabled''' - controls if the instrument is allowed to trade or not.
== How the strategy works ==
With two options available, you can initiate the strategy either before or during arbitrage situations.


'''Name''' – instrument name on feeder.
=== Option 1 ===
At the start of the strategy, with prices aligned on the fast feeder and accounts A, B, C, a BUY order is placed on account 1, and a SELL order is placed on account 2.


'''Lot size 1''' – lot size to be traded on the left side account.
=== Option 2 ===
When the strategy begins, no initial openings occur as the prices remain consistent across the fast feeder and accounts A, B, C.


'''Lot size 2''' - lot size to be traded on the central account.
Now, let’s consider a BUY arbitrage situation: the fast feed price exceeds the prices on the slower accounts (A, B, C) by the specified difference to open (configurable in the program settings). In response, the program opens a BUY order on account A and applies Stop Loss (SL), Take Profit (TP), and Trailing Stop. If the trailing stop or TP is triggered, instead of closing the BUY order, a SELL order is opened on account B, securing the maximum fixed profit and locking the BUY order.


'''Lot size 3''' - lot size to be traded on the right side account.
Whether option 1 or option 2 is chosen, the program executes these actions consistently. In a BUY arbitrage situation, where the fast feed price surpasses the slower accounts (A, B, C) by the specified difference to open, the program closes the SELL order on account B. Simultaneously, a virtual BUY order is created at the closing price of the SELL order, implementing SL, TP, and Trailing Stop. It’s important to note that this virtual order exists only in the program’s memory and is not transmitted to the broker server. When the trailing stop or TP is triggered, the program opens a SELL order on account C, effectively capturing profits and locking the BUY order.


'''Digits''' – how much digits instrument has in decimals.
Similarly, in a SELL arbitrage situation where the fast feed price falls below the slower accounts (A, B, C) by the specified difference to open, the program closes the BUY order on account A. Concurrently, a virtual SELL order is generated at the closing price of the BUY order, accompanied by SL, TP, and Trailing Stop. Upon triggering the trailing stop or TP, the program initiates a BUY order on account B, securing profits and locking the SELL order.


'''Spread SL''' - please check this box if you want to calculate Stop Los like percent from the spread.
'''By adhering to these procedures, the strategy ensures several conditions are met, effectively masking arbitrage trades:'''


'''S/L''' – hidden stop loss for the position in points, if box "Spread SL" is not checked and in percent from the spread, if box "Spread SL" is checked.
* Each account maintains either a BUY or SELL open trade instrument.
* The order’s lifespan can be indefinitely extended, customizable within the program.
* The pause duration between orders for a single trading instrument is determined by program settings.
* The minimum profit value (Min profit) is configurable within the program.


'''T/P''' – hidden take profit for the position.
This comprehensive approach prevents the detection of multiple indicators of arbitrage trading during account analysis, such as short-term orders, multi-pip orders, locking profits in several pips contrary to the direction of the order, or frequent orders during periods of high market volatility.


'''Min profit''' – how much profit the order should get (in points) for system to start trailing on this position.
== Instruments and orders tab ==


'''Trail distance''' – the distance (in points) that is used for trailing on position.
[[File:Brighttrio.png|none|frameless|border|1456x1456px]]


'''Trailing units''' - Points / Present . The software can calculate trailing stop in points or like percent from instrument's price.
== 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.
; Lot size 3
: lot size to be traded on side 3.
; 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 on side 1.
; T/P
: hidden takeprofit for an arbitrage trade on side 1.
; S/L2
: hidden stoploss for an arbitrage trade on side 2.
; T/P2
: hidden takeprofit for an arbitrage trade on side 2.
; S/L3
: hidden stoploss for an arbitrage trade on side 3.
; T/P3
: hidden takeprofit for an arbitrage trade on side 3.
; 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.
; Slippage 3
: max allowed deviation from the price order is sent at for side 3.
; 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.
; Commissions 3
: commissions for side 3.
; Initial direction
: allows to set initial directions for lock orders. 6 possible initial order directions are available for selection. '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.
; Diff to open 3
: difference between prices on a slow broker and a fast feed for opening arbitrage deal on side 3.
; 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.
; Min Spread Slow 3
: minimal allowed spread for a slow broker 3. If actual spread is lower than Min spread slow 3 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).
; Bid offset 3
: constant distance between bid on a fast and bid on a slow 3 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).
; Ask offset 3
: constant distance between ask on a fast and ask on a slow 3 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 Bright Trio strategy.
; Min Pips
: no effect in Bright Trio strategy.


'''Order lifetime''' – the maximum time the position can be opened.
== 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.
; Curr Diff 3
: current sell difference between a fast feed and a slow broker 3.
; 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.
; Max Diff 3
: maximum sell difference between a fast feed and a slow broker 3 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 Slow 3
: current spread on a slow broker 3 (in points)
; Curr Spread Fast
: current spread on a fast broker (in points)


'''Slippage 1''' – for instant execution brokers or FIX API brokers if you use limit orders - maximum allowed distance from requested price for the left side account.
[[File:W.png|none|frameless|border]]


'''Slippage 2''' – for instant execution brokers or FIX API brokers if you use limit orders - maximum allowed distance from requested price for the central account.
; Columns
 
: allows to hide or show selected symbol columns.
'''Slippage 3''' – for instant execution brokers or FIX API brokers if you use limit orders - maximum allowed distance from requested price for the right side account.
; Clear max diff
 
: resets Max diff values.
'''Commissions1''' - you can set commissions for round turn for your left side account.
; Add instrument
 
: allows to add a new instrument to table.
'''Commissions2''' - you can set commissions for round turn for your right side broker.
; Remove instrument
 
: removes selected instrument from table.
'''Commissions3''' - you can set commissions for round turn for your right side broker.
; Save instrument settings
 
: force save of current configuration to database.
'''Diff calculation method''' - please select one of 3: Standard, Reversed, SpreadCorrected.
; Open lock on selected instrument
 
: allows to open initial lock manually on selected instrument.
Standard
; Close lock on selected instrument
 
: allows to close lock manually on selected instrument.
BuyDiff = FastAsk - SlowAsk
; Open locks on all enabled instruments
 
: allows to open initial locks manually on all active instruments.
SellDiff = SlowBid - FastBid
; Adjust settings automatically
 
: automatic configuration based on spreads.
Reversed
; Reset settings to default
 
: changes settings back to the default preset.
BuyDiff = FastBid - SlowBid
; Enable all
 
: enables all the symbols in the settings table.
SellDiff = SlowAsk - FastAsk
; Disable all
 
: disables all the symbols in the settings table.
SpreadCorrected
; Save as template
 
: allows to set current symbol configuration to template file.
BuyDiff = (FastBid - SlowAsk)
 
SellDiff = (SlowBid - FastAsk)
 
'''Include spread''' - check this box if you want to include the spread for differ to open calculation. The slow broker's spread will be extracted from the difference to open.
 
'''Diff to open''' – distance between price on slow and fast to open the position.
 
'''Units''' - select units points or percent for difference to open calculation. the percent is useful for crypto currencies arbitrage.
 
'''Max spread slow 1''' - maximum allowed spread for the left side broker.
 
'''Max spread slow 2''' - maximum allowed spread for the central broker.
 
'''Max spread slow''' '''3''' - maximum allowed spread for the right side broker.
 
'''Max spread Fast''' - maximum allowed spread for the fast feed.
 
'''Bid offset 1''' - constant distance between bid on fast and bid on the slow left side broker (in points)
 
'''Bid offset 2''' - constant distance between bid on fast and bid on the centralside broker (in points)
 
'''Bid offset 3''' - constant distance between bid on fast and bid on the slow right side broker (in points)
 
'''Ask offset 1''' - constant distance between ask on fast and ask on the slow left side broker (in points)
 
'''Ask offset 2''' - constant distance between ask on fast and ask on the slow central broker (in points)
 
'''Ask offset 3''' - constant distance between ask on fast and ask on the slow right side broker (in points)
 
'''Offset Calc''' – controls if the offset recalculation is used on instrument or not.
 
'''Comment''' - internal identifier. The comment should be different for similar instruments.
 
'''Diff limit''' – maximum allowed difference for arbitrage signal.
 
'''Curr Diff 1-''' current difference for between fast feed and the left side broker.
 
'''Curr Diff 2'''- current difference for between fast feed and the central broker.
 
'''Curr Diff 3'''- current difference for between fast feed and the right side broker.
 
'''Max Diff 1''' – the maximum difference between the fast feed and the left side broker that was detected during software was running.
 
'''Max Diff 2''' – the maximum difference between the fast feed and the central broker that was detected during software was running.
 
'''Max Diff 3''' – the maximum difference between the fast feed and the right side broker that was detected during software was running.
 
'''Curr Spread Slow 1''' – current spread on the left side broker (in points)
 
'''Curr Spread Slow 2''' – current spread on the central broker (in points)
 
'''Curr Spread Slow 3''' – current spread on the right side broker (in points)
 
'''Curr Spread Fast''' – current spread on feeder (in points)

Latest revision as of 19:55, 21 October 2026

Bright Trio is a latency arbitrage strategy for 3 accounts designed to provide maximum masking effect.

How the strategy works

With two options available, you can initiate the strategy either before or during arbitrage situations.

Option 1

At the start of the strategy, with prices aligned on the fast feeder and accounts A, B, C, a BUY order is placed on account 1, and a SELL order is placed on account 2.

Option 2

When the strategy begins, no initial openings occur as the prices remain consistent across the fast feeder and accounts A, B, C.

Now, let’s consider a BUY arbitrage situation: the fast feed price exceeds the prices on the slower accounts (A, B, C) by the specified difference to open (configurable in the program settings). In response, the program opens a BUY order on account A and applies Stop Loss (SL), Take Profit (TP), and Trailing Stop. If the trailing stop or TP is triggered, instead of closing the BUY order, a SELL order is opened on account B, securing the maximum fixed profit and locking the BUY order.

Whether option 1 or option 2 is chosen, the program executes these actions consistently. In a BUY arbitrage situation, where the fast feed price surpasses the slower accounts (A, B, C) by the specified difference to open, the program closes the SELL order on account B. Simultaneously, a virtual BUY order is created at the closing price of the SELL order, implementing SL, TP, and Trailing Stop. It’s important to note that this virtual order exists only in the program’s memory and is not transmitted to the broker server. When the trailing stop or TP is triggered, the program opens a SELL order on account C, effectively capturing profits and locking the BUY order.

Similarly, in a SELL arbitrage situation where the fast feed price falls below the slower accounts (A, B, C) by the specified difference to open, the program closes the BUY order on account A. Concurrently, a virtual SELL order is generated at the closing price of the BUY order, accompanied by SL, TP, and Trailing Stop. Upon triggering the trailing stop or TP, the program initiates a BUY order on account B, securing profits and locking the SELL order.

By adhering to these procedures, the strategy ensures several conditions are met, effectively masking arbitrage trades:

  • Each account maintains either a BUY or SELL open trade instrument.
  • The order’s lifespan can be indefinitely extended, customizable within the program.
  • The pause duration between orders for a single trading instrument is determined by program settings.
  • The minimum profit value (Min profit) is configurable within the program.

This comprehensive approach prevents the detection of multiple indicators of arbitrage trading during account analysis, such as short-term orders, multi-pip orders, locking profits in several pips contrary to the direction of the order, or frequent orders during periods of high market volatility.

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.
Lot size 3
lot size to be traded on side 3.
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 on side 1.
T/P
hidden takeprofit for an arbitrage trade on side 1.
S/L2
hidden stoploss for an arbitrage trade on side 2.
T/P2
hidden takeprofit for an arbitrage trade on side 2.
S/L3
hidden stoploss for an arbitrage trade on side 3.
T/P3
hidden takeprofit for an arbitrage trade on side 3.
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.
Slippage 3
max allowed deviation from the price order is sent at for side 3.
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.
Commissions 3
commissions for side 3.
Initial direction
allows to set initial directions for lock orders. 6 possible initial order directions are available for selection. '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.
Diff to open 3
difference between prices on a slow broker and a fast feed for opening arbitrage deal on side 3.
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.
Min Spread Slow 3
minimal allowed spread for a slow broker 3. If actual spread is lower than Min spread slow 3 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).
Bid offset 3
constant distance between bid on a fast and bid on a slow 3 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).
Ask offset 3
constant distance between ask on a fast and ask on a slow 3 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 Bright Trio strategy.
Min Pips
no effect in Bright Trio 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.
Curr Diff 3
current sell difference between a fast feed and a slow broker 3.
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.
Max Diff 3
maximum sell difference between a fast feed and a slow broker 3 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 Slow 3
current spread on a slow broker 3 (in points)
Curr Spread Fast
current spread on a fast broker (in points)
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.