Real Time Data Now / Nest Trader to Amibroker, Fcharts

TracerBullet

Well-Known Member
That will be disastrous. Do you know that NOW/Nest does not do any other work while it is retrieving data/VWAP table from exchange? You may not be able to enter your trades while backfill is running? There is a chance of Nest Trader crashing also.

Better to increase your network speed to more than 2 mbps.
VWAP never crashes and is very reliable for me, although slower sometimes. DT is unreliable if used multiple times a day - i use it EOD for Nifty index and that normally works.
Network bandwidth should not matter much if no other activity. A good quality low bandwidth connection should also do - it doesnt even use 1kbps for me.
But you are right, automated backfill during day can interfere - better it be manual. Only EOD can be automated if needed.

Do not use LTQ until it is proven that RTD server is sending all ticks. I tried LTQ for one day. I did get almost similar chart but volume was drastically less (some times it was half of actual volume). TB's method of collecting data is on sample basis. If RTD server is also disbursing sample ticks, then your volumes will be highly distorted. It may be better to reduce refresh period to 100 msec assuming Ami takes upto 20 msecs to refresh charts.

I am going to try LTQ again and confirm.
josh - 1) Server cannot send all ticks for liquid scrips due to network latency - it could in theory aggregate more of it in their server and send OHLC but they dont do that. So LTQ cannot be used as volume. But for boarders, it meets his requirements for OFA approximation. Volume logic was taken from your excel tool - its correct, LTQ wont work.
2) Refresh period does not impact ability to take ticks. We take ALL ticks that RTD gives us irrespective of Refresh period. So no impact on LTQ/volume, if you aggregate LTQ. Refresh period is only how often AB thread will read current OHLCV of each scrip and send it to AB. This will be removed once we switch to tick updates in future. Tick updates wont be more accurate - it will only update AB without delay.
 

josh1

Well-Known Member
many thanks for your inputs.

1. under any circumstance we will never get all the ticks. by ticks I mean only change in LTT and corresponding simultaneous change in LTQ and LTP, and all data at time of LTT mark. The reason we will never get is that NEST promises only minimum of 1 second updation and many a times goes to even 5 seconds. what we need is updations as and when of the event whether happens 5 times in a second or once in 5 seconds.....at least at time of change in ltt, ltp, ltq bid and ask rates/qtys.

2. then the only way is to go by tracer bullet calculation for accurate results in volume as What Nest reports as volume traded today is exactly as per exchange data. Now for me....this volume is of no use as it does not vibe with trading terminal LTQ.

3. so I decided to use LTQ for OFA calc and am trading using same. At least with tracer bullet utility we know how we are deriving data whether it is write or wrong, we have the power to correct same....while with Yusi utility being black box we dont know anything about how values are derived.

4. my take is that in OFA we have to purely go by what our trading terminal real time is telling us and plot and trade accordingly...another reason for using LTQ.

5. I may be wrong in all above observations....
my chart on crude mini with LTQ as base for volume

Hi Boarders,
You may get correct volumes in commodities. There are hardly 40000 contracts in crude from 10:00 AM to 11:30 PM that is 12:30 hours of Trading.
That is 40000 contracts in 44280 seconds or 1 contract per second. Other commodities have even lesser contracts. I did not check commodities volumes since I did not have patience to wait for 12-13 hours.

We get approx. 4 contracts per second in Nifty Future which is one of the highest traded scrip on exchange. There are more than 8 per second when activity is very high.

My AFL takes less than 20 msecs to refresh charts. If yours is taking 1 to 5 seconds, that is just outrageous. Users having no RAM Drive and normal hard disk are also able to refresh charts in less than 1 second. There is something wrong with your AFL or hardware.

Edit-
@Tracerbullet
I did aggregate LTQ while sending it to AB. However, aggregated volumes did not match that with that of VWap table though charts(OHLC) were mostly matching. I am going to test again. Right now I am working on fork of your RTDMan with Ninja.
 
Last edited:

boarders

Well-Known Member
Hi Boarders,
You may get correct volumes in commodities. There are hardly 40000 contracts in crude from 10:00 AM to 11:30 PM that is 12:30 hours of Trading.
That is 40000 contracts in 44280 seconds or 1 contract per second. Other commodities have even lesser contracts. I did not check commodities volumes since I did not have patience to wait for 12-13 hours.

We get approx. 4 contracts per second in Nifty Future which is one of the highest traded scrip on exchange. There are more than 8 per second when activity is very high.

