Compressed seq data, again. I want to pay to make it work.

  • Follow


Hi
I want to compress "tick"-data (ie trades) from a file into another file. In
the target file I want to chunk the data into 15 minutes activity (or other
number of minutes) and summorise it into date, time, open, high, low, open
and volume. I have managed it with days but minutes is harder. I have 3
cells in a worksheet that I have given the names: Sourcefile, Sourcefolder
and Targetfolder. And I have added "eod" (EndOfDday) at the beginning of the
target file. Below have I put parts of the sourcefile and the targetfile for
days for that sourcefile. As I wrote I have not managed to code the minute
chunks but I want to show the day code so it is easier to understand. Can
somebody help me with a minute version? I want to pay to get a version that 
works. Regards Rolf

Tickdata.txt
DATE,TIME,PRICE,VOLUME
12/11/2009,08:00:11,5720.00,1
12/11/2009,08:00:12,5720.00,1
12/11/2009,09:02:14,5736.50,1
12/11/2009,09:02:14,5736.50,1
12/16/2009,10:24:09,5863.00,1
12/16/2009,10:24:10,5863.00,1
12/16/2009,10:47:45,5859.50,4
12/16/2009,10:47:45,5859.50,1
12/17/2009,17:39:07,5842.00,2
12/17/2009,17:39:08,5842.00,4

eodtickdata.txt
12/11/2009,10:24,5720,5736.5,5720,5736.5,4
12/16/2009,17:39,5863,5863,5859.5,5859.5,7
12/17/2009,17:39,5842,5842,5842,5842,6

Sub TickToDays()
Dim aDate As String
Dim bDate As Date
Dim currentDate As Date
Dim lastDate As Date
Dim totDays As Single
Dim aTime As String
Dim price As Single
Dim openp As Single
Dim highp As Single
Dim lowp As Single
Dim closep As Single
Dim vol As Single
Dim totVol As Single
Dim numLoops As Single
Dim aText1 As String
Dim aText2 As String
Dim aText3 As String
Dim aText4 As String
Dim theSourcefolder As String
Dim theTargetfolder As String
On Error GoTo ErrorStop
theSourcefolder = [Sourcefolder] & [Sourcefile]
theTargetfolder = [Targetfolder] & "eod" & [Sourcefile]
Open theSourcefolder For Input As #1
Open theTargetfolder For Output As #2
Input #1, aText1, aText2, aText3, aText4
totVol = 0
numLoops = 0
Input #1, aDate, aTime, price, vol
bDate = CDate(aDate)
lastDate = bDate
totVol = vol
numLoops = 1
openp = price
highp = price
lowp = price
Do Until EOF(1)
    Input #1, aDate, aTime, price, vol
        bDate = CDate(aDate)
        bTime = CDate(aTime)
        cTime = Format(bTime, "hh:mm")
    If lastDate = bDate Then
    If highp <= price Then highp = price
    If lowp >= price Then lowp = price
    closep = price
        totVol = totVol + vol
    Else
    Print #2, lastDate & "," & cTime & "," & openp & "," & highp & "," &
lowp & "," & closep & "," & totVol
        lastDate = bDate
        openp = price
        highp = price
        lowp = price
        closep = 0
        totVol = 0
        totVol = vol
        totDays = totDays + 1
    End If
        numLoops = numLoops + 1
Loop
Print #2, lastDate & "," & cTime & "," & openp & "," & highp & "," & lowp &
"," & closep & "," & totVol
MsgBox (numLoops & " trades are compressed to " & totDays & " daydata.")
Close #1
Close #2
ErrorStop:
'Print #2, lastDate & "," & cTime & "," & openp & "," & highp & "," & lowp &
"," & closep & "," & totVol
'MsgBox (numLoops & " trades are compressed to " & totDays & " daydata.")
Close #1
Close #2
End Sub



0
Reply Rolf 2/2/2010 7:50:57 PM

I would try:

import into Excel in one gulp;
text to column into 4 columns;
column 2 is time format;
helpercolumn5=hour(column2);
helpercolumn6=minute(column2);
helpercolumn7=second(column2);
helpercolumn8=if(helpercolumn7>0, helpercolumn6+1, helpercolumn6);
helpercolumn9=ceiling(helpercolumn8,15);
sort by date/hour/helpercolumn9;

the rest is routine

"Rolf" wrote:

> Hi
> I want to compress "tick"-data (ie trades) from a file into another file. In
> the target file I want to chunk the data into 15 minutes activity (or other
> number of minutes) and summorise it into date, time, open, high, low, open
> and volume. I have managed it with days but minutes is harder. I have 3
> cells in a worksheet that I have given the names: Sourcefile, Sourcefolder
> and Targetfolder. And I have added "eod" (EndOfDday) at the beginning of the
> target file. Below have I put parts of the sourcefile and the targetfile for
> days for that sourcefile. As I wrote I have not managed to code the minute
> chunks but I want to show the day code so it is easier to understand. Can
> somebody help me with a minute version? I want to pay to get a version that 
> works. Regards Rolf
> 
> Tickdata.txt
> DATE,TIME,PRICE,VOLUME
> 12/11/2009,08:00:11,5720.00,1
> 12/11/2009,08:00:12,5720.00,1
> 12/11/2009,09:02:14,5736.50,1
> 12/11/2009,09:02:14,5736.50,1
> 12/16/2009,10:24:09,5863.00,1
> 12/16/2009,10:24:10,5863.00,1
> 12/16/2009,10:47:45,5859.50,4
> 12/16/2009,10:47:45,5859.50,1
> 12/17/2009,17:39:07,5842.00,2
> 12/17/2009,17:39:08,5842.00,4
> 
> eodtickdata.txt
> 12/11/2009,10:24,5720,5736.5,5720,5736.5,4
> 12/16/2009,17:39,5863,5863,5859.5,5859.5,7
> 12/17/2009,17:39,5842,5842,5842,5842,6
> 
> Sub TickToDays()
> Dim aDate As String
> Dim bDate As Date
> Dim currentDate As Date
> Dim lastDate As Date
> Dim totDays As Single
> Dim aTime As String
> Dim price As Single
> Dim openp As Single
> Dim highp As Single
> Dim lowp As Single
> Dim closep As Single
> Dim vol As Single
> Dim totVol As Single
> Dim numLoops As Single
> Dim aText1 As String
> Dim aText2 As String
> Dim aText3 As String
> Dim aText4 As String
> Dim theSourcefolder As String
> Dim theTargetfolder As String
> On Error GoTo ErrorStop
> theSourcefolder = [Sourcefolder] & [Sourcefile]
> theTargetfolder = [Targetfolder] & "eod" & [Sourcefile]
> Open theSourcefolder For Input As #1
> Open theTargetfolder For Output As #2
> Input #1, aText1, aText2, aText3, aText4
> totVol = 0
> numLoops = 0
> Input #1, aDate, aTime, price, vol
> bDate = CDate(aDate)
> lastDate = bDate
> totVol = vol
> numLoops = 1
> openp = price
> highp = price
> lowp = price
> Do Until EOF(1)
>     Input #1, aDate, aTime, price, vol
>         bDate = CDate(aDate)
>         bTime = CDate(aTime)
>         cTime = Format(bTime, "hh:mm")
>     If lastDate = bDate Then
>     If highp <= price Then highp = price
>     If lowp >= price Then lowp = price
>     closep = price
>         totVol = totVol + vol
>     Else
>     Print #2, lastDate & "," & cTime & "," & openp & "," & highp & "," &
> lowp & "," & closep & "," & totVol
>         lastDate = bDate
>         openp = price
>         highp = price
>         lowp = price
>         closep = 0
>         totVol = 0
>         totVol = vol
>         totDays = totDays + 1
>     End If
>         numLoops = numLoops + 1
> Loop
> Print #2, lastDate & "," & cTime & "," & openp & "," & highp & "," & lowp &
> "," & closep & "," & totVol
> MsgBox (numLoops & " trades are compressed to " & totDays & " daydata.")
> Close #1
> Close #2
> ErrorStop:
> 'Print #2, lastDate & "," & cTime & "," & openp & "," & highp & "," & lowp &
> "," & closep & "," & totVol
> 'MsgBox (numLoops & " trades are compressed to " & totDays & " daydata.")
> Close #1
> Close #2
> End Sub
> 
> 
> 
> .
> 
0
Reply Utf 2/3/2010 12:52:01 PM

Thanks for the suggestion. The problem is that the tick-file has over 7 000 
000 lines. I opend it in Excel and it choked. "Only" 65 000 rows. :)


"Victor" <Victor@discussions.microsoft.com> schrieb im Newsbeitrag 
news:42AB3995-4940-4DBC-8809-6644D2D58F69@microsoft.com...
>I would try:
>
> import into Excel in one gulp;
> text to column into 4 columns;
> column 2 is time format;
> helpercolumn5=hour(column2);
> helpercolumn6=minute(column2);
> helpercolumn7=second(column2);
> helpercolumn8=if(helpercolumn7>0, helpercolumn6+1, helpercolumn6);
> helpercolumn9=ceiling(helpercolumn8,15);
> sort by date/hour/helpercolumn9;
>
> the rest is routine
>
> "Rolf" wrote:
>
>> Hi
>> I want to compress "tick"-data (ie trades) from a file into another file. 
>> In
>> the target file I want to chunk the data into 15 minutes activity (or 
>> other
>> number of minutes) and summorise it into date, time, open, high, low, 
>> open
>> and volume. I have managed it with days but minutes is harder. I have 3
>> cells in a worksheet that I have given the names: Sourcefile, 
>> Sourcefolder
>> and Targetfolder. And I have added "eod" (EndOfDday) at the beginning of 
>> the
>> target file. Below have I put parts of the sourcefile and the targetfile 
>> for
>> days for that sourcefile. As I wrote I have not managed to code the 
>> minute
>> chunks but I want to show the day code so it is easier to understand. Can
>> somebody help me with a minute version? I want to pay to get a version 
>> that
>> works. Regards Rolf
>>
>> Tickdata.txt
>> DATE,TIME,PRICE,VOLUME
>> 12/11/2009,08:00:11,5720.00,1
>> 12/11/2009,08:00:12,5720.00,1
>> 12/11/2009,09:02:14,5736.50,1
>> 12/11/2009,09:02:14,5736.50,1
>> 12/16/2009,10:24:09,5863.00,1
>> 12/16/2009,10:24:10,5863.00,1
>> 12/16/2009,10:47:45,5859.50,4
>> 12/16/2009,10:47:45,5859.50,1
>> 12/17/2009,17:39:07,5842.00,2
>> 12/17/2009,17:39:08,5842.00,4
>>
>> eodtickdata.txt
>> 12/11/2009,10:24,5720,5736.5,5720,5736.5,4
>> 12/16/2009,17:39,5863,5863,5859.5,5859.5,7
>> 12/17/2009,17:39,5842,5842,5842,5842,6
>>
>> Sub TickToDays()
>> Dim aDate As String
>> Dim bDate As Date
>> Dim currentDate As Date
>> Dim lastDate As Date
>> Dim totDays As Single
>> Dim aTime As String
>> Dim price As Single
>> Dim openp As Single
>> Dim highp As Single
>> Dim lowp As Single
>> Dim closep As Single
>> Dim vol As Single
>> Dim totVol As Single
>> Dim numLoops As Single
>> Dim aText1 As String
>> Dim aText2 As String
>> Dim aText3 As String
>> Dim aText4 As String
>> Dim theSourcefolder As String
>> Dim theTargetfolder As String
>> On Error GoTo ErrorStop
>> theSourcefolder = [Sourcefolder] & [Sourcefile]
>> theTargetfolder = [Targetfolder] & "eod" & [Sourcefile]
>> Open theSourcefolder For Input As #1
>> Open theTargetfolder For Output As #2
>> Input #1, aText1, aText2, aText3, aText4
>> totVol = 0
>> numLoops = 0
>> Input #1, aDate, aTime, price, vol
>> bDate = CDate(aDate)
>> lastDate = bDate
>> totVol = vol
>> numLoops = 1
>> openp = price
>> highp = price
>> lowp = price
>> Do Until EOF(1)
>>     Input #1, aDate, aTime, price, vol
>>         bDate = CDate(aDate)
>>         bTime = CDate(aTime)
>>         cTime = Format(bTime, "hh:mm")
>>     If lastDate = bDate Then
>>     If highp <= price Then highp = price
>>     If lowp >= price Then lowp = price
>>     closep = price
>>         totVol = totVol + vol
>>     Else
>>     Print #2, lastDate & "," & cTime & "," & openp & "," & highp & "," &
>> lowp & "," & closep & "," & totVol
>>         lastDate = bDate
>>         openp = price
>>         highp = price
>>         lowp = price
>>         closep = 0
>>         totVol = 0
>>         totVol = vol
>>         totDays = totDays + 1
>>     End If
>>         numLoops = numLoops + 1
>> Loop
>> Print #2, lastDate & "," & cTime & "," & openp & "," & highp & "," & lowp 
>> &
>> "," & closep & "," & totVol
>> MsgBox (numLoops & " trades are compressed to " & totDays & " daydata.")
>> Close #1
>> Close #2
>> ErrorStop:
>> 'Print #2, lastDate & "," & cTime & "," & openp & "," & highp & "," & 
>> lowp &
>> "," & closep & "," & totVol
>> 'MsgBox (numLoops & " trades are compressed to " & totDays & " daydata.")
>> Close #1
>> Close #2
>> End Sub
>>
>>
>>
>> .
>> 


