Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

    (route=ARCA),(contra=ARCA) => 0.003

Slicing 

Sometimes you may want to match one particular character placed in the nth position of a string in order to assess a fee based on that sliced character.  You can use brackets [ ] to do so and note that you can use this with non-numeric comparison operators (!= and =).   Using [] or [:] alone will have no effect.   Slicing is available beginning in version 1.6.5.68.

Example: In the Liq field there is an eight character string of "ABCDEFGH".  The following examples of slicing could be used:

Condition examplesFee Rule Syntax

liq[1] will match against A

liq[1]=A => 0.001
liq[2] will match against Bliq[2]=B => 0.001
liq[1:2] will match against ABliq[1:2]=AB => 0.001
liq[1:5] will match against ABCDEliq[1:5]=ABCDE => 0.001
liq[4:] will match against DEFGHliq[4:]=DEFGH => 0.001
liq[:4] will match against ABCDliq[:4]=ABCD => 0.001

When multiple sliced conditions need to be true, use the AND-ing semi-colon character ";"

liq[1] will match against A  and  liq[4] will match against D


liq[1]=A;liq[4]=D => 0.001

When one sliced condition needs to be true, use the OR-ing comma character ","

liq[1] will match against A  or  liq[4] will match against D


liq[1]=A,liq[4]=D => 0.001


Fees

Positive fees are charges, negative fees are rebates. There are four ways to assess a fee or rebate:

MethodExample
Per Share0.003     (1,000 shares @ $2 is charged 1,000 * 0.003 = $3.00).
Percentage of Value0.003%   (1,000 shares @ $2 is charged $2,000 * 0.003 = $6.00).

Fixed Amount per Execution (available in v1.5.92.51.3 or greater)

[10]       ($10 is charged)  
Pass Through (do not change)blank (the fee will be left as received from the data source)


You can also specify a minimum/maximum of two or three fees (available in PropReports v1.5.91.17 and greater):

ExampleDescription
max(0.003%, 0.003)Result will be the highest of :   (0.003 * trade value) or (0.003 * quantity)
min(0.003%, 0.003, 3)Result will be the lowest of :   (0.003 * trade value) or (0.003 * quantity) or 3


Markup/Markdown

To mark up or mark down a received (original) fee you can specify a fee as follows (PropReports v1.5.97.14.36 and greater): 

(warning) Important: When using in Fee Rules plan, the fee that is being marked up/down is the computed Exchange Fee.  If you need to mark up/down a different trade fee, you will need to use this within a Per Execution plan type.

ExampleDescription
markup(0.003)Add a charge of 0.003 per share to the imported fee.
markdown([1])Reduce imported fee by $1

Blocks

To avoid repeating the same condition you can specify blocks.

Instead of:

route=EDGA;liq=A => -0.002
route=EDGA;liq=B => 0.0002

You can use:

route=EDGA {
    liq=A => -0.002
    liq=B => 0.0002
}

Blocks can also be nested.  For example: 

route=EDGA {
    penny=true {
        liq=A => -0.001%
        liq=B => 0.003%
    }
    liq=A => -0.002
    liq=B => 0.0002
}

Comments

Any lines that start with a '#' are ignored. Any text following a '#' at the end of a line will also be ignored. Comments are available in PropReports v1.5.91.17 and greater.

# this Comment line will be ignored
route=EDGA;liq=A => -0.002
route=EDGA;liq=B => 0.002   # another comment that will be ignored