﻿<?xml version='1.0' encoding='UTF-8'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>RightEdge Forums / General / Plugin Development </title><generator>InstantForum.NET v4.1.4</generator><description>RightEdge Forums</description><link>http://www.rightedgesystems.com/forums/</link><webMaster>rightedge@yyesoftware.com</webMaster><lastBuildDate>Wed, 15 Oct 2008 22:02:43 GMT</lastBuildDate><ttl>20</ttl><item><title>IBroker How to use BrokerOrder/Fill/BrokerPosition API?</title><link>http://www.rightedgesystems.com/forums/Topic6665-16-1.aspx</link><description>Could you give some help or point me in the direction of Help docs going over the proper use of BrokerOrders, Fills and BrokerPositions?&lt;br&gt;&lt;br&gt;I am trading futures...&lt;br&gt;&lt;br&gt;The PositionAvailable delegate is not used apparently, but when I update a BrokerOrder with a Fill, my order disappears from pending orders, but no position shows up.  How do I inform the system of a position?  Any way in the UI to see filled orders? &lt;br&gt;&lt;br&gt;I've been working off and on with getting a Broker plugin written to connect to my work's trading back end.  I finally have communications up and running, but cannot figure out how to tell the system I have a position...???&lt;br&gt;</description><pubDate>Mon, 15 Sep 2008 20:19:09 GMT</pubDate><dc:creator>chrisa23</dc:creator></item><item><title>Building bars from ticks</title><link>http://www.rightedgesystems.com/forums/Topic6585-16-1.aspx</link><description>On the symbol folder settings window there are two check boxes -&lt;br&gt;&lt;br&gt;1 for saving tick data&lt;br&gt;2nd for saving aggregated bars&lt;br&gt;&lt;br&gt;How does the aggregation process work?&lt;br&gt;Specifically, how does the voume and (day &amp; intraday bar) high and day low are populated?&lt;br&gt;Do you count on all TickType.Trade to capture highs/lows and sum the volume?&lt;br&gt;Or do you look at TickType.DailyVolume at the beginning of the bat and the end of the bar?&lt;br&gt;&lt;br&gt;&lt;br&gt;Also, another question related to real time provider, do you automatically raise the NewBar event based on the aggregated data?&lt;br&gt;What happens if my strategy has no implementation for NewTick, will the system still call the NewBar every x time (depending on the definition of the symbol in the watchlist) ?</description><pubDate>Thu, 04 Sep 2008 17:26:39 GMT</pubDate><dc:creator>lksf</dc:creator></item><item><title>Setting Margin Factor</title><link>http://www.rightedgesystems.com/forums/Topic6211-16-1.aspx</link><description>How can I set a margin factor for my simulated trades?</description><pubDate>Wed, 23 Jul 2008 23:09:51 GMT</pubDate><dc:creator>Michael Burns</dc:creator></item><item><title>Articles on writing Plugins</title><link>http://www.rightedgesystems.com/forums/Topic3745-16-1.aspx</link><description>I want to write plugins or at least want to take a look what it takes to write plugins. Now how do I go about this? I could not find any article on this topic on this website or this forum. &lt;br&gt;&lt;br&gt;To start, I want to take a look at following:&lt;br&gt;1. How to write a static datasource which maintain their own list of securities and  data for each security?&lt;br&gt;2. How to write realtime datasource which provides backfill and streaming data?&lt;br&gt;3. How to write an interface to link to a broker?&lt;br&gt;&lt;br&gt;&lt;br&gt;</description><pubDate>Wed, 10 Oct 2007 15:20:14 GMT</pubDate><dc:creator>sarah</dc:creator></item><item><title>Error on calling SeriesCalculatorBaseSimple</title><link>http://www.rightedgesystems.com/forums/Topic6187-16-1.aspx</link><description>Hi All -&lt;br&gt;&lt;br&gt;I'm creating a new indicator, and need to use SeriesCalculatorBaseSimple, as it depends on data in the past rather than just the current data. &lt;br&gt;&lt;br&gt;I have gotten a framework compiled and gotten RE to see my indicator. I have specified 1 for numberOfInputs in the constructor. &lt;br&gt;&lt;br&gt;But when I drag and drop my indicator on to a chart, the 'Plot XXX Indicator' dialog box doesn't let me choose Input 1, and then an exception is thrown saying:&lt;br&gt;&lt;br&gt;Need exactly 1 input series, 0 were passed in.&lt;br&gt;   at RightEdge.Common.SeriesCalculatorBase.SetInputs(ISeries[] newInputs)&lt;br&gt;   at RightEdge.Shared.SeriesCalculatorWrapper.SetInputs(ISeries[] inputs)&lt;br&gt;&lt;br&gt;Seems like I'm somehow missing how to tell RE what paramaters need to be passed into the indicator. I have looked at GetInputs and SetInputs, which both seem to be the imputs themselves, rather than a list of what needs to be passed in.&lt;br&gt;&lt;br&gt;Can someone please let me know how I have to let RE know what it needs to pass to my indicator?&lt;br&gt;&lt;br&gt;Thanks for your time in advance.</description><pubDate>Sun, 20 Jul 2008 17:01:42 GMT</pubDate><dc:creator>jsmarion</dc:creator></item><item><title>plugin error handling</title><link>http://www.rightedgesystems.com/forums/Topic5986-16-1.aspx</link><description>Oanda's API wants to throw an exception and disconnect you for every simple problem. This inevitably causes all sorts of grief. For example, there is no way to avoid the potential exception of an order being closed out from under you when a stop or target price is hit after you check the order's existence but before you can take any action on the order.&lt;br&gt;&lt;br&gt;check_order_exists();&lt;br&gt;&lt;--- if order is hit here.&lt;br&gt;change_order();  &lt;--- this now throws an exception and disconnects&lt;br&gt;&lt;br&gt;When submitting a CloseAtMarket() from a trading system on an active position with stops &amp; targets, RE calls the IBroker functions:&lt;br&gt;&lt;br&gt;CancelOrder(target-order);&lt;br&gt;CancelOrder(stop-order);&lt;br&gt;SubmitOrder(close-order);&lt;br&gt;&lt;br&gt;If one of the target/stop orders is hit (as described above) while this sequence is in progress; the plugin signals a disconnect by failing the CancelOrder() and setting the error state. the target/stop is left in a Submitted state. &lt;br&gt;&lt;br&gt;It then appears that RE continues on with the sequence [i]without checking the error state of the plugin[/i]. If the exception occurs when canceling the target, both CancelOrder(stop) and SubmitOrder(close) occur before RE calls Disconnect(). This causes a cascade of errors as the plugin is no longer even connected when these calls come in.&lt;br&gt;&lt;br&gt;Would it be possible to have RE check the results and fail the CloseAtMarket()? Even better could it perform it's reconnect logic before continuing with the sequence ? Otherwise, since the plugin doesn't know where in a sequence it might be, the plugin will have to manually handle reconnects on every call.&lt;br&gt;&lt;br&gt;Thanks,&lt;br&gt;Mark</description><pubDate>Tue, 17 Jun 2008 10:42:27 GMT</pubDate><dc:creator>mark0419</dc:creator></item><item><title>Historical Plugin Download Progress</title><link>http://www.rightedgesystems.com/forums/Topic5974-16-1.aspx</link><description>Hi&lt;br&gt;I am creating an historical download plugin.&lt;br&gt;How can I update the status/progress window with how many bars have been downloaded. Currently it just says "downloading" until all bars have been downloaded. This is not ideal when downloading takes a while as there is no feedback for the user.&lt;br&gt;&lt;br&gt;Any ideas ?&lt;br&gt;&lt;br&gt;Many thanks</description><pubDate>Mon, 16 Jun 2008 17:22:49 GMT</pubDate><dc:creator>byrne05</dc:creator></item><item><title>USD/JPY exception, can't convert JPY to USD</title><link>http://www.rightedgesystems.com/forums/Topic5849-16-1.aspx</link><description>I'm not sure what I'm doing wrong here. It may be something I'm doing wrong in the broker plugin, but this seems to be coming from RE. It happens when I send RE an OrderUpdated event when filling a market open transaction for USD/JPY.&lt;br&gt;&lt;br&gt;In the broker, I'm generating the fill price from the transaction response as follows:&lt;br&gt;&lt;br&gt;double sym_pr = transaction.Price;&lt;br&gt;double act_pr = 1.0;&lt;br&gt;fill.Price = new Price(sym_pr, act_pr);&lt;br&gt;&lt;br&gt;I've also tried inverting the account price to JPY/USD like this...&lt;br&gt;&lt;br&gt;fill.Price = new Price(sym_pr, act_pr/sym_pr);&lt;br&gt;&lt;br&gt;In either case I get this exception and live execution stops...&lt;br&gt;&lt;br&gt;[quote]Could not convert from JPY to USD for date 6/3/2008 6:20:21 AM.&lt;br&gt;&lt;br&gt;   at RightEdge.Common.ReturnCode.ThrowFailure()&lt;br&gt;   at RightEdge.Common.PositionInfo.GetCloseTrade(Double price, DateTime time, IAccountInfo accountInfo, PositionStats stats)&lt;br&gt;   at RightEdge.Common.PositionInfo.GetUnrealizedProfit(PositionStats stats, Double currentPrice, IAccountInfo accountInfo)&lt;br&gt;   at RightEdge.Common.PositionInfo.GetCurrentValue(PositionStats stats, Double currentPrice, IAccountInfo accountInfo)&lt;br&gt;   at RightEdge.Common.SystemStatistics.OrderFilled(BarStatistic stats, TradeInfo trade, PositionInfo position, Double lastPrice, IAccountInfo accountInfo, Dictionary`2 positionValues)&lt;br&gt;   at RightEdge.Common.BaseSystemHistory.OrderFilled(TradeInfo trade, PositionInfo pos, PositionState state)&lt;br&gt;   at RightEdge.Common.BaseSystemHistory.positionManager_OrderFilled(Object sender, OrderFilledEventArgs e)&lt;br&gt;   at System.EventHandler`1.Invoke(Object sender, TEventArgs e)&lt;br&gt;   at RightEdge.Common.PositionManager.OnOrderFilled(Trade trade, Position position, PositionInfo brokerPosition)&lt;br&gt;   at RightEdge.Common.PositionManager.PositionOrderFilled(PositionData pos, PositionState posState, BrokerOrder order, Fill fill, TradeType tradeType, String description, Boolean sendUpdate)&lt;br&gt;   at RightEdge.Common.PositionManager.OnOrderFilled(BrokerOrder order, Fill fill, PositionData pos, PositionState posState, TradeOrder tradeOrder)&lt;br&gt;   at RightEdge.Common.PositionManager.broker_OrderUpdated(BrokerOrder brokerOrder, Fill fill, String information)&lt;br&gt;   at RightEdge.Shared.BrokerWrapper.&lt;&gt;c__DisplayClass3.&lt;broker_orderUpdated&gt;b__0(Object )&lt;br&gt;   at RightEdge.Shared.CallbackStub.DoCallback()[/quote]&lt;br&gt;&lt;br&gt;I would think that RE already knows how to transpose the Base and Quote currencies when the account is valued in one or the other. When I run the same order code on USD valued instruments there is no problem. This leads me to think RE expects something else in the order when the instrument being traded is not valued in the account currency. Or maybe I've just setup the fill wrong...&lt;br&gt;&lt;br&gt;Any pointers?&lt;br&gt;&lt;br&gt;Thanks,&lt;br&gt;Mark</description><pubDate>Tue, 03 Jun 2008 03:02:17 GMT</pubDate><dc:creator>mark0419</dc:creator></item><item><title>limit order expiration questions</title><link>http://www.rightedgesystems.com/forums/Topic5603-16-1.aspx</link><description>When submitting a discretionary limit order, I'm noticing that the 'GoodTillCanceled' property of the BrokerOrder sent to my plugin is always set to true (regardless of what 'BarsInForce' is set to). Is this being handled via the PositionManager and a 'Timeout' order? What is 'GoodTillCanceled' intended to be used for in a broker plugin?&lt;br&gt;&lt;br&gt;My broker supports setting order expiration on the server side. This is much safer than relying on RE to submit a cancel order when the limit order eventually expires. As an example, using daily bars, set a 30 bar duration. If RE is not running on that exact day a [i]month[/i] down the road, the order will not be canceled at the correct time.&lt;br&gt;&lt;br&gt;From the docs, I see that the Order and TradeOrder classes contain a 'BarsValid' property. Any chance this could be passed into the BrokerOrder as well?&lt;br&gt;&lt;br&gt;Thanks,&lt;br&gt;Mark</description><pubDate>Tue, 13 May 2008 07:47:55 GMT</pubDate><dc:creator>mark0419</dc:creator></item><item><title>help closing a position</title><link>http://www.rightedgesystems.com/forums/Topic5597-16-1.aspx</link><description>I'm having difficulty running through a complete trade execution cycle in my broker plugin. For my testing, I am starting a live feed on one symbol, an analytic system (no trading) and placing a single long market order using the discretionary trade button. My plugin appears to processes this open request properly. I see it hit the pending window, then move to open when it is filled.&lt;br&gt;&lt;br&gt;My problem is that I can't seem to get it to close. When I select 'close position' (by right clicking in the open positions window) my plugin receives a new market order for the close action. In my broker plugin, I can trace the calls and see that the close order is getting a fill (and the filled state) and I am calling OrderUpdated on the close order. However, the close order remains in the 'pending orders' window and open position remains unchanged.&lt;br&gt;&lt;br&gt;Any pointers on what else to check or what I'm missing here would be greatly appreciated.&lt;br&gt;&lt;br&gt;Thanks,&lt;br&gt;Mark&lt;br&gt;&lt;br&gt;PS : This is the callback function in my broker plugin which handles transaction notices from the backend:&lt;br&gt;[quote]&lt;br&gt;public void handleAccountResponder(AccountResponder ar,fxAccountEventInfo aei,fxEventManager em)&lt;br&gt;        {&lt;br&gt;            string pair=aei.Transaction.Base + "/" + aei.Transaction.Quote;&lt;br&gt;            if(!_positions.ContainsKey(pair))&lt;br&gt;            {&lt;br&gt;                _error_str = "no position found for '" + pair + "'";&lt;br&gt;                throw new Exception(_error_str);&lt;br&gt;            }&lt;br&gt;&lt;br&gt;            bool found = false;&lt;br&gt;            BrokerPositionRecord pos = _positions[pair];&lt;br&gt;            foreach (TradeRecord tr in pos.TradeRecords)&lt;br&gt;            {&lt;br&gt;                int id_num=int.Parse(tr.openOrder.OrderId);&lt;br&gt;                if(aei.Transaction.TransactionNumber == id_num)&lt;br&gt;                {//matched the open order....fill it&lt;br&gt;                    Fill fill = OandAUtils.generateFillFromTransaction(aei.Transaction);&lt;br&gt;                    tr.openOrder.Fills.Add(fill);&lt;br&gt;&lt;br&gt;                    int tq = 0;&lt;br&gt;                    foreach (Fill f in tr.openOrder.Fills)&lt;br&gt;                    { tq += f.Quantity; }&lt;br&gt;&lt;br&gt;                    if (tq &gt;= tr.openOrder.Shares) { tr.openOrder.OrderState = BrokerOrderState.Filled; }&lt;br&gt;                    else { tr.openOrder.OrderState = BrokerOrderState.PartiallyFilled; }&lt;br&gt;&lt;br&gt;                    OrderUpdated(tr.openOrder, fill, "handleAccountResponder() : fill on openOrder");&lt;br&gt;                    found = true;&lt;br&gt;                    break;&lt;br&gt;                }&lt;br&gt;                else if(aei.Transaction.Link == id_num)&lt;br&gt;                {//transaction is linked to the open order&lt;br&gt;                    &lt;br&gt;                    Fill fill = OandAUtils.generateFillFromTransaction(aei.Transaction);&lt;br&gt;                    tr.closeOrder.Fills.Add(fill);&lt;br&gt;&lt;br&gt;                    int tq = 0;&lt;br&gt;                    foreach (Fill f in tr.closeOrder.Fills)&lt;br&gt;                    { tq += f.Quantity; }&lt;br&gt;&lt;br&gt;                    if (tq &gt;= tr.closeOrder.Shares) { tr.closeOrder.OrderState = BrokerOrderState.Filled; }&lt;br&gt;                    else { tr.closeOrder.OrderState = BrokerOrderState.PartiallyFilled; }&lt;br&gt;&lt;br&gt;                    OrderUpdated(tr.closeOrder, fill, "handleAccountResponder() : fill on closeOrder");&lt;br&gt;                    found = true;&lt;br&gt;                    break;&lt;br&gt;                }&lt;br&gt;            }&lt;br&gt;            if (!found)&lt;br&gt;            {&lt;br&gt;                _error_str = "no matching order found";&lt;br&gt;                throw new Exception(_error_str);&lt;br&gt;            }&lt;br&gt;        }&lt;br&gt;[/quote]</description><pubDate>Mon, 12 May 2008 11:38:37 GMT</pubDate><dc:creator>mark0419</dc:creator></item><item><title>multiple instance control</title><link>http://www.rightedgesystems.com/forums/Topic5552-16-1.aspx</link><description>Now that IsLiveBroker is sorted out, I'm making much better progress on my service plugin. I've been working with all of the interfaces (Iservice, IBarDataRetrieval, ITickRetrieval, IBroker) in a single monolithic plugin class as this is supposed to operate on a single connection only. &lt;br&gt;&lt;br&gt;I've set the IService.SupportsMultipleInstances to return false ;)&lt;br&gt;&lt;br&gt;I can connect live, stream ticks, add/remove symbols etc.. and only one instance is created. History downloads, when run without streaming data, work fine. However, while connected live, if I try to update history on another symbol a new instance of the service (and thus a new connection) is created.&lt;br&gt;&lt;br&gt;I haven't begun work on the broker piece yet, so I don't know what happens there.&lt;br&gt;&lt;br&gt;Does SupportsMultipleInstances() only apply to the component service? As it is part of the IService interface it seemed like it might be "plugin" global.&lt;br&gt;&lt;br&gt;Thanks,&lt;br&gt;Mark</description><pubDate>Tue, 29 Apr 2008 18:45:12 GMT</pubDate><dc:creator>mark0419</dc:creator></item><item><title>sample BrokerPluginService exception</title><link>http://www.rightedgesystems.com/forums/Topic5541-16-1.aspx</link><description>I just compiled the sample "BrokerPluginService" as-is, and setup a broker service 'sample' for it in RE. The following procedure results in an exception:&lt;br&gt;&lt;br&gt;*) create a new "empty" trading system&lt;br&gt;*) select a symbol folder, and set it's broker to the new 'sample' service.&lt;br&gt;*) select a symbol in the folder and connect live&lt;br&gt;*) run the "empty" system live...&lt;br&gt;&lt;br&gt;I have 0 lead bars, and 'run full sim before starting' is not selected.&lt;br&gt;&lt;br&gt;The inner exception suggests the sample should be implementing the ISimBroker instead of IBroker (or both)? or did I miss something else here?&lt;br&gt;&lt;br&gt;Thanks,&lt;br&gt;Mark&lt;br&gt;&lt;br&gt;[quote]&lt;br&gt;The service plugin BrokerPluginService threw an exception of type RightEdge.Common.RightEdgeError&lt;br&gt;   at RightEdge.Shared.ServiceWrapper.DoError(Exception e)&lt;br&gt;   at RightEdge.Shared.BrokerWrapper.SetAccountInfo(IAccountInfo accountInfo)&lt;br&gt;   at RightEdge.Common.BaseSystemHistory.set_Broker(ISimBroker value)&lt;br&gt;   at RightEdge.Common.SystemData.set_Broker(ISimBroker value)&lt;br&gt;   at RightEdge.Shared.SystemWrapper.SetSystemBroker(BrokerAccountState accountState)&lt;br&gt;   at RightEdge.Shared.SystemWrapper.SwitchToLiveMode(ServiceFactory brokerFactory, BrokerAccountState accountState, Boolean bFullSim, Boolean bSameBroker)&lt;br&gt;   at RightEdge.Shared.SystemWrapper.SwitchToLiveMode(ServiceFactory brokerFactory, BrokerAccountState accountState, Boolean bFullSim, Boolean bSameBroker)&lt;br&gt;   at RightEdge.Shared.TradingModuleWrapper.SwitchToLiveMode(ServiceAppDomainFactory brokerFactoryFactory, BrokerAccountState accountState, Boolean bFullSim, Boolean bSameBroker)&lt;br&gt;   at RightEdge.LiveSystem&amp;#119;indow.StartLiveSystem(xfb471916970b0c9e liveDataWindow, List`1 symbols, SystemDataCreationSettings settings, SystemRunInfo runInfo, RightEdgeCompiler compiler)&lt;br&gt;   at RightEdge.xf266856f631ec016.x7315d87aa80c241d()&lt;br&gt;   at RightEdge.xf266856f631ec016.xc44f2b7498b700f7(Object xe0292b9ed559da7d, EventArgs xfbf34718e704c6bc)&lt;br&gt;   at TD.SandBar.ToolbarItemBase.OnActivate()&lt;br&gt;   at TD.SandBar.ButtonItemBase.OnActivate()&lt;br&gt;   at TD.SandBar.ButtonItem.OnActivate()&lt;br&gt;   at TD.SandBar.ToolBar.OnItemRelease(ToolbarItemBase item, Point position)&lt;br&gt;   at TD.SandBar.ToolBar.OnMouseUp(MouseEventArgs e)&lt;br&gt;   at System.Windows.Forms.Control.WmMouseUp(Message&amp; m, MouseButtons button, Int32 clicks)&lt;br&gt;   at System.Windows.Forms.Control.WndProc(Message&amp; m)&lt;br&gt;   at TD.SandBar.ToolBar.WndProc(Message&amp; m)&lt;br&gt;   at RightEdgeUI.CustomToolBar.WndProc(Message&amp; m)&lt;br&gt;   at System.Windows.Forms.Control.ControlNative&amp;#119;indow.OnMessage(Message&amp; m)&lt;br&gt;   at System.Windows.Forms.Control.ControlNative&amp;#119;indow.WndProc(Message&amp; m)&lt;br&gt;   at System.Windows.Forms.Native&amp;#119;indow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)&lt;br&gt;&lt;br&gt;Inner Exception:&lt;br&gt;The broker did not implement the ISimBroker interface&lt;br&gt;   at RightEdge.Shared.BrokerWrapper.get_SimBroker()&lt;br&gt;   at RightEdge.Shared.BrokerWrapper.SetAccountInfo(IAccountInfo accountInfo)&lt;br&gt;[/quote]</description><pubDate>Mon, 28 Apr 2008 15:41:47 GMT</pubDate><dc:creator>mark0419</dc:creator></item><item><title>IQFeed Volunteers</title><link>http://www.rightedgesystems.com/forums/Topic5533-16-1.aspx</link><description>I've done a couple of tricks in order for our IQFeed implementation to be disassociated with the COM/ActiveX controls provided for .NET development.  Instead, I've opted for a socket based plugin for the very same reason we moved away from COM/ActiveX using Interactive Brokers.  The amount of headache for both us and the users makes the additional time up front to implement sockets well worth it in the long run.&lt;/P&gt;&lt;P&gt;So long story short, I would like a few folks to give it a go and tell me how it behaves on their machine.  I'd like someone I can work with in near real time if a problem is discovered.&lt;/P&gt;&lt;P&gt;You can email resupport at rightedgesystems if interested, or post a "me too" message here.&lt;/P&gt;&lt;P&gt;Thank you!</description><pubDate>Sun, 27 Apr 2008 14:10:19 GMT</pubDate><dc:creator>billb</dc:creator></item><item><title>Live Data Pug-In - Tick Out of Order</title><link>http://www.rightedgesystems.com/forums/Topic5499-16-1.aspx</link><description>In a live data plug-in what makes RE decide if a tick is out of order?&lt;br&gt;&lt;br&gt;I seam to be getting some ticks that RE says are out of order that happen to be at the beginning of a new bar. If we get an out of order tick the NewBar() method is not called and no trades are placed.&lt;br&gt;&lt;br&gt;Where would I start to look? Or are these logged anywhere so I can see what the tick looked like when RE decided it was out of order.</description><pubDate>Tue, 22 Apr 2008 05:41:50 GMT</pubDate><dc:creator>kaizen</dc:creator></item><item><title>DataStore Plugin</title><link>http://www.rightedgesystems.com/forums/Topic5274-16-1.aspx</link><description>The IBarDataStorage interface has some members for settings: RequiresSetup() and DoSettings().&lt;br&gt;But what is the idea behind it?&lt;br&gt;I.e. where should I store my settings?&lt;br&gt;&lt;br&gt;Is it true that I have to write my settings to some "private" place in the registry?&lt;br&gt;- or -&lt;br&gt;somehow find out RE's install directory (how?) and use a private file?&lt;br&gt;- or -&lt;br&gt;what is suggested?</description><pubDate>Sun, 06 Apr 2008 10:31:28 GMT</pubDate><dc:creator>DrKoch</dc:creator></item><item><title>Broker Plugin for RE1.2 - SetAccountState()</title><link>http://www.rightedgesystems.com/forums/Topic5221-16-1.aspx</link><description>I tried to adapt my broker plugin to version 1.2 and stumpled upon SetAccountState()&lt;br&gt;&lt;br&gt;The docu says: "Called ... to notify the broker of the list of orders that the system expects are pending, and the positions it expects are open"&lt;br&gt;&lt;br&gt;I am very confused (or should I say concerned?) about this.&lt;br&gt;&lt;br&gt;What does RE expect to happen?&lt;br&gt;&lt;br&gt;In a typical scenario RE and the Broker account get out of sync. RE thinks there are more (or less) pending orders and more (or less) open positions.&lt;br&gt;&lt;br&gt;This requires some action to bring both side back into sync.&lt;br&gt;&lt;br&gt;My thinking goes as follows: &lt;br&gt;If RE has a position which is not there in reality it should simply clear this psotion from its own internal (virtual) list of positions.&lt;br&gt;&lt;br&gt;If the broker has a pending Order which is not present in RE's internal list of pending orders, RE should simply add this order to its list.&lt;br&gt;&lt;br&gt;[b]Not the other way round![/b]&lt;br&gt;&lt;br&gt;The doc of SetAccountState() looks to me like RE expects me to change the real/life/true broker state to match its internal/virtual/out-of-sync status. Should I open a position? at what price? and create new orders?&lt;br&gt;&lt;br&gt;... confused / concerned ...&lt;br&gt;&lt;br&gt;Do I miss something here?&lt;br&gt;&lt;br&gt;</description><pubDate>Tue, 01 Apr 2008 08:40:16 GMT</pubDate><dc:creator>DrKoch</dc:creator></item><item><title>Handle Disconnect in Live Data Plugin</title><link>http://www.rightedgesystems.com/forums/Topic5084-16-1.aspx</link><description>How does a live data plug-in handle a disconnect?&lt;br&gt;&lt;br&gt;e.g. If I run live data and then disconnect my internet connection how/when will it try to reconnect?&lt;br&gt;&lt;br&gt;At the moment if I turnoff my Lan connection live data stops(as expected) then when reconnecting it does not know to try to reconnect.&lt;br&gt;&lt;br&gt;Are any events fired on disconnect where I can say loop until we reconnect?</description><pubDate>Tue, 25 Mar 2008 07:14:08 GMT</pubDate><dc:creator>kaizen</dc:creator></item><item><title>Determine if trade is a Take Profit</title><link>http://www.rightedgesystems.com/forums/Topic5216-16-1.aspx</link><description>When a trade is submitted to the live broker is there any way to tell if it is a Take Profit order?&lt;br&gt;&lt;br&gt;They come through as limit orders but how do we tell a normal limit order from a take profit?&lt;br&gt;&lt;br&gt;The reason being if I open a position for 100 units long @ $1.50 which has a take profit of $2. and before it gets to $2 I sell 100 units at $1.75 with a take profit of $0.95.&lt;br&gt;&lt;br&gt;The end result is I have zero exposure but there is the potential to have two limit orders that will be live. One at $2 and one at $0.95. If I can tell when we have a take profit order I can delete the orders as required.&lt;br&gt;&lt;br&gt;Does that make sense?&lt;br&gt;&lt;br&gt;</description><pubDate>Tue, 01 Apr 2008 05:31:26 GMT</pubDate><dc:creator>kaizen</dc:creator></item><item><title>Live System Error</title><link>http://www.rightedgesystems.com/forums/Topic5034-16-1.aspx</link><description>Any ideas on this error?&lt;br&gt;&lt;br&gt;It is with my own Oanda broker+rate plug-in but I can not tell where the is error is coming from.&lt;br&gt;&lt;br&gt;An exception of type System.ArgumentOutOfRangeException was thrown.&lt;br&gt;Index was out of range. Must be non-negative and less than the size of the collection.&lt;br&gt;Parameter name: index&lt;br&gt;   at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)&lt;br&gt;   at System.ThrowHelper.ThrowArgumentOutOfRangeException()&lt;br&gt;   at RightEdge.LiveSystem&amp;#119;indow.x88de47de341c742d(PositionInformation x8d3f74e5f925679c, GridRow xa806b754814b9ae0)&lt;br&gt;   at RightEdge.LiveSystem&amp;#119;indow.x8fc0d816911af80f(PositionInformation x8d3f74e5f925679c)&lt;br&gt;   at RightEdge.LiveSystem&amp;#119;indow.x516efd9a6cd87a3f()&lt;br&gt;   at RightEdge.LiveSystem&amp;#119;indow.x2e01f099ee7feedb(Dictionary`2 xd3a52115666f4605)</description><pubDate>Mon, 24 Mar 2008 03:14:14 GMT</pubDate><dc:creator>kaizen</dc:creator></item><item><title>Broker Plug-in - New tick</title><link>http://www.rightedgesystems.com/forums/Topic4952-16-1.aspx</link><description>What is:&lt;br&gt;&lt;br&gt;Public Sub NewTick() Implements RightEdge.Common.IBrokerUpdate.NewTick&lt;br&gt;&lt;br&gt;End Sub&lt;br&gt;&lt;br&gt;used for in the broker plug-in?&lt;br&gt;&lt;br&gt;Also is it possible to use the attach to process method to debug a broker plug-in?&lt;br&gt;</description><pubDate>Wed, 19 Mar 2008 06:54:23 GMT</pubDate><dc:creator>kaizen</dc:creator></item><item><title>Average Draw down</title><link>http://www.rightedgesystems.com/forums/Topic3803-16-1.aspx</link><description>Hi Guys,&lt;br&gt;&lt;br&gt;OK I have got my first system results plugin working. What I want to see is the average draw down for all trades rather then the max draw down for all trades. &lt;br&gt;&lt;br&gt;Where would I go about accessing the draw down for each trade? Is it possible?&lt;br&gt;&lt;br&gt;Thanks&lt;br&gt;&lt;br&gt;&lt;br&gt;</description><pubDate>Tue, 16 Oct 2007 06:30:23 GMT</pubDate><dc:creator>kaizen</dc:creator></item><item><title>Load options and stock price data programmablely</title><link>http://www.rightedgesystems.com/forums/Topic3802-16-1.aspx</link><description>I just download your trial version. One newbie question:&lt;br&gt;&lt;br&gt;- Do you have any programming samples to demonstrate how to load options and stock prices data (both historical data and real time quotes) in code (not using mouse or clicks) in your IDE? I am writing code for a strategy to trade options on equties and futures. This ability is crucial for our task.&lt;br&gt;&lt;br&gt;- Since loading equity prices is very different from loading options and futures prices, most other platforms only put samples on stocks in their documents. Do you guys have samples in your documents devoting to options and futures?&lt;br&gt;&lt;br&gt;I have tried several other platforms, such as smartquant. Not very satisfied with it.&lt;br&gt;&lt;br&gt;Thanks.</description><pubDate>Tue, 16 Oct 2007 01:07:42 GMT</pubDate><dc:creator>jingz</dc:creator></item><item><title>Charty Object Plugins - How To</title><link>http://www.rightedgesystems.com/forums/Topic4637-16-1.aspx</link><description>Where can I start looking into creating my own chart object plugin?&lt;P&gt;thx</description><pubDate>Thu, 21 Feb 2008 12:38:25 GMT</pubDate><dc:creator>DoQ</dc:creator></item><item><title>Oanda Plugin Users</title><link>http://www.rightedgesystems.com/forums/Topic3892-16-1.aspx</link><description>If you've tried the Oanda plugin for rates and execution, you notice that it's not showing up in the list of services.  I believe we have gotten to the bottom of this for many, if not all of the cases.  This will be out for RC2, but I can offer an internal build for those that would like to try it now.  Just reply to this message or send an email to support (resupport at rightedgesystems dot com).</description><pubDate>Mon, 05 Nov 2007 16:49:18 GMT</pubDate><dc:creator>billb</dc:creator></item><item><title>OpenTick "ALL" Exchanges flag</title><link>http://www.rightedgesystems.com/forums/Topic4571-16-1.aspx</link><description>I noticed similar inconsistencies with Opentick data Live and historical as other users. Take a quick read at &lt;A href="http://www.opentick.com/forum/viewtopic.php?t=3018"&gt;http://www.opentick.com/forum/viewtopic.php?t=3018&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Can we be sure that RE requests data from all exchanges thru OpenTick as I doubt this is happening currently.&lt;/P&gt;&lt;P&gt;thx</description><pubDate>Tue, 12 Feb 2008 16:30:08 GMT</pubDate><dc:creator>DoQ</dc:creator></item><item><title>Beta native .NET plugin for Interactive Brokers</title><link>http://www.rightedgesystems.com/forums/Topic4520-16-1.aspx</link><description>We have been working on a new plugin for Interactive Brokers which is entirely .NET based and doesn't use the TWS ActiveX control.  This means that the TWS API does not need to be installed, and it should avoid the versioning and registration problems that would often manifest themselves as COMException errors.  With RightEdge 1.1, we released a version of this plugin that supported historical and realtime data, but not broker functions.&lt;P&gt;We now have the broker functions working, and we've given beta versions of the plugin out to several people.  I've recently fixed a bug where short orders would not work, and added the capability to connect to an instance of TWS running on a different machine.  I decided to post the latest version of the plugin here.&lt;/P&gt;&lt;P&gt;To use the plugin, download the attached zip file and unzip into the plugins directory under the RightEdge installation folder.  You will need to create a new service, using the plugin titled "Interactive Brokers Plugin".&lt;/P&gt;&lt;P&gt;This plugin is based on the Interactive Brokers C# API available at &lt;A href="http://www.dinosaurtech.com/utilities/"&gt;http://www.dinosaurtech.com/utilities/&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;Thanks,&lt;BR&gt;Daniel</description><pubDate>Sun, 03 Feb 2008 22:15:53 GMT</pubDate><dc:creator>dplaisted</dc:creator></item><item><title>Higest and lowest closes</title><link>http://www.rightedgesystems.com/forums/Topic4447-16-1.aspx</link><description>I have uploaded the source code (C#) for two plugins. One plots the highest close in an interval. The other plots the lowest close in an interval. See "RcntHighClose" and "RcntLowClose". There is additional discussion on the Yahoo grouip.</description><pubDate>Fri, 25 Jan 2008 10:00:31 GMT</pubDate><dc:creator>phg</dc:creator></item><item><title>Heikin-Ashi Close</title><link>http://www.rightedgesystems.com/forums/Topic4458-16-1.aspx</link><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT color=#000000&gt;&lt;FONT face="Times New Roman"&gt;I have uploaded an indicator that is an implementation of the Heikin-Ashi close. It is the close, not the smoothed average: that can be obtained by applying available RE functions to this close series. There seem to be a number of versions floating about, but I think I have managed to implement the 'correct' one. (See TASC, February 2008) This is one of the foundation elements for "Trading Medium-Term Divergences", page 17, TASC February 2008.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;</description><pubDate>Sun, 27 Jan 2008 19:54:58 GMT</pubDate><dc:creator>phg</dc:creator></item><item><title>Multithreaded Plugins</title><link>http://www.rightedgesystems.com/forums/Topic4313-16-1.aspx</link><description>The average realtime data plugin and broker plugin will be multithreaded: Ticks and fills come in asynchronously.&lt;br&gt;&lt;br&gt;How handle the communication with RE?&lt;br&gt;Which calls are thread-save, which are not?&lt;br&gt;&lt;br&gt;For example, I noticed that&lt;br&gt;[code]Console.WriteLine()&lt;br&gt;Console.Error.WriteLine()[/code]&lt;br&gt;are [b]not[/b] thread safe.&lt;br&gt;&lt;br&gt;Can we have a few lines of example code?&lt;br&gt;</description><pubDate>Wed, 16 Jan 2008 01:24:20 GMT</pubDate><dc:creator>DrKoch</dc:creator></item><item><title>Feature Requests: Plugin Interface Extensions</title><link>http://www.rightedgesystems.com/forums/Topic4430-16-1.aspx</link><description>I need a few minor extensions to the existing plugin interfaces:&lt;br&gt;&lt;br&gt;1.) A plugin should know if it is activated as historical data and/or realtime data and/or broker plugin&lt;br&gt;2.) A realtime data plugin should know if a Strategy starts to consume its events&lt;br&gt;&lt;br&gt;Why?&lt;br&gt;&lt;br&gt;Now, 1.) is required by my realtime/broker plugin because both modes connect to broker's software to receive quites and to send orders. In case broker's software crashes down, my plugin tries to restart the application. Because both plugins (realtime and broker) are the same code but run as completely independent entities, they both try tor restart broker's application at the same time which leads to all kinds of problems (imagine!). So, if the plugin is used for data and brokerage, only the data part should try the restart. If the plugin is used as a broker plugin only, the broker part should try the restart. To get this right (without requiring the user to make that decision) I need the info, if the current folder uses my plugin as data feed and/or broker.&lt;br&gt;&lt;br&gt;And 2.) is required, because some data arrives in the quote stream only once, for example "Yesterday's close price". Whenever a strategy connects to the realtime data plugin, the data plugin has to send this "rare" information once to the strategy.&lt;br&gt;&lt;br&gt;</description><pubDate>Thu, 24 Jan 2008 03:12:33 GMT</pubDate><dc:creator>DrKoch</dc:creator></item><item><title>OpenTick Plugin</title><link>http://www.rightedgesystems.com/forums/Topic4421-16-1.aspx</link><description>I have been trying to write a stub to clean extended hours data from OpenTick historical data to avoid having to wait again for another release. After many hours of frustration, I came to the conclusion that this is not feasible either. Trying to clean 100 symbols with 1 year of 1 minute data results in a crash after many hours. Never mind the effort in reimporting the data after that. I can only do handful of symbols at a time and is way too time consuming to do everyday. So my only option is to have RTH (with user adjustable start and end times defining RTH) coded into the plugin by RESupport for an interim build or do it myself. I'll assume I'll have to do it myself, but can I at least get a copy of the RE OpenTick Plugin source and make my life easier? &lt;P&gt;:angry:&lt;/P&gt;&lt;P&gt;thx</description><pubDate>Tue, 22 Jan 2008 14:36:18 GMT</pubDate><dc:creator>DoQ</dc:creator></item><item><title>Live Broker Plugin</title><link>http://www.rightedgesystems.com/forums/Topic3509-16-1.aspx</link><description>I am finalizing my broker adapter for Oanda and was wondering how I use the OrderFilled and OrderSubmitted events in RE.&lt;br&gt;&lt;br&gt;In my broker adapter I use SubmitOrder to enter the marker/limit order to my broker. &lt;br&gt;&lt;br&gt;As my stop loss and Take Profits are dynamic I can not set them with this order until I have the fill price of the order.&lt;br&gt;&lt;br&gt;So I use the OrderFilled event and when it fires I update the order with the new SL and TP.&lt;br&gt;&lt;br&gt;How do I tell my broker adapter to go to my broker with a trade ID and update the SL and TP. Hope that makes sense.&lt;br&gt;&lt;br&gt;Also when/how are CancelAllOrders, CancelOrder, GetOpenOrder, GetOpenOrders called?&lt;br&gt;&lt;br&gt;Another suggestion for the forum. It may be worth adding a plugin forum for all these questions.&lt;br&gt;&lt;br&gt;Thanks&lt;br&gt;&lt;br&gt;James</description><pubDate>Mon, 10 Sep 2007 07:27:02 GMT</pubDate><dc:creator>kaizen</dc:creator></item><item><title>GetBarCount</title><link>http://www.rightedgesystems.com/forums/Topic4134-16-1.aspx</link><description>When does GetBarCount get called in the Data Base data Store?</description><pubDate>Wed, 26 Dec 2007 04:19:15 GMT</pubDate><dc:creator>kaizen</dc:creator></item><item><title>System Results Plugins</title><link>http://www.rightedgesystems.com/forums/Topic4031-16-1.aspx</link><description>I am working through my first System Results Plugin.&lt;br&gt;&lt;br&gt;First, a small observations:&lt;br&gt;The Author="me" Attribute of class SysResultsPlugin does not find its way to Tools-&gt;Options-&gt;System Results-&gt;MySysResultPlugin-&gt;Info. It says "&lt;Autjor not specified&gt;" which hurts my ego for unknown reasons...&lt;br&gt;&lt;br&gt;Second a few questions:&lt;br&gt;* What is the return value of ShowCustomSettingsForm() used for?&lt;br&gt;* is there any interesting difference between SysResultsControl_Load() and SysResultsControl() for the task at hand?&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description><pubDate>Mon, 10 Dec 2007 08:25:26 GMT</pubDate><dc:creator>DrKoch</dc:creator></item><item><title>Indicator Question</title><link>http://www.rightedgesystems.com/forums/Topic3960-16-1.aspx</link><description>I have created an indicator plugin and everything seems to work fine, I can drag it onto a chart and it all calculates correctly etc., however when I try and create the indicator in code in my system it does not show up in the intellisense where I believe it should be. I am using Indicators("myIndicator").CreateIndicator(New....-it does not appear here. Any ideas on what I have missed out on?&lt;/P&gt;&lt;P&gt;Thanks.</description><pubDate>Fri, 16 Nov 2007 04:09:09 GMT</pubDate><dc:creator>BigBerner</dc:creator></item><item><title>Risk Assessment Plugin - GetClassName</title><link>http://www.rightedgesystems.com/forums/Topic3857-16-1.aspx</link><description>I have built a risk assessment plugin but having trouble with the GetClassName method. The class that implements the interfaces is called MyRiskAssessment, so I have the following&lt;/P&gt;&lt;P&gt;Public&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Function&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; GetClassName() &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Implements&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; RightEdge.Common.IRiskAssessmentPlugin.GetClassName&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Return&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;"MyRiskAssessment"&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Function&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;What am I doing wrong here? It is throwing the error&lt;/P&gt;&lt;P&gt;Unable to find class with id MyRiskAssessment implementing type RightEdge.Common.IRiskAssessment&lt;BR&gt;   at RightEdge.PluginFinder.GetTypeById(Type interfaceType, String id)&lt;BR&gt;   at RightEdge.PluginFinder.ConstructClass[T](String id, Object[] constructorArgs, Boolean createWrapper)&lt;BR&gt;   at RightEdge.PluginFinder.DoRiskAssessment(SystemData baseSystem, IList`1 pluginIDs)&lt;BR&gt;   at RightEdge.SystemWrapper.x52ef4d2a0d98271a(SystemData x98d4678c2951cc7a, SystemRunInfo x9d1811d594cb536b, Dictionary`2 x2c50334dbe0bafd0, String xe7444de1f6d6a785)&lt;BR&gt;   at RightEdge.SystemWrapper.RunSystem(DateTime start, String filename)&lt;BR&gt;   at RightEdge.SystemWrapper.RunSystem(DateTime start, String filename)&lt;BR&gt;   at RightEdge.TradingModuleWrapper.RunSystem(SystemDataCreationSettings settings, Dictionary`2 historicalData, SystemRunInfo dndInfo, String brokerService)&lt;BR&gt;   at RightEdge.SystemProgress.InitAndRunSystem()&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;/FONT&gt; &lt;/P&gt;&lt;P&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/P&gt;&lt;/FONT&gt;</description><pubDate>Sat, 27 Oct 2007 03:59:47 GMT</pubDate><dc:creator>BigBerner</dc:creator></item><item><title>Welcome to Plugin Development</title><link>http://www.rightedgesystems.com/forums/Topic3511-16-1.aspx</link><description>By suggestion, we've started a new forum for plugin developers to converge and collaborate.  Of course, RightEdge developers will be keeping an eye on this forum to provide help to plugin developers.</description><pubDate>Mon, 10 Sep 2007 07:46:38 GMT</pubDate><dc:creator>billb</dc:creator></item></channel></rss>