0
Reply Rolf 2/3/2010 1:41:51 PM

Use ms query to return by date then.

"Rolf" <rolfe@algonet.se> wrote in message 
news:%239KMpaNpKHA.5224@TK2MSFTNGP05.phx.gbl...
> Thanks for the suggestion. The problem is that the tick-file has over 7 
> 000 000 lines. I opend it in Excel and it choked. "Only" 65 000 rows. :)
>
>
> "Victor" <Victor@discussions.microsoft.com> schrieb im Newsbeitrag 
> news:42AB3995-4940-4DBC-8809-6644D2D58F69@microsoft.com...
>>I would try:
>>
>> import into Excel in one gulp;
>> text to column into 4 columns;
>> column 2 is time format;
>> helpercolumn5=hour(column2);
>> helpercolumn6=minute(column2);
>> helpercolumn7=second(column2);
>> helpercolumn8=if(helpercolumn7>0, helpercolumn6+1, helpercolumn6);
>> helpercolumn9=ceiling(helpercolumn8,15);
>> sort by date/hour/helpercolumn9;
>>
>> the rest is routine
>>
>> "Rolf" wrote:
>>
>>> Hi
>>> I want to compress "tick"-data (ie trades) from a file into another 
>>> file. In
>>> the target file I want to chunk the data into 15 minutes activity (or 
>>> other
>>> number of minutes) and summorise it into date, time, open, high, low, 
>>> open
>>> and volume. I have managed it with days but minutes is harder. I have 3
>>> cells in a worksheet that I have given the names: Sourcefile, 
>>> Sourcefolder
>>> and Targetfolder. And I have added "eod" (EndOfDday) at the beginning of 
>>> the
>>> target file. Below have I put parts of the sourcefile and the targetfile 
>>> for
>>> days for that sourcefile. As I wrote I have not managed to code the 
>>> minute
>>> chunks but I want to show the day code so it is easier to understand. 
>>> Can
>>> somebody help me with a minute version? I want to pay to get a version 
>>> that
>>> works. Regards Rolf
>>>
>>> Tickdata.txt
>>> DATE,TIME,PRICE,VOLUME
>>> 12/11/2009,08:00:11,5720.00,1
>>> 12/11/2009,08:00:12,5720.00,1
>>> 12/11/2009,09:02:14,5736.50,1
>>> 12/11/2009,09:02:14,5736.50,1
>>> 12/16/2009,10:24:09,5863.00,1
>>> 12/16/2009,10:24:10,5863.00,1
>>> 12/16/2009,10:47:45,5859.50,4
>>> 12/16/2009,10:47:45,5859.50,1
>>> 12/17/2009,17:39:07,5842.00,2
>>> 12/17/2009,17:39:08,5842.00,4
>>>
>>> eodtickdata.txt
>>> 12/11/2009,10:24,5720,5736.5,5720,5736.5,4
>>> 12/16/2009,17:39,5863,5863,5859.5,5859.5,7
>>> 12/17/2009,17:39,5842,5842,5842,5842,6
>>>
>>> Sub TickToDays()
>>> Dim aDate As String
>>> Dim bDate As Date
>>> Dim currentDate As Date
>>> Dim lastDate As Date
>>> Dim totDays As Single
>>> Dim aTime As String
>>> Dim price As Single
>>> Dim openp As Single
>>> Dim highp As Single
>>> Dim lowp As Single
>>> Dim closep As Single
>>> Dim vol As Single
>>> Dim totVol As Single
>>> Dim numLoops As Single
>>> Dim aText1 As String
>>> Dim aText2 As String
>>> Dim aText3 As String
>>> Dim aText4 As String
>>> Dim theSourcefolder As String
>>> Dim theTargetfolder As String
>>> On Error GoTo ErrorStop
>>> theSourcefolder = [Sourcefolder] & [Sourcefile]
>>> theTargetfolder = [Targetfolder] & "eod" & [Sourcefile]
>>> Open theSourcefolder For Input As #1
>>> Open theTargetfolder For Output As #2
>>> Input #1, aText1, aText2, aText3, aText4
>>> totVol = 0
>>> numLoops = 0
>>> Input #1, aDate, aTime, price, vol
>>> bDate = CDate(aDate)
>>> lastDate = bDate
>>> totVol = vol
>>> numLoops = 1
>>> openp = price
>>> highp = price
>>> lowp = price
>>> Do Until EOF(1)
>>>     Input #1, aDate, aTime, price, vol
>>>         bDate = CDate(aDate)
>>>         bTime = CDate(aTime)
>>>         cTime = Format(bTime, "hh:mm")
>>>     If lastDate = bDate Then
>>>     If highp <= price Then highp = price
>>>     If lowp >= price Then lowp = price
>>>     closep = price
>>>         totVol = totVol + vol
>>>     Else
>>>     Print #2, lastDate & "," & cTime & "," & openp & "," & highp & "," &
>>> lowp & "," & closep & "," & totVol
>>>         lastDate = bDate
>>>         openp = price
>>>         highp = price
>>>         lowp = price
>>>         closep = 0
>>>         totVol = 0
>>>         totVol = vol
>>>         totDays = totDays + 1
>>>     End If
>>>         numLoops = numLoops + 1
>>> Loop
>>> Print #2, lastDate & "," & cTime & "," & openp & "," & highp & "," & 
>>> lowp &
>>> "," & closep & "," & totVol
>>> MsgBox (numLoops & " trades are compressed to " & totDays & " daydata.")
>>> Close #1
>>> Close #2
>>> ErrorStop:
>>> 'Print #2, lastDate & "," & cTime & "," & openp & "," & highp & "," & 
>>> lowp &
>>> "," & closep & "," & totVol
>>> 'MsgBox (numLoops & " trades are compressed to " & totDays & " 
>>> daydata.")
>>> Close #1
>>> Close #2
>>> End Sub
>>>
>>>
>>>
>>> .
>>>
>
> 


0
Reply KC 2/4/2010 12:39:09 AM

On second thought, to stick with sequential read
I would read the source file into Access;
break the time field into hour, minute, second;
sort by date/hour/minute/seond;
dump it out in same format as source file.

Again the rest is routine

"Rolf" <rolfe@algonet.se> wrote in message 
news:%239KMpaNpKHA.5224@TK2MSFTNGP05.phx.gbl...
> Thanks for the suggestion. The problem is that the tick-file has over 7 
> 000 000 lines. I opend it in Excel and it choked. "Only" 65 000 rows. :)
>
>
> "Victor" <Victor@discussions.microsoft.com> schrieb im Newsbeitrag 
> news:42AB3995-4940-4DBC-8809-6644D2D58F69@microsoft.com...
>>I would try:
>>
>> import into Excel in one gulp;
>> text to column into 4 columns;
>> column 2 is time format;
>> helpercolumn5=hour(column2);
>> helpercolumn6=minute(column2);
>> helpercolumn7=second(column2);
>> helpercolumn8=if(helpercolumn7>0, helpercolumn6+1, helpercolumn6);
>> helpercolumn9=ceiling(helpercolumn8,15);
>> sort by date/hour/helpercolumn9;
>>
>> the rest is routine
>>
>> "Rolf" wrote:
>>
>>> Hi
>>> I want to compress "tick"-data (ie trades) from a file into another 
>>> file. In
>>> the target file I want to chunk the data into 15 minutes activity (or 
>>> other
>>> number of minutes) and summorise it into date, time, open, high, low, 
>>> open
>>> and volume. I have managed it with days but minutes is harder. I have 3
>>> cells in a worksheet that I have given the names: Sourcefile, 
>>> Sourcefolder
>>> and Targetfolder. And I have added "eod" (EndOfDday) at the beginning of 
>>> the
>>> target file. Below have I put parts of the sourcefile and the targetfile 
>>> for
>>> days for that sourcefile. As I wrote I have not managed to code the 
>>> minute
>>> chunks but I want to show the day code so it is easier to understand. 
>>> Can
>>> somebody help me with a minute version? I want to pay to get a version 
>>> that
>>> works. Regards Rolf
>>>
>>> Tickdata.txt
>>> DATE,TIME,PRICE,VOLUME
>>> 12/11/2009,08:00:11,5720.00,1
>>> 12/11/2009,08:00:12,5720.00,1
>>> 12/11/2009,09:02:14,5736.50,1
>>> 12/11/2009,09:02:14,5736.50,1
>>> 12/16/2009,10:24:09,5863.00,1
>>> 12/16/2009,10:24:10,5863.00,1
>>> 12/16/2009,10:47:45,5859.50,4
>>> 12/16/2009,10:47:45,5859.50,1
>>> 12/17/2009,17:39:07,5842.00,2
>>> 12/17/2009,17:39:08,5842.00,4
>>>
>>> eodtickdata.txt
>>> 12/11/2009,10:24,5720,5736.5,5720,5736.5,4
>>> 12/16/2009,17:39,5863,5863,5859.5,5859.5,7
>>> 12/17/2009,17:39,5842,5842,5842,5842,6
>>>
>>> Sub TickToDays()
>>> Dim aDate As String
>>> Dim bDate As Date
>>> Dim currentDate As Date
>>> Dim lastDate As Date
>>> Dim totDays As Single
>>> Dim aTime As String
>>> Dim price As Single
>>> Dim openp As Single
>>> Dim highp As Single
>>> Dim lowp As Single
>>> Dim closep As Single
>>> Dim vol As Single
>>> Dim totVol As Single
>>> Dim numLoops As Single
>>> Dim aText1 As String
>>> Dim aText2 As String
>>> Dim aText3 As String
>>> Dim aText4 As String
>>> Dim theSourcefolder As String
>>> Dim theTargetfolder As String
>>> On Error GoTo ErrorStop
>>> theSourcefolder = [Sourcefolder] & [Sourcefile]
>>> theTargetfolder = [Targetfolder] & "eod" & [Sourcefile]
>>> Open theSourcefolder For Input As #1
>>> Open theTargetfolder For Output As #2
>>> Input #1, aText1, aText2, aText3, aText4
>>> totVol = 0
>>> numLoops = 0
>>> Input #1, aDate, aTime, price, vol
>>> bDate = CDate(aDate)
>>> lastDate = bDate
>>> totVol = vol
>>> numLoops = 1
>>> openp = price
>>> highp = price
>>> lowp = price
>>> Do Until EOF(1)
>>>     Input #1, aDate, aTime, price, vol
>>>         bDate = CDate(aDate)
>>>         bTime = CDate(aTime)
>>>         cTime = Format(bTime, "hh:mm")
>>>     If lastDate = bDate Then
>>>     If highp <= price Then highp = price
>>>     If lowp >= price Then lowp = price
>>>     closep = price
>>>         totVol = totVol + vol
>>>     Else
>>>     Print #2, lastDate & "," & cTime & "," & openp & "," & highp & "," &
>>> lowp & "," & closep & "," & totVol
>>>         lastDate = bDate
>>>         openp = price
>>>         highp = price
>>>         lowp = price
>>>         closep = 0
>>>         totVol = 0
>>>         totVol = vol
>>>         totDays = totDays + 1
>>>     End If
>>>         numLoops = numLoops + 1
>>> Loop
>>> Print #2, lastDate & "," & cTime & "," & openp & "," & highp & "," & 
>>> lowp &
>>> "," & closep & "," & totVol
>>> MsgBox (numLoops & " trades are compressed to " & totDays & " daydata.")
>>> Close #1
>>> Close #2
>>> ErrorStop:
>>> 'Print #2, lastDate & "," & cTime & "," & openp & "," & highp & "," & 
>>> lowp &
>>> "," & closep & "," & totVol
>>> 'MsgBox (numLoops & " trades are compressed to " & totDays & " 
>>> daydata.")
>>> Close #1
>>> Close #2
>>> End Sub
>>>
>>>
>>>
>>> .
>>>
>
> 


0
Reply KC 2/4/2010 3:13:37 AM

Thank you for your suggestion. I was thinking that too but not hard enough 
but now I will try. It was 10 years ago that I used Access.

