[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [amibroker] GetStatus error, is it code or a timing error?



PureBytes Links

Trading Reference Links

Hi Barry,

I've found similar inconsistancies. I is probably due to IB messaging and 
order processing.

So here is what I do: I save previous states of all 3 orders before in each 
refresh (1 sec) I ask for the new states. I also ask for position size.
I compare previous and current states. If there is a difference I report 
what the code suspect (target, stop loss or entry order fills.)
and start a delay of 5 sec.  After this delay I my code take the right 
action. By this time position size is usually correct.

If anyone have a better solution it is welcome.

Regards it helps.

Y


--------------------------------------------------
From: "Barry Scarborough" <razzbarry@xxxxxxxxxxxx>
Sent: Thursday, May 07, 2009 7:51 PM
To: <amibroker@xxxxxxxxxxxxxxx>
Subject: [amibroker] GetStatus error, is it code or a timing error?

> I am submitting an OCA group of three orders, a MKT order with a GAT set 
> to
> three bars in the future. The second order is a MIT set to the profit 
> target and
> the third is a STP set to the loss target.
> When I send a order I turn a GetStatus flag on and every scan through the
> program it gets the status of the orders. Once in a while GetStatus 
> reports the
> status of the order incorrectly. In the last case the MIT was filled but 
> the
> status was reported as pre-submitted and the MKT and STP were reported as
> pre-Submitted. The IBC message log shows the first and third order 
> canceled and
> the MIT filled. Get status does not report a filled status.
>
> In the trace, before the order was canceled due to the MIT, the GetStatus
> returned the following:
> [580] #, StatusInc, OrdState 1a1, Status A, B and C=PreSubmitted, 
> PreSubmitted,
> PreSubmitted
>
> The program captures the error codes that come back and that shows the 
> order was
> canceled and the reason was blank meaning the cancel was due to the unused 
> OCA
> members being canceled.
> Right after that I ask for status of the three orders and this is what I 
> get:
> [580] #, StatusInc, OrdState 1a1, Status1, A, B and C=Canceled, 
> PreSubmitted,
> PreSubmitted According to this the order was not filled.
>
> The above does not agree with the IBC trade log. Is there a timing problem 
> here?
>
> This is the part of the status processing code:
> LastError = "";
> {
> LastError = ibc.GetLastError(0);
> if(LastError != "")
> {
> LastErrorID = fProcessError(LastError);
> if(DebugOn) _TRACE("#, Status processing @@@#@@@ LastError=" +
> LastError);
> }
> }
> if(DebugOn) _TRACE("#, Status processing @#$$$#@ LastError=" + LastError);
>
> tempStatus = "None";
> if(GetStatus)
> {
> tempStatus = tempStatusA = tempStatusB = "";
> tempStatus = ibc.GetStatus( ordID, True ); // get order status
> tempStatusA = ibc.GetStatus( ordIDa, True ); // get order status of OCA 
> group
> member
> tempStatusB = ibc.GetStatus( ordIDb, True ); // get order status of OCA 
> group
> member
>
> if(DebugOn) _TRACE("#, StatusInc, OrdState 1a1, Status A, B and C=" +
> tempStatus + ", " + tempStatusA + ", " + tempStatusB);
>
> if(tempStatus == "Filled" OR tempStatusA == "Filled" OR tempStatusB == 
> "Filled"
> ) // check for a filled on each order
> ...
>
> Since InclFilled is set to True statuses of orders listed on "Executions" 
> list
> are reported and this means that you can get "Canceled", "Filled", 
> "Error",
> "Inactive" consistently.
>
> It seems they are not reported consistently and I don't know why. 95% of 
> the
> time this works flawlessly. But the other 5% are screwing my system up. 
> Any idea
> why GetStatus is not processing the order status correctly???
>
> Will getting LastError change the results of the GetStatus? Most of the 
> time it
> does not. It seems status and error reporting are separately or 
> independently.
>
> Thanks in advance,
> Barry
>
>
>
>
> ------------------------------------
>
> **** IMPORTANT PLEASE READ ****
> This group is for the discussion between users only.
> This is *NOT* technical support channel.
>
> TO GET TECHNICAL SUPPORT send an e-mail directly to
> SUPPORT {at} amibroker.com
>
> TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
> http://www.amibroker.com/feedback/
> (submissions sent via other channels won't be considered)
>
> For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
> http://www.amibroker.com/devlog/
>
> Yahoo! Groups Links
>
>
>
> 


------------------------------------

**** IMPORTANT PLEASE READ ****
This group is for the discussion between users only.
This is *NOT* technical support channel.

TO GET TECHNICAL SUPPORT send an e-mail directly to 
SUPPORT {at} amibroker.com

TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
http://www.amibroker.com/feedback/
(submissions sent via other channels won't be considered)

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:amibroker-digest@xxxxxxxxxxxxxxx 
    mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/