Posted Friday September 28 2007
We're opening up the beta to all registered members. This beta release is nearly feature complete, but we're not there yet. If you're a license holder, you may want to back up your RightEdge.lic file and replace it after the installation. If you're using a trial license, the beta will continue to work with this license. Please contact resupport at rightedgesystems dot com if you're having any difficulties getting it installed.
You can download the beta here.
Now onto the release notes.
- The "Currency Symbol" in the RightEdge options has been changed to "Account Currency". This needs to match the "Asset Currency" from the Symbol Information of each symbol, except for forex pairs which are based on your Account Currency.
- Forex symbol setup has been improved. You can enter the symbol names in the format "EUR/USD", and the Asset Currency in the symbol information will be set to USD. This means you can enter multiple forex symbols at once from the add symbol dialog, and you can distinguish between forex pairs with the same base currency. You will still have to set up the tick size, contract size, and initial margin in the Symbol Information. The Interactive Brokers plugin has been updated to work with forex symbols specified this way.
- New Utility Indicators are Available
- Bar Performance - Displays price movements as percentages.
- Floor - Retrieves the floor of an input value.
- Ceiling - Retrieves the ceiling of an input value.
- Consecutive - Tracks the consecutive movements of a series.
- Round - Rounds an input value.
- Absolute Value - Retrieves the absolute value of an input.
- MB Trading Real Time Data and Broker Plugin Available. MB Trading customers will be able to retrieve real time data or perform broker functions through MB Trading. Please note that MB Trading only allows one connection per machine.
- Interactive Brokers plugin now supports FA accounts. This is a setting within the IB broker plugin. Simply set the account code for the account to enable this functionality.
- Profit calculations have been corrected for forex pairs where your account currency is the base currency. Attempting to trade a forex pair which does not include your account currency will now be treated as an error. This is because the profit would need to be converted to your account currency, but the exchange rate is not known.
- Paper trader has a new option to use the bid and ask price to calculate fills. If enabled, it will look at the bid and ask values for a bar to determine the spread. To use this option, the bid and ask prices for the bar should be the bid and ask prices at the close of the bar. If the bid and ask are zero, it will use the normal prices. If they are nonzero, it will use the difference between the close and the bid and ask to calculate bid and ask values for the OHLC values. The bid values will be used for sell transactions, and the ask values will be used for buy transactions.
- A SubmitOrder method has been added to PositionManager. This method will allow you to submit an arbitrary order for a position. You can specify the number of bars the order should be active for. This method returns a ReturnValue<string>, which will hold the order ID of the order if it was successfully submitted. A CancelOrder method has also been added to PositionManager, which allows you to cancel a pending order.
- When collecting live data, the aggregated bars will now include the bid and ask prices, if available.
- You can now use an Enum type as a constructor argument for your indicators.
- RightEdge has always allowed you to have more than one open position per symbol, if you want. This allows you to have seperate exit criteria (profit targets, stop losses, etc.) for positions that were opened at different price points. However, the broker doesn't make this distinction. If you have two positions open for 100 shares each, the broker sees your current position as 200 shares long. When dealing with simple equity trading, this distinction doesn't matter much. However, when dealing with short positions, forex symbols, or symbols with a margin requirement, the profit and loss calculations can be different depending on whether you are calculating them for multiple seperate positions or a single combined position. Because of this, the position manager has been modified to keep track of the combined positions for the purposes of profit and loss calculation. We are calling these positions the broker positions. If you subscribe to PositionManager's OrderFilled event, you can access the corresponding broker position using the BrokerPosition member of the OrderFilledEventArgs object.
- The Paper Trader has a new setting to allow position reversal. This will allow a sell or cover order which is bigger than your current position size to be filled, opening a position in the opposite direction with the remaining shares. In other words if you are long 100 shares on a symbol, you could submit an order to sell 300 shares, and you would end up short 200 shares for that symbol.
- Position manager has improved support for position reversal and orders that are filled on a closed position. When either of these happens, we say that a position has been overfilled. By default RightEdge will throw an exception when this happens. You can use the PositionOverfilledAction property and the PositionOverfilled event (both members of PositionManager) to modify this behavior. See the developer documentation on these items for more information.
- Oanda interest rate plugin added. This allows you to download historical interest rates for different currencies.
- We have added two properties to the SystemData class. The SymbolBars property gives you a list of bars for each symbol, without any empty bars. Because of this the lists for different symbols can have different lengths. The SystemBars property gives the list of bars for each symbol, with empty bars included. So a given index should correspond to the same date/time for all the SymbolBars lists. The old BarCollections property has the same value as the SystemBars property, but it is now obsolete. We think the SystemBars property is clearer to understand, so we recommend using the it instead. The lists for each symbol are now of type IList<BarData>, instead of type List<BarData> as before. This is done to avoid storing two lists for each symbol. We have written a wrapper class that implements IList<BarData> that is more efficient. You may have to replace List<BarData> with IList<BarData> in your code.