My AFL takes less than 20 msecs to refresh charts. If yours is taking 1 to 5 seconds, that is just outrageous. Users having no RAM Drive and normal hard disk are also able to refresh charts in less than 1 second. There is something wrong with your AFL or hardware.

@Tracerbullet
I did aggregate LTQ while sending it to AB. However, aggregated volumes did not match that with that of VWap table. I am going to test again. Right now I am working on fork of your RTDMan.
This 1 to 5 second thing is not refresh rate of charts by afl or NT...it is the promised update frequency of data by OMNEsys NEST.

Nest does not give realtime tick updates...it gives only with minimum 1 second frequency
 

josh1

Well-Known Member
Can you tell why it won't accurate in what ?
Accurate with current method of how rtd send quotes
official data feed will never match with rtd
Don't worry even if they don't match, we are getting correct OHLC from NOW except sometimes for first candle of day.
 

josh1

Well-Known Member
This 1 to 5 second thing is not refresh rate of charts by afl or NT...it is the promised update frequency of data by OMNEsys NEST.
Shift to NOW if you can. It is more stable and faster than Nest. I shifted two years back. TB shifted about a year ago.
Though both products are from Omnesys, NOW is officially distributed by NSE through its subsidiary, Dotex International. Nest is distributed by Omnesys with some functional enhancements.

Yes. Both give time stamp of HH:MM:ss but data was streaming. If we have to send ticks to AB, we have to add milliseconds from system clock. I did that but could not see milliseconds in Quote Editor.:(. It seemed that AB was aggregating or overwriting ticks to 1 second internally. Have to test again.)
 
Last edited:

TracerBullet

Well-Known Member
Can you tell why it won't accurate in what ?
Accurate with current method of how rtd send quotes
official data feed will never match with rtd
What i am saying is that RTDMan is as accurate as It can be right now itself. Accuracy is dependent on ability of NOW/Nest to send ticks. It seems to be good enough for me, although i have never tried/compared paid ones.

So, Even If we start updating AB immediately( ie TICKMODE - sending ticks) instead of waiting 1 second for buffer ( 1 second OHLC bar), there will be no increase in accuracy as josh seemed to have thought.

Edit-
@Tracerbullet
I did aggregate LTQ while sending it to AB. However, aggregated volumes did not match that with that of VWap table though charts(OHLC) were mostly matching. I am going to test again. Right now I am working on fork of your RTDMan with Ninja.
yes, as i said, they wont match for liquid scrips - try it for fun. OFA has some special needs - but for normal use current method is the only viable option.

If we have to send ticks to AB, we have to add milliseconds from system clock. I did that but could not see milliseconds in Quote Editor.:(. It seemed that AB was aggregating or overwriting ticks to 1 second internally. Have to test again.)
If ms does not work, you can save ticks in array based on LTT - resend all ticks with same timestamp, so that AB can aggregate them. Once LTT changes erase array. See here and here. One way to do this is maybe to create HashMap with key = scrip and value = struct( LTT, Tick array) - So you can have array for each scrip.
 
Last edited:

boarders

Well-Known Member
Shift to NOW if you can. It is more stable and faster than Nest. I shifted two years back. TB shifted about a year ago.
Though both products are from Omnesys, NOW is officially distributed by NSE through its subsidiary, Dotex International. Nest is distributed by Omnesys with some functional enhancements.

Yes. Both give time stamp of HH:MM:ss but data was streaming. If we have to send ticks to AB, we have to add milliseconds from system clock. I did that but could not see milliseconds in Quote Editor.:(. It seemed that AB was aggregating or overwriting ticks to 1 second internally. Have to test again.)
i trade MCX and NOW does not support MCX.
 

josh1

Well-Known Member
@TB,

Please explain this code of yours.
Code:
/*
	Send OHLC to NinjaTrader
	Workaround - Send OHLC as ticks with 1/4 volume
*/
void Worker::pushToNT( const std::vector<ScripBar> & bars  ){
	
	int		volume = 0 ;
	size_t  size   = bars.size();
    const ScripBar *bar;

    for( size_t i=0 ; i<size ; i++ ){
        
		bar    = &bars[i];
		volume = (int)bar->volume/4;	// int should be atleast 4Bytes

		ninja_trader->Last( bar->ticker, bar->bar_open,  volume );
		ninja_trader->Last( bar->ticker, bar->bar_high,  volume );
		ninja_trader->Last( bar->ticker, bar->bar_low,   volume );
		ninja_trader->Last( bar->ticker, bar->bar_close, volume );
	}
}
Why are you sending O H L and C as Last to Ninja? I understand volume/4 since one tick is divided into 4 records.:confused:
 

Similar threads