Tick-Volume
Re: Tick-Volume
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.
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.
-
- Posts: 5
- Joined: Sat Oct 05, 2013 6:20 am
Re: Tick-Volume
yes, I hope this issue can be looked into.
Re: Tick-Volume
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,
TDP
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,
TDP
-
- Posts: 6
- Joined: Mon Jul 28, 2014 11:03 am
Re: Tick-Volume
Thank you. This topic helped me alot into my similar kind of issues. Thanks very much...
Re: Tick-Volume
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:
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?
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?
I hope you don't mind!
The Volume-Array and IVolume(..) are long. ok.
But the MQl4 Reference writes:
Code: Select all
long Volume[]
Series array that contains tick volumes of each bar of the current chart.
...
Example:
if(i==0 && time0<i_time+periodseconds)
{
d_volume += Volume[0];
if(Low[0]<d_low) d_low = Low[0];
if(High[0]>d_high) d_high = High[0];
d_close = Close[0];
}
last_fpos = FileTell(ExtHandle);
last_volume = Volume[i];
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?
Code: Select all
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);
Gooly
PS: Do you already have a plan when TickStory will be able to launch MT4 to backtest with real spreads?
Re: Tick-Volume
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.
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.
Re: Tick-Volume
Thanks a lot!!
But why don't you have any plans to support real spreads?
As far as I know one can backtest MT4 with 'real' ticks without launching mt4 by Tickstory?
So what are your plans with Tickstory?
Gooly
But why don't you have any plans to support real spreads?
As far as I know one can backtest MT4 with 'real' ticks without launching mt4 by Tickstory?
So what are your plans with Tickstory?
Gooly
Re: Tick-Volume
Hi Gooly,
Back-testing with real spreads isn't natively supported in MT4 - their database does not contain both the bid and ask price but instead relies on a fixed value (eg. 2 pips) to add onto the bid price. This fixed spread value can be set in Tickstory during the export.
The "workaround" is to use the volume field in the MT4 database as a proxy for the spread, however only Birt's TDS launcher allows you to do this at the moment. Updating the Tickstory launcher each time MT4 changes is a significant development effort and detracts from improving Tickstory's tick database functions. We would welcome open-sourcing the launcher script, however we didn't see enough interested when we posed the question some time back.
Regards.
Back-testing with real spreads isn't natively supported in MT4 - their database does not contain both the bid and ask price but instead relies on a fixed value (eg. 2 pips) to add onto the bid price. This fixed spread value can be set in Tickstory during the export.
The "workaround" is to use the volume field in the MT4 database as a proxy for the spread, however only Birt's TDS launcher allows you to do this at the moment. Updating the Tickstory launcher each time MT4 changes is a significant development effort and detracts from improving Tickstory's tick database functions. We would welcome open-sourcing the launcher script, however we didn't see enough interested when we posed the question some time back.
Regards.
Re: Tick-Volume
I can remember that you were asking for a 'public project'.
But I don't feel competent enough to be a valid contributor.
I even couldn't imagine how this could be done.
Could it be that there is an another way to use real spread and volume?
I don't know whether the idea might work.
If you save spread and volume as 2 integer in the 'volume-field' you can easily depart them in an EA:
so the 'real' Ask would be:
Isn't there a way to use this in the StrategyTester?
But I don't feel competent enough to be a valid contributor.
I even couldn't imagine how this could be done.

Could it be that there is an another way to use real spread and volume?
I don't know whether the idea might work.
If you save spread and volume as 2 integer in the 'volume-field' you can easily depart them in an EA:
Code: Select all
void splitVol(long lng, int& spr, int& vol){
spr = (int)lng;
vol = (int)(lng >> 32);
return;
}
Code: Select all
double Vol,Spr;
splitVol(Volume[0], Spr, Vol);
double realAsk = Bid + (Ask-Bid) + Spr*Point;
Re: Tick-Volume
Hi Gooly,
I imagine you could do something like this aside from potential issues of losing volume information. The other issue of course is that you require your EA has been specifically to use the embedded spread information. This obviously rules out back-testing with pre-compiled/paid-for products.
Regards.
I imagine you could do something like this aside from potential issues of losing volume information. The other issue of course is that you require your EA has been specifically to use the embedded spread information. This obviously rules out back-testing with pre-compiled/paid-for products.
Regards.