"KC" <pynasocas@yahoo.com.sg> skrev i meddelandet 
news:%23mVV6eUpKHA.4836@TK2MSFTNGP05.phx.gbl...
> On second thought, to stick with sequential read
> I would read the source file into Access;
> break the time field into hour, minute, second;
> sort by date/hour/minute/seond;
> dump it out in same format as source file.
>
> Again the rest is routine
>
> "Rolf" <rolfe@algonet.se> wrote in message 
> news:%239KMpaNpKHA.5224@TK2MSFTNGP05.phx.gbl...
>> Thanks for the suggestion. The problem is that the tick-file has over 7 
>> 000 000 lines. I opend it in Excel and it choked. "Only" 65 000 rows. :)
>>
>>
>> "Victor" <Victor@discussions.microsoft.com> schrieb im Newsbeitrag 
>> news:42AB3995-4940-4DBC-8809-6644D2D58F69@microsoft.com...
>>>I would try:
>>>
>>> import into Excel in one gulp;
>>> text to column into 4 columns;
>>> column 2 is time format;
>>> helpercolumn5=hour(column2);
>>> helpercolumn6=minute(column2);
>>> helpercolumn7=second(column2);
>>> helpercolumn8=if(helpercolumn7>0, helpercolumn6+1, helpercolumn6);
>>> helpercolumn9=ceiling(helpercolumn8,15);
>>> sort by date/hour/helpercolumn9;
>>>
>>> the rest is routine
>>>
>>> "Rolf" wrote:
>>>
>>>> Hi
>>>> I want to compress "tick"-data (ie trades) from a file into another 
>>>> file. In
>>>> the target file I want to chunk the data into 15 minutes activity (or 
>>>> other
>>>> number of minutes) and summorise it into date, time, open, high, low, 
>>>> open
>>>> and volume. I have managed it with days but minutes is harder. I have 3
>>>> cells in a worksheet that I have given the names: Sourcefile, 
>>>> Sourcefolder
>>>> and Targetfolder. And I have added "eod" (EndOfDday) at the beginning 
>>>> of the
>>>> target file. Below have I put parts of the sourcefile and the 
>>>> targetfile for
>>>> days for that sourcefile. As I wrote I have not managed to code the 
>>>> minute
>>>> chunks but I want to show the day code so it is easier to understand. 
>>>> Can
>>>> somebody help me with a minute version? I want to pay to get a version 
>>>> that
>>>> works. Regards Rolf
>>>>
>>>> Tickdata.txt
>>>> DATE,TIME,PRICE,VOLUME
>>>> 12/11/2009,08:00:11,5720.00,1
>>>> 12/11/2009,08:00:12,5720.00,1
>>>> 12/11/2009,09:02:14,5736.50,1
>>>> 12/11/2009,09:02:14,5736.50,1
>>>> 12/16/2009,10:24:09,5863.00,1
>>>> 12/16/2009,10:24:10,5863.00,1
>>>> 12/16/2009,10:47:45,5859.50,4
>>>> 12/16/2009,10:47:45,5859.50,1
>>>> 12/17/2009,17:39:07,5842.00,2
>>>> 12/17/2009,17:39:08,5842.00,4
>>>>
>>>> eodtickdata.txt
>>>> 12/11/2009,10:24,5720,5736.5,5720,5736.5,4
>>>> 12/16/2009,17:39,5863,5863,5859.5,5859.5,7
>>>> 12/17/2009,17:39,5842,5842,5842,5842,6
>>>>
>>>> Sub TickToDays()
>>>> Dim aDate As String
>>>> Dim bDate As Date
>>>> Dim currentDate As Date
>>>> Dim lastDate As Date
>>>> Dim totDays As Single
>>>> Dim aTime As String
>>>> Dim price As Single
>>>> Dim openp As Single
>>>> Dim highp As Single
>>>> Dim lowp As Single
>>>> Dim closep As Single
>>>> Dim vol As Single
>>>> Dim totVol As Single
>>>> Dim numLoops As Single
>>>> Dim aText1 As String
>>>> Dim aText2 As String
>>>> Dim aText3 As String
>>>> Dim aText4 As String
>>>> Dim theSourcefolder As String
>>>> Dim theTargetfolder As String
>>>> On Error GoTo ErrorStop
>>>> theSourcefolder = [Sourcefolder] & [Sourcefile]
>>>> theTargetfolder = [Targetfolder] & "eod" & [Sourcefile]
>>>> Open theSourcefolder For Input As #1
>>>> Open theTargetfolder For Output As #2
>>>> Input #1, aText1, aText2, aText3, aText4
>>>> totVol = 0
>>>> numLoops = 0
>>>> Input #1, aDate, aTime, price, vol
>>>> bDate = CDate(aDate)
>>>> lastDate = bDate
>>>> totVol = vol
>>>> numLoops = 1
>>>> openp = price
>>>> highp = price
>>>> lowp = price
>>>> Do Until EOF(1)
>>>>     Input #1, aDate, aTime, price, vol
>>>>         bDate = CDate(aDate)
>>>>         bTime = CDate(aTime)
>>>>         cTime = Format(bTime, "hh:mm")
>>>>     If lastDate = bDate Then
>>>>     If highp <= price Then highp = price
>>>>     If lowp >= price Then lowp = price
>>>>     closep = price
>>>>         totVol = totVol + vol
>>>>     Else
>>>>     Print #2, lastDate & "," & cTime & "," & openp & "," & highp & "," 
>>>> &
>>>> lowp & "," & closep & "," & totVol
>>>>         lastDate = bDate
>>>>         openp = price
>>>>         highp = price
>>>>         lowp = price
>>>>         closep = 0
>>>>         totVol = 0
>>>>         totVol = vol
>>>>         totDays = totDays + 1
>>>>     End If
>>>>         numLoops = numLoops + 1
>>>> Loop
>>>> Print #2, lastDate & "," & cTime & "," & openp & "," & highp & "," & 
>>>> lowp &
>>>> "," & closep & "," & totVol
>>>> MsgBox (numLoops & " trades are compressed to " & totDays & " 
>>>> daydata.")
>>>> Close #1
>>>> Close #2
>>>> ErrorStop:
>>>> 'Print #2, lastDate & "," & cTime & "," & openp & "," & highp & "," & 
>>>> lowp &
>>>> "," & closep & "," & totVol
>>>> 'MsgBox (numLoops & " trades are compressed to " & totDays & " 
>>>> daydata.")
>>>> Close #1
>>>> Close #2
>>>> End Sub
>>>>
>>>>
>>>>
>>>> .
>>>>
>>
>>
>
> 

0
Reply Rolf 2/4/2010 3:16:36 AM

Make it simpler
Read into Access;
sort by date/time;
dump it out.

sequential read #1 into Excel;
pause at change of date;
process data;
sequential append #2 out;
loop to EOF #1

cheers

"Rolf" <rolfe@algonet.se> wrote in message 
news:uTAC%23jUpKHA.4860@TK2MSFTNGP05.phx.gbl...
> Thank you for your suggestion. I was thinking that too but not hard enough 
> but now I will try. It was 10 years ago that I used Access.
>
> "KC" <pynasocas@yahoo.com.sg> skrev i meddelandet 
> news:%23mVV6eUpKHA.4836@TK2MSFTNGP05.phx.gbl...
>> On second thought, to stick with sequential read
>> I would read the source file into Access;
>> break the time field into hour, minute, second;
>> sort by date/hour/minute/seond;
>> dump it out in same format as source file.
>>
>> Again the rest is routine
>>
>> "Rolf" <rolfe@algonet.se> wrote in message 
>> news:%239KMpaNpKHA.5224@TK2MSFTNGP05.phx.gbl...
>>> Thanks for the suggestion. The problem is that the tick-file has over 7 
>>> 000 000 lines. I opend it in Excel and it choked. "Only" 65 000 rows. :)
>>>
>>>
>>> "Victor" <Victor@discussions.microsoft.com> schrieb im Newsbeitrag 
>>> news:42AB3995-4940-4DBC-8809-6644D2D58F69@microsoft.com...
>>>>I would try:
>>>>
>>>> import into Excel in one gulp;
>>>> text to column into 4 columns;
>>>> column 2 is time format;
>>>> helpercolumn5=hour(column2);
>>>> helpercolumn6=minute(column2);
>>>> helpercolumn7=second(column2);
>>>> helpercolumn8=if(helpercolumn7>0, helpercolumn6+1, helpercolumn6);
>>>> helpercolumn9=ceiling(helpercolumn8,15);
>>>> sort by date/hour/helpercolumn9;
>>>>
>>>> the rest is routine
>>>>
>>>> "Rolf" wrote:
>>>>
>>>>> Hi
>>>>> I want to compress "tick"-data (ie trades) from a file into another 
>>>>> file. In
>>>>> the target file I want to chunk the data into 15 minutes activity (or 
>>>>> other
>>>>> number of minutes) and summorise it into date, time, open, high, low, 
>>>>> open
>>>>> and volume. I have managed it with days but minutes is harder. I have 
>>>>> 3
>>>>> cells in a worksheet that I have given the names: Sourcefile, 
>>>>> Sourcefolder
>>>>> and Targetfolder. And I have added "eod" (EndOfDday) at the beginning 
>>>>> of the
>>>>> target file. Below have I put parts of the sourcefile and the 
>>>>> targetfile for
>>>>> days for that sourcefile. As I wrote I have not managed to code the 
>>>>> minute
>>>>> chunks but I want to show the day code so it is easier to understand. 
>>>>> Can
>>>>> somebody help me with a minute version? I want to pay to get a version 
>>>>> that
>>>>> works. Regards Rolf
>>>>>
>>>>> Tickdata.txt
>>>>> DATE,TIME,PRICE,VOLUME
>>>>> 12/11/2009,08:00:11,5720.00,1
>>>>> 12/11/2009,08:00:12,5720.00,1
>>>>> 12/11/2009,09:02:14,5736.50,1
>>>>> 12/11/2009,09:02:14,5736.50,1
>>>>> 12/16/2009,10:24:09,5863.00,1
>>>>> 12/16/2009,10:24:10,5863.00,1
>>>>> 12/16/2009,10:47:45,5859.50,4
>>>>> 12/16/2009,10:47:45,5859.50,1
>>>>> 12/17/2009,17:39:07,5842.00,2
>>>>> 12/17/2009,17:39:08,5842.00,4
>>>>>
>>>>> eodtickdata.txt
>>>>> 12/11/2009,10:24,5720,5736.5,5720,5736.5,4
>>>>> 12/16/2009,17:39,5863,5863,5859.5,5859.5,7
>>>>> 12/17/2009,17:39,5842,5842,5842,5842,6
>>>>>
>>>>> Sub TickToDays()
>>>>> Dim aDate As String
>>>>> Dim bDate As Date
>>>>> Dim currentDate As Date
>>>>> Dim lastDate As Date
>>>>> Dim totDays As Single
>>>>> Dim aTime As String
>>>>> Dim price As Single
>>>>> Dim openp As Single
>>>>> Dim highp As Single
>>>>> Dim lowp As Single
>>>>> Dim closep As Single
>>>>> Dim vol As Single
>>>>> Dim totVol As Single
>>>>> Dim numLoops As Single
>>>>> Dim aText1 As String
>>>>> Dim aText2 As String
>>>>> Dim aText3 As String
>>>>> Dim aText4 As String
>>>>> Dim theSourcefolder As String
>>>>> Dim theTargetfolder As String
>>>>> On Error GoTo ErrorStop
>>>>> theSourcefolder = [Sourcefolder] & [Sourcefile]
>>>>> theTargetfolder = [Targetfolder] & "eod" & [Sourcefile]
>>>>> Open theSourcefolder For Input As #1
>>>>> Open theTargetfolder For Output As #2
>>>>> Input #1, aText1, aText2, aText3, aText4
>>>>> totVol = 0
>>>>> numLoops = 0
>>>>> Input #1, aDate, aTime, price, vol
>>>>> bDate = CDate(aDate)
>>>>> lastDate = bDate
>>>>> totVol = vol
>>>>> numLoops = 1
>>>>> openp = price
>>>>> highp = price
>>>>> lowp = price
>>>>> Do Until EOF(1)
>>>>>     Input #1, aDate, aTime, price, vol
>>>>>         bDate = CDate(aDate)
>>>>>         bTime = CDate(aTime)
>>>>>         cTime = Format(bTime, "hh:mm")
>>>>>     If lastDate = bDate Then
>>>>>     If highp <= price Then highp = price
>>>>>     If lowp >= price Then lowp = price
>>>>>     closep = price
>>>>>         totVol = totVol + vol
>>>>>     Else
>>>>>     Print #2, lastDate & "," & cTime & "," & openp & "," & highp & "," 
>>>>> &
>>>>> lowp & "," & closep & "," & totVol
>>>>>         lastDate = bDate
>>>>>         openp = price
>>>>>         highp = price
>>>>>         lowp = price
>>>>>         closep = 0
>>>>>         totVol = 0
>>>>>         totVol = vol
>>>>>         totDays = totDays + 1
>>>>>     End If
>>>>>         numLoops = numLoops + 1
>>>>> Loop
>>>>> Print #2, lastDate & "," & cTime & "," & openp & "," & highp & "," & 
>>>>> lowp &
>>>>> "," & closep & "," & totVol
>>>>> MsgBox (numLoops & " trades are compressed to " & totDays & " 
>>>>> daydata.")
>>>>> Close #1
>>>>> Close #2
>>>>> ErrorStop:
>>>>> 'Print #2, lastDate & "," & cTime & "," & openp & "," & highp & "," & 
>>>>> lowp &
>>>>> "," & closep & "," & totVol
>>>>> 'MsgBox (numLoops & " trades are compressed to " & totDays & " 
>>>>> daydata.")
>>>>> Close #1
>>>>> Close #2
>>>>> End Sub
>>>>>
>>>>>
>>>>>
>>>>> .
>>>>>
>>>
>>>
>>
>>
> 


0
Reply KC 2/4/2010 4:51:09 AM

Thank you for your suggestion. The sourcefile is sorted in date and time 
from the start. The code in the question that I wrote compresses it into day 
chunks. It is the adding in the code of compressing into minute chunks that 
I can not manage. I dont see it clear enough. It should be easy but I am not 
good at this. :(

"KC" <pynasocas@yahoo.com.sg> skrev i meddelandet 
news:OyYT5UVpKHA.5696@TK2MSFTNGP04.phx.gbl...
> Make it simpler
> Read into Access;
> sort by date/time;
> dump it out.
>
> sequential read #1 into Excel;
> pause at change of date;
> process data;
> sequential append #2 out;
> loop to EOF #1
>
> cheers
>
> "Rolf" <rolfe@algonet.se> wrote in message 
> news:uTAC%23jUpKHA.4860@TK2MSFTNGP05.phx.gbl...
>> Thank you for your suggestion. I was thinking that too but not hard 
>> enough but now I will try. It was 10 years ago that I used Access.
>>
>> "KC" <pynasocas@yahoo.com.sg> skrev i meddelandet 
>> news:%23mVV6eUpKHA.4836@TK2MSFTNGP05.phx.gbl...
>>> On second thought, to stick with sequential read
>>> I would read the source file into Access;
>>> break the time field into hour, minute, second;
>>> sort by date/hour/minute/seond;
>>> dump it out in same format as source file.
>>>
>>> Again the rest is routine
>>>
>>> "Rolf" <rolfe@algonet.se> wrote in message 
>>> news:%239KMpaNpKHA.5224@TK2MSFTNGP05.phx.gbl...
>>>> Thanks for the suggestion. The problem is that the tick-file has over 7 
>>>> 000 000 lines. I opend it in Excel and it choked. "Only" 65 000 rows. 
>>>> :)
>>>>
>>>>
>>>> "Victor" <Victor@discussions.microsoft.com> schrieb im Newsbeitrag 
>>>> news:42AB3995-4940-4DBC-8809-6644D2D58F69@microsoft.com...
>>>>>I would try:
>>>>>
>>>>> import into Excel in one gulp;
>>>>> text to column into 4 columns;
>>>>> column 2 is time format;
>>>>> helpercolumn5=hour(column2);
>>>>> helpercolumn6=minute(column2);
>>>>> helpercolumn7=second(column2);
>>>>> helpercolumn8=if(helpercolumn7>0, helpercolumn6+1, helpercolumn6);
>>>>> helpercolumn9=ceiling(helpercolumn8,15);
>>>>> sort by date/hour/helpercolumn9;
>>>>>
>>>>> the rest is routine
>>>>>
>>>>> "Rolf" wrote:
>>>>>
>>>>>> Hi
>>>>>> I want to compress "tick"-data (ie trades) from a file into another 
>>>>>> file. In
>>>>>> the target file I want to chunk the data into 15 minutes activity (or 
>>>>>> other
>>>>>> number of minutes) and summorise it into date, time, open, high, low, 
>>>>>> open
>>>>>> and volume. I have managed it with days but minutes is harder. I have 
>>>>>> 3
>>>>>> cells in a worksheet that I have given the names: Sourcefile, 
>>>>>> Sourcefolder
>>>>>> and Targetfolder. And I have added "eod" (EndOfDday) at the beginning 
>>>>>> of the
>>>>>> target file. Below have I put parts of the sourcefile and the 
>>>>>> targetfile for
>>>>>> days for that sourcefile. As I wrote I have not managed to code the 
>>>>>> minute
>>>>>> chunks but I want to show the day code so it is easier to understand. 
>>>>>> Can
>>>>>> somebody help me with a minute version? I want to pay to get a 
>>>>>> version that
>>>>>> works. Regards Rolf
>>>>>>
>>>>>> Tickdata.txt
>>>>>> DATE,TIME,PRICE,VOLUME
>>>>>> 12/11/2009,08:00:11,5720.00,1
>>>>>> 12/11/2009,08:00:12,5720.00,1
>>>>>> 12/11/2009,09:02:14,5736.50,1
>>>>>> 12/11/2009,09:02:14,5736.50,1
>>>>>> 12/16/2009,10:24:09,5863.00,1
>>>>>> 12/16/2009,10:24:10,5863.00,1
>>>>>> 12/16/2009,10:47:45,5859.50,4
>>>>>> 12/16/2009,10:47:45,5859.50,1
>>>>>> 12/17/2009,17:39:07,5842.00,2
>>>>>> 12/17/2009,17:39:08,5842.00,4
>>>>>>
>>>>>> eodtickdata.txt
>>>>>> 12/11/2009,10:24,5720,5736.5,5720,5736.5,4
>>>>>> 12/16/2009,17:39,5863,5863,5859.5,5859.5,7
>>>>>> 12/17/2009,17:39,5842,5842,5842,5842,6
>>>>>>
>>>>>> Sub TickToDays()
>>>>>> Dim aDate As String
>>>>>> Dim bDate As Date
>>>>>> Dim currentDate As Date
>>>>>> Dim lastDate As Date
>>>>>> Dim totDays As Single
>>>>>> Dim aTime As String
>>>>>> Dim price As Single
>>>>>> Dim openp As Single
>>>>>> Dim highp As Single
>>>>>> Dim lowp As Single
>>>>>> Dim closep As Single
>>>>>> Dim vol As Single
>>>>>> Dim totVol As Single
>>>>>> Dim numLoops As Single
>>>>>> Dim aText1 As String
>>>>>> Dim aText2 As String
>>>>>> Dim aText3 As String
>>>>>> Dim aText4 As String
>>>>>> Dim theSourcefolder As String
>>>>>> Dim theTargetfolder As String
>>>>>> On Error GoTo ErrorStop
>>>>>> theSourcefolder = [Sourcefolder] & [Sourcefile]
>>>>>> theTargetfolder = [Targetfolder] & "eod" & [Sourcefile]
>>>>>> Open theSourcefolder For Input As #1
>>>>>> Open theTargetfolder For Output As #2
>>>>>> Input #1, aText1, aText2, aText3, aText4
>>>>>> totVol = 0
>>>>>> numLoops = 0
>>>>>> Input #1, aDate, aTime, price, vol
>>>>>> bDate = CDate(aDate)
>>>>>> lastDate = bDate
>>>>>> totVol = vol
>>>>>> numLoops = 1
>>>>>> openp = price
>>>>>> highp = price
>>>>>> lowp = price
>>>>>> Do Until EOF(1)
>>>>>>     Input #1, aDate, aTime, price, vol
>>>>>>         bDate = CDate(aDate)
>>>>>>         bTime = CDate(aTime)
>>>>>>         cTime = Format(bTime, "hh:mm")
>>>>>>     If lastDate = bDate Then
>>>>>>     If highp <= price Then highp = price
>>>>>>     If lowp >= price Then lowp = price
>>>>>>     closep = price
>>>>>>         totVol = totVol + vol
>>>>>>     Else
>>>>>>     Print #2, lastDate & "," & cTime & "," & openp & "," & highp & 
>>>>>> "," &
>>>>>> lowp & "," & closep & "," & totVol
>>>>>>         lastDate = bDate
>>>>>>         openp = price
>>>>>>         highp = price
>>>>>>         lowp = price
>>>>>>         closep = 0
>>>>>>         totVol = 0
>>>>>>         totVol = vol
>>>>>>         totDays = totDays + 1
>>>>>>     End If
>>>>>>         numLoops = numLoops + 1
>>>>>> Loop
>>>>>> Print #2, lastDate & "," & cTime & "," & openp & "," & highp & "," & 
>>>>>> lowp &
>>>>>> "," & closep & "," & totVol
>>>>>> MsgBox (numLoops & " trades are compressed to " & totDays & " 
>>>>>> daydata.")
>>>>>> Close #1
>>>>>> Close #2
>>>>>> ErrorStop:
>>>>>> 'Print #2, lastDate & "," & cTime & "," & openp & "," & highp & "," & 
>>>>>> lowp &
>>>>>> "," & closep & "," & totVol
>>>>>> 'MsgBox (numLoops & " trades are compressed to " & totDays & " 
>>>>>> daydata.")
>>>>>> Close #1
>>>>>> Close #2
>>>>>> End Sub
>>>>>>
>>>>>>
>>>>>>
>>>>>> .
>>>>>>
>>>>
>>>>
>>>
>>>
>>
>
> 

0
Reply Rolf 2/4/2010 10:57:09 AM

My suggestion on Feb 3 is explicit enough.
Give it to your favorite service provider.
I am sure he can code it up accordingly.

"Rolf" <rolfe@algonet.se> wrote in message 
news:%23Yp%23SlYpKHA.3948@TK2MSFTNGP06.phx.gbl...
> Thank you for your suggestion. The sourcefile is sorted in date and time 
> from the start. The code in the question that I wrote compresses it into 
> day chunks. It is the adding in the code of compressing into minute chunks 
> that I can not manage. I dont see it clear enough. It should be easy but I 
> am not good at this. :(
>
> "KC" <pynasocas@yahoo.com.sg> skrev i meddelandet 
> news:OyYT5UVpKHA.5696@TK2MSFTNGP04.phx.gbl...
>> Make it simpler
>> Read into Access;
>> sort by date/time;
>> dump it out.
>>
>> sequential read #1 into Excel;
>> pause at change of date;
>> process data;
>> sequential append #2 out;
>> loop to EOF #1
>>
>> cheers
>>
>> "Rolf" <rolfe@algonet.se> wrote in message 
>> news:uTAC%23jUpKHA.4860@TK2MSFTNGP05.phx.gbl...
>>> Thank you for your suggestion. I was thinking that too but not hard 
>>> enough but now I will try. It was 10 years ago that I used Access.
>>>
>>> "KC" <pynasocas@yahoo.com.sg> skrev i meddelandet 
>>> news:%23mVV6eUpKHA.4836@TK2MSFTNGP05.phx.gbl...
>>>> On second thought, to stick with sequential read
>>>> I would read the source file into Access;
>>>> break the time field into hour, minute, second;
>>>> sort by date/hour/minute/seond;
>>>> dump it out in same format as source file.
>>>>
>>>> Again the rest is routine
>>>>
>>>> "Rolf" <rolfe@algonet.se> wrote in message 
>>>> news:%239KMpaNpKHA.5224@TK2MSFTNGP05.phx.gbl...
>>>>> Thanks for the suggestion. The problem is that the tick-file has over 
>>>>> 7 000 000 lines. I opend it in Excel and it choked. "Only" 65 000 
>>>>> rows. :)
>>>>>
>>>>>
>>>>> "Victor" <Victor@discussions.microsoft.com> schrieb im Newsbeitrag 
>>>>> news:42AB3995-4940-4DBC-8809-6644D2D58F69@microsoft.com...
>>>>>>I would try:
>>>>>>
>>>>>> import into Excel in one gulp;
>>>>>> text to column into 4 columns;
>>>>>> column 2 is time format;
>>>>>> helpercolumn5=hour(column2);
>>>>>> helpercolumn6=minute(column2);
>>>>>> helpercolumn7=second(column2);
>>>>>> helpercolumn8=if(helpercolumn7>0, helpercolumn6+1, helpercolumn6);
>>>>>> helpercolumn9=ceiling(helpercolumn8,15);
>>>>>> sort by date/hour/helpercolumn9;
>>>>>>
>>>>>> the rest is routine
>>>>>>
>>>>>> "Rolf" wrote:
>>>>>>
>>>>>>> Hi
>>>>>>> I want to compress "tick"-data (ie trades) from a file into another 
>>>>>>> file. In
>>>>>>> the target file I want to chunk the data into 15 minutes activity 
>>>>>>> (or other
>>>>>>> number of minutes) and summorise it into date, time, open, high, 
>>>>>>> low, open
>>>>>>> and volume. I have managed it with days but minutes is harder. I 
>>>>>>> have 3
>>>>>>> cells in a worksheet that I have given the names: Sourcefile, 
>>>>>>> Sourcefolder
>>>>>>> and Targetfolder. And I have added "eod" (EndOfDday) at the 
>>>>>>> beginning of the
>>>>>>> target file. Below have I put parts of the sourcefile and the 
>>>>>>> targetfile for
>>>>>>> days for that sourcefile. As I wrote I have not managed to code the 
>>>>>>> minute
>>>>>>> chunks but I want to show the day code so it is easier to 
>>>>>>> understand. Can
>>>>>>> somebody help me with a minute version? I want to pay to get a 
>>>>>>> version that
>>>>>>> works. Regards Rolf
>>>>>>>
>>>>>>> Tickdata.txt
>>>>>>> DATE,TIME,PRICE,VOLUME
>>>>>>> 12/11/2009,08:00:11,5720.00,1
>>>>>>> 12/11/2009,08:00:12,5720.00,1
>>>>>>> 12/11/2009,09:02:14,5736.50,1
>>>>>>> 12/11/2009,09:02:14,5736.50,1
>>>>>>> 12/16/2009,10:24:09,5863.00,1
>>>>>>> 12/16/2009,10:24:10,5863.00,1
>>>>>>> 12/16/2009,10:47:45,5859.50,4
>>>>>>> 12/16/2009,10:47:45,5859.50,1
>>>>>>> 12/17/2009,17:39:07,5842.00,2
>>>>>>> 12/17/2009,17:39:08,5842.00,4
>>>>>>>
>>>>>>> eodtickdata.txt
>>>>>>> 12/11/2009,10:24,5720,5736.5,5720,5736.5,4
>>>>>>> 12/16/2009,17:39,5863,5863,5859.5,5859.5,7
>>>>>>> 12/17/2009,17:39,5842,5842,5842,5842,6
>>>>>>>
>>>>>>> Sub TickToDays()
>>>>>>> Dim aDate As String
>>>>>>> Dim bDate As Date
>>>>>>> Dim currentDate As Date
>>>>>>> Dim lastDate As Date
>>>>>>> Dim totDays As Single
>>>>>>> Dim aTime As String
>>>>>>> Dim price As Single
>>>>>>> Dim openp As Single
>>>>>>> Dim highp As Single
>>>>>>> Dim lowp As Single
>>>>>>> Dim closep As Single
>>>>>>> Dim vol As Single
>>>>>>> Dim totVol As Single
>>>>>>> Dim numLoops As Single
>>>>>>> Dim aText1 As String
>>>>>>> Dim aText2 As String
>>>>>>> Dim aText3 As String
>>>>>>> Dim aText4 As String
>>>>>>> Dim theSourcefolder As String
>>>>>>> Dim theTargetfolder As String
>>>>>>> On Error GoTo ErrorStop
>>>>>>> theSourcefolder = [Sourcefolder] & [Sourcefile]
>>>>>>> theTargetfolder = [Targetfolder] & "eod" & [Sourcefile]
>>>>>>> Open theSourcefolder For Input As #1
>>>>>>> Open theTargetfolder For Output As #2
>>>>>>> Input #1, aText1, aText2, aText3, aText4
>>>>>>> totVol = 0
>>>>>>> numLoops = 0
>>>>>>> Input #1, aDate, aTime, price, vol
>>>>>>> bDate = CDate(aDate)
>>>>>>> lastDate = bDate
>>>>>>> totVol = vol
>>>>>>> numLoops = 1
>>>>>>> openp = price
>>>>>>> highp = price
>>>>>>> lowp = price
>>>>>>> Do Until EOF(1)
>>>>>>>     Input #1, aDate, aTime, price, vol
>>>>>>>         bDate = CDate(aDate)
>>>>>>>         bTime = CDate(aTime)
>>>>>>>         cTime = Format(bTime, "hh:mm")
>>>>>>>     If lastDate = bDate Then
>>>>>>>     If highp <= price Then highp = price
>>>>>>>     If lowp >= price Then lowp = price
>>>>>>>     closep = price
>>>>>>>         totVol = totVol + vol
>>>>>>>     Else
>>>>>>>     Print #2, lastDate & "," & cTime & "," & openp & "," & highp & 
>>>>>>> "," &
>>>>>>> lowp & "," & closep & "," & totVol
>>>>>>>         lastDate = bDate
>>>>>>>         openp = price
>>>>>>>         highp = price
>>>>>>>         lowp = price
>>>>>>>         closep = 0
>>>>>>>         totVol = 0
>>>>>>>         totVol = vol
>>>>>>>         totDays = totDays + 1
>>>>>>>     End If
>>>>>>>         numLoops = numLoops + 1
>>>>>>> Loop
>>>>>>> Print #2, lastDate & "," & cTime & "," & openp & "," & highp & "," & 
>>>>>>> lowp &
>>>>>>> "," & closep & "," & totVol
>>>>>>> MsgBox (numLoops & " trades are compressed to " & totDays & " 
>>>>>>> daydata.")
>>>>>>> Close #1
>>>>>>> Close #2
>>>>>>> ErrorStop:
>>>>>>> 'Print #2, lastDate & "," & cTime & "," & openp & "," & highp & "," 
>>>>>>> & lowp &
>>>>>>> "," & closep & "," & totVol
>>>>>>> 'MsgBox (numLoops & " trades are compressed to " & totDays & " 
>>>>>>> daydata.")
>>>>>>> Close #1
>>>>>>> Close #2
>>>>>>> End Sub
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> .
>>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>>
> 


0
Reply KC 2/4/2010 11:53:01 AM

Thank you for your suggestion. I have asked but no. :(
"KC" <pynasocas@yahoo.com.sg> skrev i meddelandet 
news:un3FgCZpKHA.3748@TK2MSFTNGP02.phx.gbl...
> My suggestion on Feb 3 is explicit enough.
> Give it to your favorite service provider.
> I am sure he can code it up accordingly.
>
> "Rolf" <rolfe@algonet.se> wrote in message 
> news:%23Yp%23SlYpKHA.3948@TK2MSFTNGP06.phx.gbl...
>> Thank you for your suggestion. The sourcefile is sorted in date and time 
>> from the start. The code in the question that I wrote compresses it into 
>> day chunks. It is the adding in the code of compressing into minute 
>> chunks that I can not manage. I dont see it clear enough. It should be 
>> easy but I am not good at this. :(
>>
>> "KC" <pynasocas@yahoo.com.sg> skrev i meddelandet 
>> news:OyYT5UVpKHA.5696@TK2MSFTNGP04.phx.gbl...
>>> Make it simpler
>>> Read into Access;
>>> sort by date/time;
>>> dump it out.
>>>
>>> sequential read #1 into Excel;
>>> pause at change of date;
>>> process data;
>>> sequential append #2 out;
>>> loop to EOF #1
>>>
>>> cheers
>>>
>>> "Rolf" <rolfe@algonet.se> wrote in message 
>>> news:uTAC%23jUpKHA.4860@TK2MSFTNGP05.phx.gbl...
>>>> Thank you for your suggestion. I was thinking that too but not hard 
>>>> enough but now I will try. It was 10 years ago that I used Access.
>>>>
>>>> "KC" <pynasocas@yahoo.com.sg> skrev i meddelandet 
>>>> news:%23mVV6eUpKHA.4836@TK2MSFTNGP05.phx.gbl...
>>>>> On second thought, to stick with sequential read
>>>>> I would read the source file into Access;
>>>>> break the time field into hour, minute, second;
>>>>> sort by date/hour/minute/seond;
>>>>> dump it out in same format as source file.
>>>>>
>>>>> Again the rest is routine
>>>>>
>>>>> "Rolf" <rolfe@algonet.se> wrote in message 
>>>>> news:%239KMpaNpKHA.5224@TK2MSFTNGP05.phx.gbl...
>>>>>> Thanks for the suggestion. The problem is that the tick-file has over 
>>>>>> 7 000 000 lines. I opend it in Excel and it choked. "Only" 65 000 
>>>>>> rows. :)
>>>>>>
>>>>>>
>>>>>> "Victor" <Victor@discussions.microsoft.com> schrieb im Newsbeitrag 
>>>>>> news:42AB3995-4940-4DBC-8809-6644D2D58F69@microsoft.com...
>>>>>>>I would try:
>>>>>>>
>>>>>>> import into Excel in one gulp;
>>>>>>> text to column into 4 columns;
>>>>>>> column 2 is time format;
>>>>>>> helpercolumn5=hour(column2);
>>>>>>> helpercolumn6=minute(column2);
>>>>>>> helpercolumn7=second(column2);
>>>>>>> helpercolumn8=if(helpercolumn7>0, helpercolumn6+1, helpercolumn6);
>>>>>>> helpercolumn9=ceiling(helpercolumn8,15);
>>>>>>> sort by date/hour/helpercolumn9;
>>>>>>>
>>>>>>> the rest is routine
>>>>>>>
>>>>>>> "Rolf" wrote:
>>>>>>>
>>>>>>>> Hi
>>>>>>>> I want to compress "tick"-data (ie trades) from a file into another 
>>>>>>>> file. In
>>>>>>>> the target file I want to chunk the data into 15 minutes activity 
>>>>>>>> (or other
>>>>>>>> number of minutes) and summorise it into date, time, open, high, 
>>>>>>>> low, open
>>>>>>>> and volume. I have managed it with days but minutes is harder. I 
>>>>>>>> have 3
>>>>>>>> cells in a worksheet that I have given the names: Sourcefile, 
>>>>>>>> Sourcefolder
>>>>>>>> and Targetfolder. And I have added "eod" (EndOfDday) at the 
>>>>>>>> beginning of the
>>>>>>>> target file. Below have I put parts of the sourcefile and the 
>>>>>>>> targetfile for
>>>>>>>> days for that sourcefile. As I wrote I have not managed to code the 
>>>>>>>> minute
>>>>>>>> chunks but I want to show the day code so it is easier to 
>>>>>>>> understand. Can
>>>>>>>> somebody help me with a minute version? I want to pay to get a 
>>>>>>>> version that
>>>>>>>> works. Regards Rolf
>>>>>>>>
>>>>>>>> Tickdata.txt
>>>>>>>> DATE,TIME,PRICE,VOLUME
>>>>>>>> 12/11/2009,08:00:11,5720.00,1
>>>>>>>> 12/11/2009,08:00:12,5720.00,1
>>>>>>>> 12/11/2009,09:02:14,5736.50,1
>>>>>>>> 12/11/2009,09:02:14,5736.50,1
>>>>>>>> 12/16/2009,10:24:09,5863.00,1
>>>>>>>> 12/16/2009,10:24:10,5863.00,1
>>>>>>>> 12/16/2009,10:47:45,5859.50,4
>>>>>>>> 12/16/2009,10:47:45,5859.50,1
>>>>>>>> 12/17/2009,17:39:07,5842.00,2
>>>>>>>> 12/17/2009,17:39:08,5842.00,4
>>>>>>>>
>>>>>>>> eodtickdata.txt
>>>>>>>> 12/11/2009,10:24,5720,5736.5,5720,5736.5,4
>>>>>>>> 12/16/2009,17:39,5863,5863,5859.5,5859.5,7
>>>>>>>> 12/17/2009,17:39,5842,5842,5842,5842,6
>>>>>>>>
>>>>>>>> Sub TickToDays()
>>>>>>>> Dim aDate As String
>>>>>>>> Dim bDate As Date
>>>>>>>> Dim currentDate As Date
>>>>>>>> Dim lastDate As Date
>>>>>>>> Dim totDays As Single
>>>>>>>> Dim aTime As String
>>>>>>>> Dim price As Single
>>>>>>>> Dim openp As Single
>>>>>>>> Dim highp As Single
>>>>>>>> Dim lowp As Single
>>>>>>>> Dim closep As Single
>>>>>>>> Dim vol As Single
>>>>>>>> Dim totVol As Single
>>>>>>>> Dim numLoops As Single
>>>>>>>> Dim aText1 As String
>>>>>>>> Dim aText2 As String
>>>>>>>> Dim aText3 As String
>>>>>>>> Dim aText4 As String
>>>>>>>> Dim theSourcefolder As String
>>>>>>>> Dim theTargetfolder As String
>>>>>>>> On Error GoTo ErrorStop
>>>>>>>> theSourcefolder = [Sourcefolder] & [Sourcefile]
>>>>>>>> theTargetfolder = [Targetfolder] & "eod" & [Sourcefile]
>>>>>>>> Open theSourcefolder For Input As #1
>>>>>>>> Open theTargetfolder For Output As #2
>>>>>>>> Input #1, aText1, aText2, aText3, aText4
>>>>>>>> totVol = 0
>>>>>>>> numLoops = 0
>>>>>>>> Input #1, aDate, aTime, price, vol
>>>>>>>> bDate = CDate(aDate)
>>>>>>>> lastDate = bDate
>>>>>>>> totVol = vol
>>>>>>>> numLoops = 1
>>>>>>>> openp = price
>>>>>>>> highp = price
>>>>>>>> lowp = price
>>>>>>>> Do Until EOF(1)
>>>>>>>>     Input #1, aDate, aTime, price, vol
>>>>>>>>         bDate = CDate(aDate)
>>>>>>>>         bTime = CDate(aTime)
>>>>>>>>         cTime = Format(bTime, "hh:mm")
>>>>>>>>     If lastDate = bDate Then
>>>>>>>>     If highp <= price Then highp = price
>>>>>>>>     If lowp >= price Then lowp = price
>>>>>>>>     closep = price
>>>>>>>>         totVol = totVol + vol
>>>>>>>>     Else
>>>>>>>>     Print #2, lastDate & "," & cTime & "," & openp & "," & highp & 
>>>>>>>> "," &
>>>>>>>> lowp & "," & closep & "," & totVol
>>>>>>>>         lastDate = bDate
>>>>>>>>         openp = price
>>>>>>>>         highp = price
>>>>>>>>         lowp = price
>>>>>>>>         closep = 0
>>>>>>>>         totVol = 0
>>>>>>>>         totVol = vol
>>>>>>>>         totDays = totDays + 1
>>>>>>>>     End If
>>>>>>>>         numLoops = numLoops + 1
>>>>>>>> Loop
>>>>>>>> Print #2, lastDate & "," & cTime & "," & openp & "," & highp & "," 
>>>>>>>> & lowp &
>>>>>>>> "," & closep & "," & totVol
>>>>>>>> MsgBox (numLoops & " trades are compressed to " & totDays & " 
>>>>>>>> daydata.")
>>>>>>>> Close #1
>>>>>>>> Close #2
>>>>>>>> ErrorStop:
>>>>>>>> 'Print #2, lastDate & "," & cTime & "," & openp & "," & highp & "," 
>>>>>>>> & lowp &
>>>>>>>> "," & closep & "," & totVol
>>>>>>>> 'MsgBox (numLoops & " trades are compressed to " & totDays & " 
>>>>>>>> daydata.")
>>>>>>>> Close #1
>>>>>>>> Close #2
>>>>>>>> End Sub
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> .
>>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>
>
> 

0
Reply Rolf 2/4/2010 3:31:53 PM

I tried this approach on a *small* file of data, and it *seemed* to work.
You can see if you can work out the details and whether it works on your 
full dataset.
(or if you want to send a sample file I can try it myself out of 
interest...)

Right now it dumps the results to a worksheet but an ADO recordset also has 
a "GetString()" method.

http://www.w3schools.com/ado/met_rs_getstring.asp

Tim


'**************************************************
Sub TestText()

    Dim FileTitle As String, sConnectionString As String
    Dim rs As ADODB.Recordset
    Dim f, i As Integer, sSQL As String
    Dim rngDest As Range

    FileTitle = "trades.txt"

    sSQL = " select [date], round([time]*24*4)/(24*4) as rndTime, " & _
           " max([price]) as MaxPrice, " & _
            " min([price]) as MinPrice, " & _
            " sum([volume]) as totalVolume from [" & _
            FileTitle & "] group by [date], round([time]*24*4)/(24*4) "

    sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                        "Data Source=" & ThisWorkbook.Path & ";" & _
                        "Extended Properties=Text"

    Set rs = New ADODB.Recordset
    rs.Open sSQL, sConnectionString

    Set rngDest = Sheet1.Range("A1")

    i = 0
    For Each f In rs.Fields
        rngDest.Offset(0, i).Value = f.Name
        i = i + 1
    Next f

    rngDest.Offset(1, 0).CopyFromRecordset rs


End Sub
'*************************************************


"Rolf" <rolfe@algonet.se> wrote in message 
news:u17M1%23apKHA.5696@TK2MSFTNGP04.phx.gbl...
> Thank you for your suggestion. I have asked but no. :(
> "KC" <pynasocas@yahoo.com.sg> skrev i meddelandet 
> news:un3FgCZpKHA.3748@TK2MSFTNGP02.phx.gbl...
>> My suggestion on Feb 3 is explicit enough.
>> Give it to your favorite service provider.
>> I am sure he can code it up accordingly.
>>
>> "Rolf" <rolfe@algonet.se> wrote in message


0
Reply Tim 2/4/2010 11:21:59 PM

Wow, I never dream of 24*4 for 15 minutes.

"Tim Williams" <timjwilliams@comcast.net> wrote in message 
news:Oa7DdCfpKHA.1548@TK2MSFTNGP02.phx.gbl...
>I tried this approach on a *small* file of data, and it *seemed* to work.
> You can see if you can work out the details and whether it works on your 
> full dataset.
> (or if you want to send a sample file I can try it myself out of 
> interest...)
>
> Right now it dumps the results to a worksheet but an ADO recordset also 
> has a "GetString()" method.
>
> http://www.w3schools.com/ado/met_rs_getstring.asp
>
> Tim
>
>
> '**************************************************
> Sub TestText()
>
>    Dim FileTitle As String, sConnectionString As String
>    Dim rs As ADODB.Recordset
>    Dim f, i As Integer, sSQL As String
>    Dim rngDest As Range
>
>    FileTitle = "trades.txt"
>
>    sSQL = " select [date], round([time]*24*4)/(24*4) as rndTime, " & _
>           " max([price]) as MaxPrice, " & _
>            " min([price]) as MinPrice, " & _
>            " sum([volume]) as totalVolume from [" & _
>            FileTitle & "] group by [date], round([time]*24*4)/(24*4) "
>
>    sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
>                        "Data Source=" & ThisWorkbook.Path & ";" & _
>                        "Extended Properties=Text"
>
>    Set rs = New ADODB.Recordset
>    rs.Open sSQL, sConnectionString
>
>    Set rngDest = Sheet1.Range("A1")
>
>    i = 0
>    For Each f In rs.Fields
>        rngDest.Offset(0, i).Value = f.Name
>        i = i + 1
>    Next f
>
>    rngDest.Offset(1, 0).CopyFromRecordset rs
>
>
> End Sub
> '*************************************************
>
>
> "Rolf" <rolfe@algonet.se> wrote in message 
> news:u17M1%23apKHA.5696@TK2MSFTNGP04.phx.gbl...
>> Thank you for your suggestion. I have asked but no. :(
>> "KC" <pynasocas@yahoo.com.sg> skrev i meddelandet 
>> news:un3FgCZpKHA.3748@TK2MSFTNGP02.phx.gbl...
>>> My suggestion on Feb 3 is explicit enough.
>>> Give it to your favorite service provider.
>>> I am sure he can code it up accordingly.
>>>
>>> "Rolf" <rolfe@algonet.se> wrote in message
>
> 


0
Reply KC 2/5/2010 12:16:51 AM

Better to replace that 24*4 wit the actual value I suppose....

Tim

"KC" <pynasocas@yahoo.com.sg> wrote in message 
news:%23blAvhfpKHA.4348@TK2MSFTNGP06.phx.gbl...
> Wow, I never dream of 24*4 for 15 minutes.
>
> "Tim Williams" <timjwilliams@comcast.net> wrote in message 
> news:Oa7DdCfpKHA.1548@TK2MSFTNGP02.phx.gbl...
>>I tried this approach on a *small* file of data, and it *seemed* to work.
>> You can see if you can work out the details and whether it works on your 
>> full dataset.
>> (or if you want to send a sample file I can try it myself out of 
>> interest...)
>>
>> Right now it dumps the results to a worksheet but an ADO recordset also 
>> has a "GetString()" method.
>>
>> http://www.w3schools.com/ado/met_rs_getstring.asp
>>
>> Tim
>>
>>
>> '**************************************************
>> Sub TestText()
>>
>>    Dim FileTitle As String, sConnectionString As String
>>    Dim rs As ADODB.Recordset
>>    Dim f, i As Integer, sSQL As String
>>    Dim rngDest As Range
>>
>>    FileTitle = "trades.txt"
>>
>>    sSQL = " select [date], round([time]*24*4)/(24*4) as rndTime, " & _
>>           " max([price]) as MaxPrice, " & _
>>            " min([price]) as MinPrice, " & _
>>            " sum([volume]) as totalVolume from [" & _
>>            FileTitle & "] group by [date], round([time]*24*4)/(24*4) "
>>
>>    sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
>>                        "Data Source=" & ThisWorkbook.Path & ";" & _
>>                        "Extended Properties=Text"
>>
>>    Set rs = New ADODB.Recordset
>>    rs.Open sSQL, sConnectionString
>>
>>    Set rngDest = Sheet1.Range("A1")
>>
>>    i = 0
>>    For Each f In rs.Fields
>>        rngDest.Offset(0, i).Value = f.Name
>>        i = i + 1
>>    Next f
>>
>>    rngDest.Offset(1, 0).CopyFromRecordset rs
>>
>>
>> End Sub
>> '*************************************************
>>
>>
>> "Rolf" <rolfe@algonet.se> wrote in message 
>> news:u17M1%23apKHA.5696@TK2MSFTNGP04.phx.gbl...
>>> Thank you for your suggestion. I have asked but no. :(
>>> "KC" <pynasocas@yahoo.com.sg> skrev i meddelandet 
>>> news:un3FgCZpKHA.3748@TK2MSFTNGP02.phx.gbl...
>>>> My suggestion on Feb 3 is explicit enough.
>>>> Give it to your favorite service provider.
>>>> I am sure he can code it up accordingly.
>>>>
>>>> "Rolf" <rolfe@algonet.se> wrote in message
>>
>>
>
> 


0
Reply Tim 2/5/2010 12:36:04 AM

I am curious to test the 24*4 theory.
10:05:00 x 24 x 4 gives 40.333
Rounding gives 40 but 41 is more correct in this situation.
I think my earlier suggestion to use "ceiling" is more appropriate.

"Tim Williams" <timjwilliams@comcast.net> wrote in message 
news:O0AxprfpKHA.4608@TK2MSFTNGP02.phx.gbl...
> Better to replace that 24*4 wit the actual value I suppose....
>
> Tim
>
> "KC" <pynasocas@yahoo.com.sg> wrote in message 
> news:%23blAvhfpKHA.4348@TK2MSFTNGP06.phx.gbl...
>> Wow, I never dream of 24*4 for 15 minutes.
>>
>> "Tim Williams" <timjwilliams@comcast.net> wrote in message 
>> news:Oa7DdCfpKHA.1548@TK2MSFTNGP02.phx.gbl...
>>>I tried this approach on a *small* file of data, and it *seemed* to work.
>>> You can see if you can work out the details and whether it works on your 
>>> full dataset.
>>> (or if you want to send a sample file I can try it myself out of 
>>> interest...)
>>>
>>> Right now it dumps the results to a worksheet but an ADO recordset also 
>>> has a "GetString()" method.
>>>
>>> http://www.w3schools.com/ado/met_rs_getstring.asp
>>>
>>> Tim
>>>
>>>
>>> '**************************************************
>>> Sub TestText()
>>>
>>>    Dim FileTitle As String, sConnectionString As String
>>>    Dim rs As ADODB.Recordset
>>>    Dim f, i As Integer, sSQL As String
>>>    Dim rngDest As Range
>>>
>>>    FileTitle = "trades.txt"
>>>
>>>    sSQL = " select [date], round([time]*24*4)/(24*4) as rndTime, " & _
>>>           " max([price]) as MaxPrice, " & _
>>>            " min([price]) as MinPrice, " & _
>>>            " sum([volume]) as totalVolume from [" & _
>>>            FileTitle & "] group by [date], round([time]*24*4)/(24*4) "
>>>
>>>    sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
>>>                        "Data Source=" & ThisWorkbook.Path & ";" & _
>>>                        "Extended Properties=Text"
>>>
>>>    Set rs = New ADODB.Recordset
>>>    rs.Open sSQL, sConnectionString
>>>
>>>    Set rngDest = Sheet1.Range("A1")
>>>
>>>    i = 0
>>>    For Each f In rs.Fields
>>>        rngDest.Offset(0, i).Value = f.Name
>>>        i = i + 1
>>>    Next f
>>>
>>>    rngDest.Offset(1, 0).CopyFromRecordset rs
>>>
>>>
>>> End Sub
>>> '*************************************************
>>>
>>>
>>> "Rolf" <rolfe@algonet.se> wrote in message 
>>> news:u17M1%23apKHA.5696@TK2MSFTNGP04.phx.gbl...
>>>> Thank you for your suggestion. I have asked but no. :(
>>>> "KC" <pynasocas@yahoo.com.sg> skrev i meddelandet 
>>>> news:un3FgCZpKHA.3748@TK2MSFTNGP02.phx.gbl...
>>>>> My suggestion on Feb 3 is explicit enough.
>>>>> Give it to your favorite service provider.
>>>>> I am sure he can code it up accordingly.
>>>>>
>>>>> "Rolf" <rolfe@algonet.se> wrote in message
>>>
>>>
>>
>>
>
> 


0
Reply KC 2/5/2010 2:49:18 AM

Thank you for your suggestion!! I will mail you a bigger "trades.txt". 
Regards Rolf
"Tim Williams" <timjwilliams@comcast.net> skrev i meddelandet 
news:O0AxprfpKHA.4608@TK2MSFTNGP02.phx.gbl...
> Better to replace that 24*4 wit the actual value I suppose....
>
> Tim
>
> "KC" <pynasocas@yahoo.com.sg> wrote in message 
> news:%23blAvhfpKHA.4348@TK2MSFTNGP06.phx.gbl...
>> Wow, I never dream of 24*4 for 15 minutes.
>>
>> "Tim Williams" <timjwilliams@comcast.net> wrote in message 
>> news:Oa7DdCfpKHA.1548@TK2MSFTNGP02.phx.gbl...
>>>I tried this approach on a *small* file of data, and it *seemed* to work.
>>> You can see if you can work out the details and whether it works on your 
>>> full dataset.
>>> (or if you want to send a sample file I can try it myself out of 
>>> interest...)
>>>
>>> Right now it dumps the results to a worksheet but an ADO recordset also 
>>> has a "GetString()" method.
>>>
>>> http://www.w3schools.com/ado/met_rs_getstring.asp
>>>
>>> Tim
>>>
>>>
>>> '**************************************************
>>> Sub TestText()
>>>
>>>    Dim FileTitle As String, sConnectionString As String
>>>    Dim rs As ADODB.Recordset
>>>    Dim f, i As Integer, sSQL As String
>>>    Dim rngDest As Range
>>>
>>>    FileTitle = "trades.txt"
>>>
>>>    sSQL = " select [date], round([time]*24*4)/(24*4) as rndTime, " & _
>>>           " max([price]) as MaxPrice, " & _
>>>            " min([price]) as MinPrice, " & _
>>>            " sum([volume]) as totalVolume from [" & _
>>>            FileTitle & "] group by [date], round([time]*24*4)/(24*4) "
>>>
>>>    sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
>>>                        "Data Source=" & ThisWorkbook.Path & ";" & _
>>>                        "Extended Properties=Text"
>>>
>>>    Set rs = New ADODB.Recordset
>>>    rs.Open sSQL, sConnectionString
>>>
>>>    Set rngDest = Sheet1.Range("A1")
>>>
>>>    i = 0
>>>    For Each f In rs.Fields
>>>        rngDest.Offset(0, i).Value = f.Name
>>>        i = i + 1
>>>    Next f
>>>
>>>    rngDest.Offset(1, 0).CopyFromRecordset rs
>>>
>>>
>>> End Sub
>>> '*************************************************
>>>
>>>
>>> "Rolf" <rolfe@algonet.se> wrote in message 
>>> news:u17M1%23apKHA.5696@TK2MSFTNGP04.phx.gbl...
>>>> Thank you for your suggestion. I have asked but no. :(
>>>> "KC" <pynasocas@yahoo.com.sg> skrev i meddelandet 
>>>> news:un3FgCZpKHA.3748@TK2MSFTNGP02.phx.gbl...
>>>>> My suggestion on Feb 3 is explicit enough.
>>>>> Give it to your favorite service provider.
>>>>> I am sure he can code it up accordingly.
>>>>>
>>>>> "Rolf" <rolfe@algonet.se> wrote in message
>>>
>>>
>>
>>
>
> 

0
Reply Rolf 2/5/2010 3:41:55 AM

If you do, make sure to zip it up first.  And send to

tjwilliams   gmail

Tim

"Rolf" <rolfe@algonet.se> wrote in message 
news:efpyuWhpKHA.4836@TK2MSFTNGP02.phx.gbl...
> Thank you for your suggestion!! I will mail you a bigger "trades.txt". 
> Regards Rolf
> "Tim Williams" <timjwilliams@comcast.net> skrev i meddelandet 
> news:O0AxprfpKHA.4608@TK2MSFTNGP02.phx.gbl...
>> Better to replace that 24*4 wit the actual value I suppose....
>>
>> Tim
>>
>> "KC" <pynasocas@yahoo.com.sg> wrote in message 
>> news:%23blAvhfpKHA.4348@TK2MSFTNGP06.phx.gbl...
>>> Wow, I never dream of 24*4 for 15 minutes.
>>>
>>> "Tim Williams" <timjwilliams@comcast.net> wrote in message 
>>> news:Oa7DdCfpKHA.1548@TK2MSFTNGP02.phx.gbl...
>>>>I tried this approach on a *small* file of data, and it *seemed* to 
>>>>work.
>>>> You can see if you can work out the details and whether it works on 
>>>> your full dataset.
>>>> (or if you want to send a sample file I can try it myself out of 
>>>> interest...)
>>>>
>>>> Right now it dumps the results to a worksheet but an ADO recordset also 
>>>> has a "GetString()" method.
>>>>
>>>> http://www.w3schools.com/ado/met_rs_getstring.asp
>>>>
>>>> Tim
>>>>
>>>>
>>>> '**************************************************
>>>> Sub TestText()
>>>>
>>>>    Dim FileTitle As String, sConnectionString As String
>>>>    Dim rs As ADODB.Recordset
>>>>    Dim f, i As Integer, sSQL As String
>>>>    Dim rngDest As Range
>>>>
>>>>    FileTitle = "trades.txt"
>>>>
>>>>    sSQL = " select [date], round([time]*24*4)/(24*4) as rndTime, " & _
>>>>           " max([price]) as MaxPrice, " & _
>>>>            " min([price]) as MinPrice, " & _
>>>>            " sum([volume]) as totalVolume from [" & _
>>>>            FileTitle & "] group by [date], round([time]*24*4)/(24*4) "
>>>>
>>>>    sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
>>>>                        "Data Source=" & ThisWorkbook.Path & ";" & _
>>>>                        "Extended Properties=Text"
>>>>
>>>>    Set rs = New ADODB.Recordset
>>>>    rs.Open sSQL, sConnectionString
>>>>
>>>>    Set rngDest = Sheet1.Range("A1")
>>>>
>>>>    i = 0
>>>>    For Each f In rs.Fields
>>>>        rngDest.Offset(0, i).Value = f.Name
>>>>        i = i + 1
>>>>    Next f
>>>>
>>>>    rngDest.Offset(1, 0).CopyFromRecordset rs
>>>>
>>>>
>>>> End Sub
>>>> '*************************************************
>>>>
>>>>
>>>> "Rolf" <rolfe@algonet.se> wrote in message 
>>>> news:u17M1%23apKHA.5696@TK2MSFTNGP04.phx.gbl...
>>>>> Thank you for your suggestion. I have asked but no. :(
>>>>> "KC" <pynasocas@yahoo.com.sg> skrev i meddelandet 
>>>>> news:un3FgCZpKHA.3748@TK2MSFTNGP02.phx.gbl...
>>>>>> My suggestion on Feb 3 is explicit enough.
>>>>>> Give it to your favorite service provider.
>>>>>> I am sure he can code it up accordingly.
>>>>>>
>>>>>> "Rolf" <rolfe@algonet.se> wrote in message
>>>>
>>>>
>>>
>>>
>>
>>
> 


0
Reply Tim 2/5/2010 4:41:09 AM

Kc,

Here's how it looks for me for a small time series.
Seems just to round to the nearest 15min as expected.

     Time          Binned
      2:01:00 2:00:00 AM
      2:02:00 2:00:00 AM
      2:03:00 2:00:00 AM
      2:04:00 2:00:00 AM
      2:05:00 2:00:00 AM
      2:06:00 2:00:00 AM
      2:07:00 2:00:00 AM
      2:08:00 2:15:00 AM
      2:09:00 2:15:00 AM
      2:10:00 2:15:00 AM
      2:11:00 2:15:00 AM
      2:12:00 2:15:00 AM
      2:13:00 2:15:00 AM
      2:14:00 2:15:00 AM
      2:15:00 2:15:00 AM
      2:16:00 2:15:00 AM
      2:17:00 2:15:00 AM
      2:18:00 2:15:00 AM
      2:19:00 2:15:00 AM
      2:20:00 2:15:00 AM
      2:21:00 2:15:00 AM
      2:22:00 2:15:00 AM
      2:23:00 2:30:00 AM
      2:24:00 2:30:00 AM
      2:25:00 2:30:00 AM
      2:26:00 2:30:00 AM
      2:27:00 2:30:00 AM
      2:28:00 2:30:00 AM
      2:29:00 2:30:00 AM
      2:30:00 2:30:00 AM
      2:31:00 2:30:00 AM


Tim

"KC" <pynasocas@yahoo.com.sg> wrote in message 
news:Oh83D2gpKHA.1544@TK2MSFTNGP06.phx.gbl...
>I am curious to test the 24*4 theory.
> 10:05:00 x 24 x 4 gives 40.333
> Rounding gives 40 but 41 is more correct in this situation.
> I think my earlier suggestion to use "ceiling" is more appropriate.
>
> "Tim Williams" <timjwilliams@comcast.net> wrote in message 
> news:O0AxprfpKHA.4608@TK2MSFTNGP02.phx.gbl...
>> Better to replace that 24*4 wit the actual value I suppose....
>>
>> Tim
>>
>> "KC" <pynasocas@yahoo.com.sg> wrote in message 
>> news:%23blAvhfpKHA.4348@TK2MSFTNGP06.phx.gbl...
>>> Wow, I never dream of 24*4 for 15 minutes.
>>>
>>> "Tim Williams" <timjwilliams@comcast.net> wrote in message 
>>> news:Oa7DdCfpKHA.1548@TK2MSFTNGP02.phx.gbl...
>>>>I tried this approach on a *small* file of data, and it *seemed* to 
>>>>work.
>>>> You can see if you can work out the details and whether it works on 
>>>> your full dataset.
>>>> (or if you want to send a sample file I can try it myself out of 
>>>> interest...)
>>>>
>>>> Right now it dumps the results to a worksheet but an ADO recordset also 
>>>> has a "GetString()" method.
>>>>
>>>> http://www.w3schools.com/ado/met_rs_getstring.asp
>>>>
>>>> Tim
>>>>
>>>>
>>>> '**************************************************
>>>> Sub TestText()
>>>>
>>>>    Dim FileTitle As String, sConnectionString As String
>>>>    Dim rs As ADODB.Recordset
>>>>    Dim f, i As Integer, sSQL As String
>>>>    Dim rngDest As Range
>>>>
>>>>    FileTitle = "trades.txt"
>>>>
>>>>    sSQL = " select [date], round([time]*24*4)/(24*4) as rndTime, " & _
>>>>           " max([price]) as MaxPrice, " & _
>>>>            " min([price]) as MinPrice, " & _
>>>>            " sum([volume]) as totalVolume from [" & _
>>>>            FileTitle & "] group by [date], round([time]*24*4)/(24*4) "
>>>>
>>>>    sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
>>>>                        "Data Source=" & ThisWorkbook.Path & ";" & _
>>>>                        "Extended Properties=Text"
>>>>
>>>>    Set rs = New ADODB.Recordset
>>>>    rs.Open sSQL, sConnectionString
>>>>
>>>>    Set rngDest = Sheet1.Range("A1")
>>>>
>>>>    i = 0
>>>>    For Each f In rs.Fields
>>>>        rngDest.Offset(0, i).Value = f.Name
>>>>        i = i + 1
>>>>    Next f
>>>>
>>>>    rngDest.Offset(1, 0).CopyFromRecordset rs
>>>>
>>>>
>>>> End Sub
>>>> '*************************************************
>>>>
>>>>
>>>> "Rolf" <rolfe@algonet.se> wrote in message 
>>>> news:u17M1%23apKHA.5696@TK2MSFTNGP04.phx.gbl...
>>>>> Thank you for your suggestion. I have asked but no. :(
>>>>> "KC" <pynasocas@yahoo.com.sg> skrev i meddelandet 
>>>>> news:un3FgCZpKHA.3748@TK2MSFTNGP02.phx.gbl...
>>>>>> My suggestion on Feb 3 is explicit enough.
>>>>>> Give it to your favorite service provider.
>>>>>> I am sure he can code it up accordingly.
>>>>>>
>>>>>> "Rolf" <rolfe@algonet.se> wrote in message
>>>>
>>>>
>>>
>>>
>>
>>
>
> 


0
Reply Tim 2/5/2010 4:52:20 AM

I trust the first 7 minutes should be in the first 15 minute block. Rolf 
will confirm to you.

"Tim Williams" <timjwilliams@comcast.net> wrote in message 
news:%231n9a7hpKHA.3748@TK2MSFTNGP02.phx.gbl...
> Kc,
>
> Here's how it looks for me for a small time series.
> Seems just to round to the nearest 15min as expected.
>
>     Time          Binned
>      2:01:00 2:00:00 AM
>      2:02:00 2:00:00 AM
>      2:03:00 2:00:00 AM
>      2:04:00 2:00:00 AM
>      2:05:00 2:00:00 AM
>      2:06:00 2:00:00 AM
>      2:07:00 2:00:00 AM
>      2:08:00 2:15:00 AM
>      2:09:00 2:15:00 AM
>      2:10:00 2:15:00 AM
>      2:11:00 2:15:00 AM
>      2:12:00 2:15:00 AM
>      2:13:00 2:15:00 AM
>      2:14:00 2:15:00 AM
>      2:15:00 2:15:00 AM
>      2:16:00 2:15:00 AM
>      2:17:00 2:15:00 AM
>      2:18:00 2:15:00 AM
>      2:19:00 2:15:00 AM
>      2:20:00 2:15:00 AM
>      2:21:00 2:15:00 AM
>      2:22:00 2:15:00 AM
>      2:23:00 2:30:00 AM
>      2:24:00 2:30:00 AM
>      2:25:00 2:30:00 AM
>      2:26:00 2:30:00 AM
>      2:27:00 2:30:00 AM
>      2:28:00 2:30:00 AM
>      2:29:00 2:30:00 AM
>      2:30:00 2:30:00 AM
>      2:31:00 2:30:00 AM
>
>
> Tim
>
> "KC" <pynasocas@yahoo.com.sg> wrote in message 
> news:Oh83D2gpKHA.1544@TK2MSFTNGP06.phx.gbl...
>>I am curious to test the 24*4 theory.
>> 10:05:00 x 24 x 4 gives 40.333
>> Rounding gives 40 but 41 is more correct in this situation.
>> I think my earlier suggestion to use "ceiling" is more appropriate.
>>
>> "Tim Williams" <timjwilliams@comcast.net> wrote in message 
>> news:O0AxprfpKHA.4608@TK2MSFTNGP02.phx.gbl...
>>> Better to replace that 24*4 wit the actual value I suppose....
>>>
>>> Tim
>>>
>>> "KC" <pynasocas@yahoo.com.sg> wrote in message 
>>> news:%23blAvhfpKHA.4348@TK2MSFTNGP06.phx.gbl...
>>>> Wow, I never dream of 24*4 for 15 minutes.
>>>>
>>>> "Tim Williams" <timjwilliams@comcast.net> wrote in message 
>>>> news:Oa7DdCfpKHA.1548@TK2MSFTNGP02.phx.gbl...
>>>>>I tried this approach on a *small* file of data, and it *seemed* to 
>>>>>work.
>>>>> You can see if you can work out the details and whether it works on 
>>>>> your full dataset.
>>>>> (or if you want to send a sample file I can try it myself out of 
>>>>> interest...)
>>>>>
>>>>> Right now it dumps the results to a worksheet but an ADO recordset 
>>>>> also has a "GetString()" method.
>>>>>
>>>>> http://www.w3schools.com/ado/met_rs_getstring.asp
>>>>>
>>>>> Tim
>>>>>
>>>>>
>>>>> '**************************************************
>>>>> Sub TestText()
>>>>>
>>>>>    Dim FileTitle As String, sConnectionString As String
>>>>>    Dim rs As ADODB.Recordset
>>>>>    Dim f, i As Integer, sSQL As String
>>>>>    Dim rngDest As Range
>>>>>
>>>>>    FileTitle = "trades.txt"
>>>>>
>>>>>    sSQL = " select [date], round([time]*24*4)/(24*4) as rndTime, " & _
>>>>>           " max([price]) as MaxPrice, " & _
>>>>>            " min([price]) as MinPrice, " & _
>>>>>            " sum([volume]) as totalVolume from [" & _
>>>>>            FileTitle & "] group by [date], round([time]*24*4)/(24*4) "
>>>>>
>>>>>    sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
>>>>>                        "Data Source=" & ThisWorkbook.Path & ";" & _
>>>>>                        "Extended Properties=Text"
>>>>>
>>>>>    Set rs = New ADODB.Recordset
>>>>>    rs.Open sSQL, sConnectionString
>>>>>
>>>>>    Set rngDest = Sheet1.Range("A1")
>>>>>
>>>>>    i = 0
>>>>>    For Each f In rs.Fields
>>>>>        rngDest.Offset(0, i).Value = f.Name
>>>>>        i = i + 1
>>>>>    Next f
>>>>>
>>>>>    rngDest.Offset(1, 0).CopyFromRecordset rs
>>>>>
>>>>>
>>>>> End Sub
>>>>> '*************************************************
>>>>>
>>>>>
>>>>> "Rolf" <rolfe@algonet.se> wrote in message 
>>>>> news:u17M1%23apKHA.5696@TK2MSFTNGP04.phx.gbl...
>>>>>> Thank you for your suggestion. I have asked but no. :(
>>>>>> "KC" <pynasocas@yahoo.com.sg> skrev i meddelandet 
>>>>>> news:un3FgCZpKHA.3748@TK2MSFTNGP02.phx.gbl...
>>>>>>> My suggestion on Feb 3 is explicit enough.
>>>>>>> Give it to your favorite service provider.
>>>>>>> I am sure he can code it up accordingly.
>>>>>>>
>>>>>>> "Rolf" <rolfe@algonet.se> wrote in message
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
> 


0
Reply KC 2/5/2010 6:08:35 AM

I would prefer 2:01 until 2:15 goes to 2:15...
Does it work better if you compress it into 1 minute- chunks? Rolf

"KC" <pynasocas@yahoo.com.sg> skrev i meddelandet 
news:eJ9UDlipKHA.4836@TK2MSFTNGP02.phx.gbl...
>I trust the first 7 minutes should be in the first 15 minute block. Rolf 
>will confirm to you.
>
> "Tim Williams" <timjwilliams@comcast.net> wrote in message 
> news:%231n9a7hpKHA.3748@TK2MSFTNGP02.phx.gbl...
>> Kc,
>>
>> Here's how it looks for me for a small time series.
>> Seems just to round to the nearest 15min as expected.
>>
>>     Time          Binned
>>      2:01:00 2:00:00 AM
>>      2:02:00 2:00:00 AM
>>      2:03:00 2:00:00 AM
>>      2:04:00 2:00:00 AM
>>      2:05:00 2:00:00 AM
>>      2:06:00 2:00:00 AM
>>      2:07:00 2:00:00 AM
>>      2:08:00 2:15:00 AM
>>      2:09:00 2:15:00 AM
>>      2:10:00 2:15:00 AM
>>      2:11:00 2:15:00 AM
>>      2:12:00 2:15:00 AM
>>      2:13:00 2:15:00 AM
>>      2:14:00 2:15:00 AM
>>      2:15:00 2:15:00 AM
>>      2:16:00 2:15:00 AM
>>      2:17:00 2:15:00 AM
>>      2:18:00 2:15:00 AM
>>      2:19:00 2:15:00 AM
>>      2:20:00 2:15:00 AM
>>      2:21:00 2:15:00 AM
>>      2:22:00 2:15:00 AM
>>      2:23:00 2:30:00 AM
>>      2:24:00 2:30:00 AM
>>      2:25:00 2:30:00 AM
>>      2:26:00 2:30:00 AM
>>      2:27:00 2:30:00 AM
>>      2:28:00 2:30:00 AM
>>      2:29:00 2:30:00 AM
>>      2:30:00 2:30:00 AM
>>      2:31:00 2:30:00 AM
>>
>>
>> Tim
>>
>> "KC" <pynasocas@yahoo.com.sg> wrote in message 
>> news:Oh83D2gpKHA.1544@TK2MSFTNGP06.phx.gbl...
>>>I am curious to test the 24*4 theory.
>>> 10:05:00 x 24 x 4 gives 40.333
>>> Rounding gives 40 but 41 is more correct in this situation.
>>> I think my earlier suggestion to use "ceiling" is more appropriate.
>>>
>>> "Tim Williams" <timjwilliams@comcast.net> wrote in message 
>>> news:O0AxprfpKHA.4608@TK2MSFTNGP02.phx.gbl...
>>>> Better to replace that 24*4 wit the actual value I suppose....
>>>>
>>>> Tim
>>>>
>>>> "KC" <pynasocas@yahoo.com.sg> wrote in message 
>>>> news:%23blAvhfpKHA.4348@TK2MSFTNGP06.phx.gbl...
>>>>> Wow, I never dream of 24*4 for 15 minutes.
>>>>>
>>>>> "Tim Williams" <timjwilliams@comcast.net> wrote in message 
>>>>> news:Oa7DdCfpKHA.1548@TK2MSFTNGP02.phx.gbl...
>>>>>>I tried this approach on a *small* file of data, and it *seemed* to 
>>>>>>work.
>>>>>> You can see if you can work out the details and whether it works on 
>>>>>> your full dataset.
>>>>>> (or if you want to send a sample file I can try it myself out of 
>>>>>> interest...)
>>>>>>
>>>>>> Right now it dumps the results to a worksheet but an ADO recordset 
>>>>>> also has a "GetString()" method.
>>>>>>
>>>>>> http://www.w3schools.com/ado/met_rs_getstring.asp
>>>>>>
>>>>>> Tim
>>>>>>
>>>>>>
>>>>>> '**************************************************
>>>>>> Sub TestText()
>>>>>>
>>>>>>    Dim FileTitle As String, sConnectionString As String
>>>>>>    Dim rs As ADODB.Recordset
>>>>>>    Dim f, i As Integer, sSQL As String
>>>>>>    Dim rngDest As Range
>>>>>>
>>>>>>    FileTitle = "trades.txt"
>>>>>>
>>>>>>    sSQL = " select [date], round([time]*24*4)/(24*4) as rndTime, " & 
>>>>>> _
>>>>>>           " max([price]) as MaxPrice, " & _
>>>>>>            " min([price]) as MinPrice, " & _
>>>>>>            " sum([volume]) as totalVolume from [" & _
>>>>>>            FileTitle & "] group by [date], round([time]*24*4)/(24*4) 
>>>>>> "
>>>>>>
>>>>>>    sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
>>>>>>                        "Data Source=" & ThisWorkbook.Path & ";" & _
>>>>>>                        "Extended Properties=Text"
>>>>>>
>>>>>>    Set rs = New ADODB.Recordset
>>>>>>    rs.Open sSQL, sConnectionString
>>>>>>
>>>>>>    Set rngDest = Sheet1.Range("A1")
>>>>>>
>>>>>>    i = 0
>>>>>>    For Each f In rs.Fields
>>>>>>        rngDest.Offset(0, i).Value = f.Name
>>>>>>        i = i + 1
>>>>>>    Next f
>>>>>>
>>>>>>    rngDest.Offset(1, 0).CopyFromRecordset rs
>>>>>>
>>>>>>
>>>>>> End Sub
>>>>>> '*************************************************
>>>>>>
>>>>>>
>>>>>> "Rolf" <rolfe@algonet.se> wrote in message 
>>>>>> news:u17M1%23apKHA.5696@TK2MSFTNGP04.phx.gbl...
>>>>>>> Thank you for your suggestion. I have asked but no. :(
>>>>>>> "KC" <pynasocas@yahoo.com.sg> skrev i meddelandet 
>>>>>>> news:un3FgCZpKHA.3748@TK2MSFTNGP02.phx.gbl...
>>>>>>>> My suggestion on Feb 3 is explicit enough.
>>>>>>>> Give it to your favorite service provider.
>>>>>>>> I am sure he can code it up accordingly.
>>>>>>>>
>>>>>>>> "Rolf" <rolfe@algonet.se> wrote in message
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
> 

0
Reply Rolf 2/5/2010 9:22:45 AM

Hi Tim

Which ADO reference are you using please?
I cannot get the sub to work.

I am using this sql
SELECT Trades.datetraded, Trades.timetext, Left([timetext],2) AS [hour], 
Mid([timetext],4,2) AS [minute], Mid([timetext],7,2) AS sec, 
IIf([sec]>0,[minute]+1,[minute]) AS BigMin
FROM Trades;

Is there a function in sql for "ceiling" as equivalent in Excel please?

"Tim Williams" <timjwilliams@comcast.net> wrote in message 
news:Oa7DdCfpKHA.1548@TK2MSFTNGP02.phx.gbl...
>I tried this approach on a *small* file of data, and it *seemed* to work.
> You can see if you can work out the details and whether it works on your 
> full dataset.
> (or if you want to send a sample file I can try it myself out of 
> interest...)
>
> Right now it dumps the results to a worksheet but an ADO recordset also 
> has a "GetString()" method.
>
> http://www.w3schools.com/ado/met_rs_getstring.asp
>
> Tim
>
>
> '**************************************************
> Sub TestText()
>
>    Dim FileTitle As String, sConnectionString As String
>    Dim rs As ADODB.Recordset
>    Dim f, i As Integer, sSQL As String
>    Dim rngDest As Range
>
>    FileTitle = "trades.txt"
>
>    sSQL = " select [date], round([time]*24*4)/(24*4) as rndTime, " & _
>           " max([price]) as MaxPrice, " & _
>            " min([price]) as MinPrice, " & _
>            " sum([volume]) as totalVolume from [" & _
>            FileTitle & "] group by [date], round([time]*24*4)/(24*4) "
>
>    sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
>                        "Data Source=" & ThisWorkbook.Path & ";" & _
>                        "Extended Properties=Text"
>
>    Set rs = New ADODB.Recordset
>    rs.Open sSQL, sConnectionString
>
>    Set rngDest = Sheet1.Range("A1")
>
>    i = 0
>    For Each f In rs.Fields
>        rngDest.Offset(0, i).Value = f.Name
>        i = i + 1
>    Next f
>
>    rngDest.Offset(1, 0).CopyFromRecordset rs
>
>
> End Sub
> '*************************************************
>
>
> "Rolf" <rolfe@algonet.se> wrote in message 
> news:u17M1%23apKHA.5696@TK2MSFTNGP04.phx.gbl...
>> Thank you for your suggestion. I have asked but no. :(
>> "KC" <pynasocas@yahoo.com.sg> skrev i meddelandet 
>> news:un3FgCZpKHA.3748@TK2MSFTNGP02.phx.gbl...
>>> My suggestion on Feb 3 is explicit enough.
>>> Give it to your favorite service provider.
>>> I am sure he can code it up accordingly.
>>>
>>> "Rolf" <rolfe@algonet.se> wrote in message
>
> 


0
Reply KC 2/6/2010 12:49:35 AM

OK, per John Spencer advice

SELECT Trades.timetext AS T, Mid([t],4,2) AS M, Mid([t],7,2) AS S, 
IIf([s]>0,[m]+1,[m]) AS BM, -Int(-[bm]/15)*15 AS B
FROM Trades;

"KC" <pynasocas@yahoo.com.sg> wrote in message 
news:%234iG%23XspKHA.5308@TK2MSFTNGP05.phx.gbl...
> Hi Tim
>
> Which ADO reference are you using please?
> I cannot get the sub to work.
>
> I am using this sql
> SELECT Trades.datetraded, Trades.timetext, Left([timetext],2) AS [hour], 
> Mid([timetext],4,2) AS [minute], Mid([timetext],7,2) AS sec, 
> IIf([sec]>0,[minute]+1,[minute]) AS BigMin
> FROM Trades;
>
> Is there a function in sql for "ceiling" as equivalent in Excel please?
>
> "Tim Williams" <timjwilliams@comcast.net> wrote in message 
> news:Oa7DdCfpKHA.1548@TK2MSFTNGP02.phx.gbl...
>>I tried this approach on a *small* file of data, and it *seemed* to work.
>> You can see if you can work out the details and whether it works on your 
>> full dataset.
>> (or if you want to send a sample file I can try it myself out of 
>> interest...)
>>
>> Right now it dumps the results to a worksheet but an ADO recordset also 
>> has a "GetString()" method.
>>
>> http://www.w3schools.com/ado/met_rs_getstring.asp
>>
>> Tim
>>
>>
>> '**************************************************
>> Sub TestText()
>>
>>    Dim FileTitle As String, sConnectionString As String
>>    Dim rs As ADODB.Recordset
>>    Dim f, i As Integer, sSQL As String
>>    Dim rngDest As Range
>>
>>    FileTitle = "trades.txt"
>>
>>    sSQL = " select [date], round([time]*24*4)/(24*4) as rndTime, " & _
>>           " max([price]) as MaxPrice, " & _
>>            " min([price]) as MinPrice, " & _
>>            " sum([volume]) as totalVolume from [" & _
>>            FileTitle & "] group by [date], round([time]*24*4)/(24*4) "
>>
>>    sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
>>                        "Data Source=" & ThisWorkbook.Path & ";" & _
>>                        "Extended Properties=Text"
>>
>>    Set rs = New ADODB.Recordset
>>    rs.Open sSQL, sConnectionString
>>
>>    Set rngDest = Sheet1.Range("A1")
>>
>>    i = 0
>>    For Each f In rs.Fields
>>        rngDest.Offset(0, i).Value = f.Name
>>        i = i + 1
>>    Next f
>>
>>    rngDest.Offset(1, 0).CopyFromRecordset rs
>>
>>
>> End Sub
>> '*************************************************
>>
>>
>> "Rolf" <rolfe@algonet.se> wrote in message 
>> news:u17M1%23apKHA.5696@TK2MSFTNGP04.phx.gbl...
>>> Thank you for your suggestion. I have asked but no. :(
>>> "KC" <pynasocas@yahoo.com.sg> skrev i meddelandet 
>>> news:un3FgCZpKHA.3748@TK2MSFTNGP02.phx.gbl...
>>>> My suggestion on Feb 3 is explicit enough.
>>>> Give it to your favorite service provider.
>>>> I am sure he can code it up accordingly.
>>>>
>>>> "Rolf" <rolfe@algonet.se> wrote in message
>>
>>
>
> 


0
Reply KC 2/6/2010 1:04:49 AM

20 Replies
309 Views

(page loaded in 0.463 seconds)


Reply: