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

Re: [amibroker] Re: Time stamping an array



PureBytes Links

Trading Reference Links

Eric,

I just need one "Perfect" reference ticker that covers my whole time  
span.  I am not the only one who needs this.

I am working on day trading futures like ES with indicators of my own  
design.  I use a 5 second database so that I can get range bar and  
volume bar charts in the 2-4 minute average bar time.  A tick  
database would take too much storage and time to process.  I trade  
from the resultant charts.  In order to optimize my parameters, I  
need 30 days of data.  However, the contracts expire every 3 months  
and must be rolled.  Data suppliers usually provide a continuous  
contract ticker that switches to the next months contract and  
prepends adjusted prices of the older contract to give a smooth  
transition to the rollover for indicators.

However, THIS DATA IS FLAWED and my charts are ruined for 5 weeks  
each quarter.

First, most suppliers only provide 8-10 calendar days of backfill  
data for 5 sec data (which is actually aggregated tick data at the  
local level). Since back prices are adjusted in the continuous  
contract, you can not simply collect 200K bars with AB and have a  
complete seamless 30 day database.  When the contract rolls, the old  
prices in the database will not be adjusted and create a seam.  A  
forced backfill to fix this will just move the bad seam 8-10 days back.

Second, for about a week or two, the volume gets split between the  
old contract and the new contract as traders use different criteria  
to roll to the new contract.  The supplied continuous contracts  
usually roll when the volume of the new contract is higher than the  
old contract.  They simply switch contracts in the quotes.  This has  
the effect of having the volume of the continuous contract look like  
it drops over a week to half the usual volume, then rises up again  
over the next week.  However, if you look at the sum of the volumes  
for the two contracts, you see that it remains about the same as  
usual.  This ruins constant volume charts and other volume based  
indicators.

To solve both of these problems, I am making my own 30 day continuous  
contracts in AB.  I collect the data from the individual contracts  
with no adjustments.  Then I fill an OHLC array with one contract or  
the other depending on when the rollover criteria is met and adjust  
the old data to get rid of the price seam (like adjusting for  
dividends or splits).  Finally I add the volumes of both contracts  
together for the final 5 second ticker and write it out with ATC.   
This creates a nice ATC ticker to use in another chart.

I then have another chart (my actual main trading chart) that reads  
the ATC ticker and works in the timeframe desired for running  
indicators and trading.

I should point out that writing out an ATC ticker every 5 seconds is  
slow.  I actually only write it out when the main chart timeframe  
calls for a new bar which is once every 2-4 minutes.  In the mean  
time, I just send the OHLCV of the current bar to the main chart to  
keep the realtime signals going.

Right now, I have to use a supplied continuous contract as a  
template.  However, because it is not seeing all the bars from both  
contracts, some of the volume has no bar to be registered in.  The  
after hours loses a lot of bars.  It also make switching to different  
futures a pain, because I have to switch the ATC ticker of the main  
chart, then, select the continuous contract chart and select the  
corresponding ticker there, then back to the main chart.  Not the  
easy "just click on the ticker" to get the next chart.

I just need one "Perfect" reference ticker that covers my whole time  
span.  Then the continuous contract generating chart can stay out of  
sight and out of mind.

Best regards,
Dennis


On Dec 29, 2007, at 10:40 AM, eric tao wrote:

> Could you give a sample of what you were trying to do?
> BR
>
> --- In amibroker@xxxxxxxxxxxxxxx, Dennis Brown <see3d@xxx> wrote:
>>
>> Herman,
>>
>> Thank you again for you reply.  If what you say is true, then we need
>> Tomasz to provide a solution to this problem.  It is such a
>> fundamental  need for some of us, and workarounds do not seem  
>> adequate.
>>
>> Best regards,
>> Dennis
>>
>> On Dec 29, 2007, at 4:55 AM, Herman wrote:
>>
>>> If you find one, please post your solution. Right now the only
>>> solution is to create an array in Excel and import it each 5
>>> sec :-) this is a rather daunting task in real-time. Tomasz
>>> acknowledged the key problem in the AB Help for the foreign()
>>> function:
>>>
>>> "Please note that if you have data holes in currently selected
>>> symbol then in order to synchronize bars Foreign function will
>>> remove bars that exist in Foreign symbol but do not exist in
>>> currently selected symbol."
>>>
>>> This unscientific approach makes the accuracy of all TA analysis
>>> depend on the underlying ticker. It assumes a perfect database
>>> which, in EOD is rare, and in real time simply does not exist.
>>>
>>> What is needed is a real-time reference array that can be made
>>> current and contains bars for all time periods, i.e. creates empty
>>> bars in real-time when data doesn't exist.
>>>
>>> best regards,
>>> herman
>>>
>>> For tips on developing Real-Time Auto-Trading systems visit:
>>> http://www.amibroker.org/userkb/
>>>
>>> Friday, December 28, 2007, 11:59:48 PM, you wrote:
>>>
>>>> Hello,
>>>
>>>> Forgive me if it seems like I am restarting a thread out of my
>>>> original, but the previous thread got badly broken when Yahoo
>>> dropped
>>>> a number of replies, so I thought to try again fresh.
>>>
>>>> I really need a reference ticker of 200k 5 second 24 x 7 bars.  I
>>>> need it as a template to make continuous contract futures data that
>>>> RT charts can use.
>>>
>>>> For a reference ticker, all the data fields OHLCV OI can be set to
>>>> one (1).  The only data that I need to be able to change is the  
>>>> time
>>>> stamp. Once made, every 5 seconds, the reference ticker would be
>>>> read, all the bars shifted one bar, and the last bar time stamp
>>>> increased by 5 seconds, then written back out (ATC).  This is a bit
>>>> of an over simplification, but you get the idea.
>>>
>>>> The only thing I don't know how to do is rewrite the time stamp  
>>>> on a
>>>> bar.
>>>
>>>> I would appreciate any specific ideas as to how I could do this  
>>>> --or
>>>> another way to get my continuous 5 second RT perfect reference
>>>> ticker.  Perhaps there is a dll way?  Speed of maintaining the RT
>>>> ticker is important.
>>>
>>>> I have tried many different approaches for a couple of weeks and  
>>>> end
>>>> up with a roadblock with each way so far.  Herman has discussed the
>>>> problems in the UKB, but none of the solutions so far will work
>>> for me.
>>>
>>>> Best regards,
>>>> Dennis
>>>
>>>
>>>
>>>> Please note that this group is for discussion between users only.
>>>
>>>> To get support from AmiBroker please send an e-mail directly to
>>>> SUPPORT {at} amibroker.com
>>>
>>>> For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
>>>> http://www.amibroker.com/devlog/
>>>
>>>> For other support material please check also:
>>>> http://www.amibroker.com/support.html
>>>>
>>>> Yahoo! Groups Links
>>>
>>>
>>>
>>>
>>
>
>
>
>
> Please note that this group is for discussion between users only.
>
> To get support from AmiBroker please send an e-mail directly to
> SUPPORT {at} amibroker.com
>
> For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
> http://www.amibroker.com/devlog/
>
> For other support material please check also:
> http://www.amibroker.com/support.html
>
> Yahoo! Groups Links
>
>
>



Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to 
SUPPORT {at} amibroker.com

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

For other support material please check also:
http://www.amibroker.com/support.html
 
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/