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

Re: [amibroker] Re: Time stamping an array



PureBytes Links

Trading Reference Links

Hello,

You can create perfect reference ticker easily using ASCII import.
Just create the text file using format:
DATE,TIME,O,H,L,C,V
and import it

Such text file can be created programmatically very easily

Simple example (for simplicity it creates 24 hour (non-stop) 5-second data bars
for entire January 2007.

 

fh = fopen("refticker.txt", "w"); 
mo = 1; yr = 2007; 
for( d = 1; d <= 31; d++ ) 
  for( hr = 0; hr < 24; hr++ ) 
   for( m = 0; m < 60; m++ ) 
    for( s = 0; s < 60; s += 5 ) 
    { 
       line = StrFormat("%04.0f-%02.0f-%02.0f,%02.0f:%02.0f:%02.0f,1,1,1,1,0\n", yr, mo, d, hr, m, s ); 
       fputs( line, fh ); 
   } 

fclose( fh )  

Generated file has 16 Megabytes and it takes about 3 seconds to run the above formula.

Best regards,
Tomasz Janeczko
amibroker.com
----- Original Message ----- 
From: "Dennis Brown" <see3d@xxxxxxxxxxx>
To: <amibroker@xxxxxxxxxxxxxxx>
Sent: Saturday, December 29, 2007 7:01 PM
Subject: Re: [amibroker] Re: Time stamping an array


> 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
> 
> 
> 
> 
>


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/