NinjaTrader Support Forum  

Go Back   NinjaTrader Support Forum > Application Technical Support > Automated Trading

Automated Trading Support for automated trading systems using NinjaScript. Support for our ATI (Automated Trading Interface) used to link an external application such as TradeStation and eSignal to NinjaTrader.

Reply
 
Thread Tools Display Modes
Old 12-10-2005, 02:13 AM   #1
aspTrader
 
Join Date: Mar 2005
Location: Walnut Creek, California, USA
Posts: 74
Thanks: 0
Thanked 0 times in 0 posts
Post imported post

Rather than clog the ATI section of the forum with posts I thought I'd create a single thread for myself and then update it.

I'll always list my Fixes and Features requests in priority order.

Note: It should be understood that my pushing Fixes and Features issues is NOT an indication of my finding the Ninja Trader ATI an unworthy execution platform. Just the opposite. It works in my testing and I'm pushing issues precisely because it is already a robust platform.



- your friendly neighborhood aspTrader
aspTrader is offline  
Reply With Quote
Old 12-10-2005, 02:24 AM   #2
aspTrader
 
Join Date: Mar 2005
Location: Walnut Creek, California, USA
Posts: 74
Thanks: 0
Thanked 0 times in 0 posts
Post imported post

High Priority Fixes Requests

1 "Confirm order placement" block

When the "Confirm order placement" dialog is open, other Ninja Trader operations cannot take place. In trading multiple instruments via the ATI, this is troublesome because one may not want to cancel the order placement but still want to perform other Ninja Trader actions. <<=== High priority


2 Inconsistent "Inside" Bid/Ask Sizes

...between Control Center Orders tab data and SuperDom data when using External Data Feed. Control Center Orders tab data matches platform data source of the External Data Feed.


3 ...


ATI New Feature FUNCTIONAL Requests

1 Function to turn off the Ninja Trader Simulator Limit Order Fill Logic

Useful for testing systems. Fine to have an option to do this manually on the Options menu.


2 Function to turn User Order Confirmation On/Off from External application via ATI

Useful to require confirmation for entries but external application places PTs and STs without confirmation. On/off by account and symbol

ConfirmationStatus( account, symbol, 'ON'/'OFF' )


3 Ninja Trader SuperDOM should remember whether it has been "collapsed" from session to session.

ATI users will mostly want it collapsed. Currently, new SuperDOMs are always opened un-collapsed.


4 New Function to return indication of what Data Feed Ninja Trader is using

Useful for programmatically shutting off External Feed Data application data sources if the Ninja Trader External Data Feed is not enabled.

5 ...




ATI New Feature INFORMATION Requests

1 Function to compute net profit for the current day for a symbol

Includes subtraction of transaction costs. Interface is something like:

SymbolNetProfit( account, symbol )


2 Function to compute net profit for the current day for an account

Includes subtraction of transaction costs. Interface is something like:

AccountNetProfit( account )


3 Function to get OpenOrderCount by status

Interface is something like:

OpenOrderStatusCount( account, symbol, Status )


4 Function to get OpenOrderList by status

Returns a delimited string. Interface is something like:

OpenOrderStatusList( account, symbol, status )


5 Function to get Order Properties by property name:

Returns property value as a string. Interface is something like:

GetOrderProperty( OrderID, PropertyName )

List of properties includes ALL properties of order object. (Obviously some are more important than others.)


6 Function to get Open Position Properties by Account, Symbol, and property name:

Returns property value as a string. Interface is something like:

GetOrderProperty( Account, Symbol, PropertyName )

List of property names below. (Obviously some are more important than others.)

- OpenPositionPL: Open Position Net Profit

- OpenPositionEntryDateTime


... more to follow ...














Resolved Fixes Requests

1 ...


Resolved New Feature Requests

1 Capability to "reset" Order/Trade database to null

Ooops. Functionality already exists. Thanks Ray.

