Home › Forums › Tickstory Lite › General Discussion › Tick-Volume
-
AuthorPosts
-
Hi Gooly,
Tickstory outputs the sum of bid and ask volumes (expressed in millions) in the MT4 export.
Hope this helps.
So this means that if I backtest in MT4 with the history-files created by ts and ask for iVolume(Symbol(),PERIOD_M5,1) I get a the volume of ticks of that bar
and if I want iVolume(Symbol(),PERIOD_M5,0) I get the no. of ticks until ‘now’ since this bars was opened?
Is that correct?Hi Gooly,
That’s correct – the total bar volume is a sum of all the ticks within the bar, so iVolume(Symbol(),PERIOD_M5,1) should return the total volume for that bar. As for the intra-bar calculation, I am not sure how MT4 handles this and whether it is a cumulative value of the individual tick volumes (which Tickstory exports). If you have further results on this it would be good to know.
Thanks.
Hi
I believe there is a confusion about the term ‘Volume’ here.
As I understand it, the volume coming from Dukascopy represents the size of the Bid or Ask in millions of the quoted currency while the function VOLUME in MT4 counts the number of ticks in a bar.
It seems that gooly was referring to the second definition.The volume as number of ticks per bar does not seem to be supported by tickstory (v 1.0) at this point when generating and exporting HST files.
This can be seen in MT4 History Center after launching MT4 out of tickstory: if the “Suppress Volume Info” option is selected when exporting to MT4, all HST files show a volume of 1 per Bar and if the “Suppress Volume Info” option is deselected the HST files show some non-interger number (sum of Bid and Ask Size from Dukas in Mio) which does not match the way MT4 works.Question: Can the generation of the HST files be adjusted so that Volume represents the number of ticks (consistent to the FXT file, i.e. changing if someone filters duplicate ticks) in a Bar?
Ideally, an EA that counts each tick internally (counting up a global variable each time the start function gets called in MTD) and also displays the result of the MQL4 function Volume[0] should show that they are in line while first Bar is being formed.The main problem I see is that the way the current exporting from tickstory to MT4 works breaks the backtesting results of an EA that wants to trade only at the first tick of a new bar (earliest possible point after completion of the previous bar) with the EA detecting such first tick of a bar via the condition: “Volume[0] = 1”
Hope this post a) helps to clarify things and b) causes tickstory amend the exporting to MT4
I have to point out though that I am deeply impressed with the tickstory product and am looking forward to future releases and updates.
Regards,
ticksterHi
I was hoping to get a statement/comment from someone from tickstory regarding the proposal above.
Thanks and regards,
ticksterHi tickster – thanks for your feedback and apologies for the delay in reply.
You are correct, at the moment ‘Volume’ is currently represented by the contract-sizes. We can definitely add the functionality to export the number of ticks and have added this item to our enhancement list.
Hope this helps.
Hi,
No doubt that I am a new user and know very little about some practical issues.
I have downloaded the tick data for USDTRY pair and checked for the “volume” part.
The volume data I see is sth like below:> 1,580000004291534
> 2,400000009536743
> 1,5
> 2,25
> 1.5
….(check the note on the bottom)Can you help me sort this values out?
These values have so many digits because the TRY values are converted in $ terms and that creates the digits?
Or… I need to run a rounding-filter and erase the numbers after the 3th digit?Thanks in advance
Note:
The same issue is seen in all other assets like EURUSD: (7,130000114444092) euros? dolars?
When this value is divided into the price (1.3778) the resulting value is (5.174916616) contracts?Hi Eyagan,
The numbers are expressed in millions, so hence the fractional amounts. The volumes are summed for each bar, so hence the rather “odd” looking fractional volumes.
As Trickster mentioned, the MT4 concept of volume is actually the number of ticks in the bar, so we may be changing this soon to default to this type of volume (we’ll provide an option for those who are using the current concept of volume).Hope this helps.
Does the latest version of Tickstory now export tick volumes to MT4 rather than actual volumes traded on DukasCopy?
Is the Dukascopy data that Tickstory use the same as on the Dukascopywebsite?
http://www.dukascopy.com/swiss/english/marketwatch/historical/I have an EA that strongly depends on relative tick activity. Is the tick volume data based on the counting the ticks in the available Dukascopy data or is this provided separately by Dukascopy to Tickstory?
What I really want to know is whether the tick volume data that is exported to MT4 is 100% accurate and reflective of the tick activity on a live Dukascopy trading account.
Thanks
Hi Berty,
The tick volume that is published is still as described above – that is, it uses the volume traded as oppose to the number of ticks. All data originates from Dukascopy.
We still have an open enhancement item to change the MT4 export so it exports the tick activity rather than volume.
Hope this helps.
yes, I hope this issue can be looked into.
Thank you very much, tickster. For the good information about Volume,
The first was nearly hopeless for me to find out that why all the Volumes in MT4 are only value 1 per bar,
now I know that I need to deselect the Suppress Volume info to get Volume from Duka.Regards,
TDPThank you. This topic helped me alot into my similar kind of issues. Thanks very much…
May I ask a technical question – due to the changes and the new function coming with b600+.
I hope you don’t mind!The Volume-Array and IVolume(..) are long. ok.
But the MQl4 Reference writes:
long Volume[]
Series array that contains tick volumes of each bar of the current chart.
...
Example:
if(i==0 && time0{
d_volume += Volume[0];
if(Low[0]if(High[0]>d_high) d_high = High[0];
d_close = Close[0];
}
last_fpos = FileTell(ExtHandle);
last_volume = Volume;
FileWriteInteger(ExtHandle, i_time, LONG_VALUE);
FileWriteDouble(ExtHandle, d_open, DOUBLE_VALUE);
FileWriteDouble(ExtHandle, d_low, DOUBLE_VALUE);
FileWriteDouble(ExtHandle, d_high, DOUBLE_VALUE);
FileWriteDouble(ExtHandle, d_close, DOUBLE_VALUE);
FileWriteDouble(ExtHandle, d_volume, DOUBLE_VALUE);
So why the long variable is writen as a double-value – despite it is long and FileWriteDouble() does NOT have the 3rd option DOUBLE_VALUE, only FileWriteInteger(..) has?
Can you please tell me what would be working set of orders
As I want to write the fxt-files with quotes from my real account with my broker would you mind to tell me you this set of writing-numbers-orders shall look like?
Would that be correct?
FileWriteInteger(ExtHandle, i_time, LONG_VALUE);
FileWriteDouble(ExtHandle, d_open);
FileWriteDouble(ExtHandle, d_low);
FileWriteDouble(ExtHandle, d_high);
FileWriteDouble(ExtHandle, d_close);
FileWriteInteger(ExtHandle, d_volume, LONG_VALUE);
Thank you very much in advance,
Gooly
PS: Do you already have a plan when TickStory will be able to launch MT4 to backtest with real spreads?Hi Gooly,
The use of ‘double’ for Volume is probably for historical reasons as MT4 once used a double to store this information. It’s not overly correct to be doing things in this manner – the assumption is that the value of the volume will never be large enough to cause a problem.
Volume is stored as a 32-bit integer so the code you have shown should export the volume correctly.
We will re-look at the item to change the volume to be the spread. Of course, you wont be able to utilise this feature unless you have Birt’s Tick Data Suite as we have no immediate plans to support real spreads in the Tickstory launcher.
Hope this helps.
-
AuthorPosts
You must be logged in to reply to this topic.