In the ATI Order Placement testing process using an external data feed it is necessary to retest whenever a problem is encountered. But any orders placed previously in that testing process are still in the database. Exiting out of NJ doesn't clear those orders. As a workaround what I've done is to create an empty NJ database in a separate folder and what I do is exit out of NJ, copy the null database into the proper directory, and then re-enter NJ.

This slows down testing significantly.

I understand that you'd need to hide the "Database Reset to Null" functionality somewhere so it wouldn't inadvertently be hit. But it's essential for ATI users to not have to hassle with this.

Can I get this quickly?


2 ATI doesn't work after DB Reset without NJ Exit

I have been able to replicate this error two times now... Context: External Data Feed, Orders through DLL ATI... If I do a NJ DB Reset and rerun my external application the orders won't appear in NJ. If I do a reset and then Exit NJ, then the orders will appear in NJ when sent from the external application.


aspTrader is offline  
Reply With Quote
Old 12-10-2005, 02:39 AM   #3
NinjaTrader_Ray
Administrator
 
NinjaTrader_Ray's Avatar
 
Join Date: Nov 2004
Location: Denver, CO, USA
Posts: 11,163
Thanks: 6
Thanked 45 times in 32 posts
Post imported post

Maybe I don't follow your request but can't you just press the "Reset..." button in the Simulator tab under Tools-->Options?
NinjaTrader_Ray is offline  
Reply With Quote
Old 12-10-2005, 02:44 AM   #4
aspTrader
 
Join Date: Mar 2005
Location: Walnut Creek, California, USA
Posts: 74
Thanks: 0
Thanked 0 times in 0 posts
Post imported post

Ooops. Sorry. Thanks.

Moved my first request to Resolved. See how easy this is?

aspTrader is offline  
Reply With Quote
Old 12-10-2005, 03:17 AM   #5
NinjaTrader_Dierk
Administrator
 
NinjaTrader_Dierk's Avatar
 
Join Date: Mar 2005
Location: Bamberg, Germany
Posts: 9,994
Thanks: 0
Thanked 6 times in 6 posts
Post imported post

Also: no need to save the empty database. Just remove <install>\db\ninjatrader.mdb. It will be recreated as a copy of <install>\db\backup\ninjatrader.mdb as you start NT.
NinjaTrader_Dierk is offline  
Reply With Quote
Old 12-10-2005, 08:37 AM   #6
aspTrader
 
Join Date: Mar 2005
Location: Walnut Creek, California, USA
Posts: 74
Thanks: 0
Thanked 0 times in 0 posts
Post imported post

I've updated my fix/feature list...

There is more to follow.
aspTrader is offline  
Reply With Quote
Old 12-10-2005, 03:23 PM   #7
aspTrader
 
Join Date: Mar 2005
Location: Walnut Creek, California, USA
Posts: 74
Thanks: 0
Thanked 0 times in 0 posts
Post imported post

Correct me if I'm mistaken but...

Because the Order.Action property is not accessible, it is not possible for a user to compute the Daily Net Profit for a symbol unless his/her system keeps track of each OrderID's Trade Direction.

I include the direction as part of the OrderID I generate and send to Ninja Trader so that is a workaround for me.

But because I need to compute Daily Net Profit by symbol in my systems I can't use the ClosePosition or FlattenEverything methods because, unless I'm mistaken, they don't take an OrderID argument and there's no way to know the direction of the flattening action.
aspTrader is offline  
Reply With Quote
Old 12-11-2005, 05:58 AM   #8
aspTrader
 
Join Date: Mar 2005
Location: Walnut Creek, California, USA
Posts: 74
Thanks: 0
Thanked 0 times in 0 posts
Post imported post

Added bug to my master list below.
aspTrader is offline  
Reply With Quote
Old 12-13-2005, 12:22 AM   #9
aspTrader
 
Join Date: Mar 2005
Location: Walnut Creek, California, USA
Posts: 74
Thanks: 0
Thanked 0 times in 0 posts
Post imported post

Added feature requests. More to be added over weekend of 12/16-17/2005.
aspTrader is offline  
Reply With Quote
Old 12-18-2005, 09:57 PM   #10
aspTrader
 
Join Date: Mar 2005
Location: Walnut Creek, California, USA
Posts: 74
Thanks: 0
Thanked 0 times in 0 posts
Post imported post

Moved a requested fix to completed section. Thanks!

Added a new fix request and a new function request.
aspTrader is offline  
Reply With Quote
Old 12-19-2005, 07:54 AM   #11
NinjaTrader_Ray
Administrator
 
NinjaTrader_Ray's Avatar
 
Join Date: Nov 2004
Location: Denver, CO, USA
Posts: 11,163
Thanks: 6
Thanked 45 times in 32 posts
Post imported post

Item #2 fixed for next update.
NinjaTrader_Ray is offline  
Reply With Quote
Old 12-20-2005, 12:22 AM   #12
NinjaTrader_Dierk
Administrator
 
NinjaTrader_Dierk's Avatar
 
Join Date: Mar 2005
Location: Bamberg, Germany
Posts: 9,994
Thanks: 0
Thanked 6 times in 6 posts
Post imported post

On "Confirm order placement block":
The purpose of this message is to block operations until confirmation. If it would not block, then this functionality would be useless.

-> Either "Confirm order placement block" and "Function to turn User Order Confirmation On/Off from External application via ATI" are redundant or I don't understand the issue.

Please clarify. Thanks.
NinjaTrader_Dierk is offline  
Reply With Quote
Old 12-20-2005, 01:12 AM   #13
aspTrader
 
Join Date: Mar 2005
Location: Walnut Creek, California, USA
Posts: 74
Thanks: 0
Thanked 0 times in 0 posts
Post imported post

Let's see if I can clarify...

Quote:
On "Confirm order placement block":
The purpose of this message is to block operations until confirmation. If it would not block, then this functionality would be useless.
It's only useless if you're trading a single instrument. But the ATI provides a means of trading lots of instruments. An ATI user may desire to confirm system entries for a particular instrument but not for others and not want to confirm a particular instrument entry for whatever reason. Meanwhile, there is activity for other instruments that needs to take place.

Think in terms of the objective being to manage 5-10 instruments realtime. Access to Ninja Trader functionality cannot be severed because of a need to wait (for whatever reason) to confirm a single order.

Quote:
-> Either "Confirm order placement block" and "Function to turn User Order Confirmation On/Off from External application via ATI" are redundant or I don't understand the issue.
As stated above, there is a need to be able to keep the "Confirm Order Placement" dialog open and still use other Ninja Trader functionality. Once that dialog appears for a particular order, the system may need to immediately Turn Off Confirmation for other instruments and orders. My systems can manage (coordinate) their use of the Confirmation On/Off request. I don't need Ninja Trader to provide ATI Confirmation Control by instrument.

But I do want two things...

1 Access to Ninja Trader functionality even if a Confirm dialog is open.

2 Programmatic access to the Confirmation On/Off switch.

Hope that clarifies... If not, let me know and I'll try again.
aspTrader is offline  
Reply With Quote
Old 12-20-2005, 04:18 AM   #14
NinjaTrader_Dierk
Administrator
 
NinjaTrader_Dierk's Avatar
 
Join Date: Mar 2005
Location: Bamberg, Germany
Posts: 9,994
Thanks: 0
Thanked 6 times in 6 posts
Post imported post

1) As for now: The message box always will be modal (= will block any operation), since there is a high risk for NT internal race conditions if operations would continue on one instrument and now for another.

2) Will think about providing a general turn on/off option driven by ATI.
NinjaTrader_Dierk is offline  
Reply With Quote
Old 12-20-2005, 09:02 AM   #15
NinjaTrader_Dierk
Administrator
 
NinjaTrader_Dierk's Avatar
 
Join Date: Mar 2005
Location: Bamberg, Germany
Posts: 9,994
Thanks: 0
Thanked 6 times in 6 posts
Post imported post

(2) will be implemented with next release.
NinjaTrader_Dierk is offline  
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -6. The time now is 04:03 AM.