PureBytes Links
Trading Reference Links
|
Wow, if I could only get this kind of help on the other dozen or so
programming constructions I am having trouble with. LOL.
Actually, this particular example, for me, appears rather simple, once I
have seen the approach/concept. But until that, my experience and learning
level did not "allow" me to see how to do this. Examples of the appropriate
degree of complexity and practicality, makes learning easier, IMO.
Great stuff.
-----Original Message-----
From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf
Of Dennis Brown
Sent: Saturday, September 20, 2008 10:44 AM
To: amibroker@xxxxxxxxxxxxxxx
Subject: Re: [amibroker] Re: String Manipulations
Ken, Tuzo, Mike,
I love a good interactive game of one-upmanship in programming simplicity
and efficiency. It lets all learn different ways of looking at a simple
problem that everyone benefits from. While a few cycles or statements here
and there make no practical difference to the application, they do make a
lasting difference in how we conceptualize the solutions for the future. In
that spirit I will offer one more way inspired by Tuzo's last post:
comma = "";
for( i=1; i < totalSymbolCount; i++ )
{
list = StaticVarGetText( "H" + NumToStr(i, 1.0, 0));
SymList += comma + StrExtract( list , 0);
ShrList += comma + StrExtract( list, 1);
DatList += comma + StrExtract( list, 2);
comma = ",";
}
On Sep 20, 2008, at 9:49 AM, Ken Close wrote:
> Thanks, Tuzo. While I don't need cycles in my application, your
> idea is
> good for saving some time when it really counts.
>
> Ken
>
> -----Original Message-----
> From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx]
> On Behalf
> Of tuzo_wilson
> Sent: Saturday, September 20, 2008 12:44 AM
> To: amibroker@xxxxxxxxxxxxxxx
> Subject: [amibroker] Re: String Manipulations
>
>
> You could also take the comma calculations outside of the loop which
> could
> save some cycles. i.e. just append an extra comma to the end of the
> list
> and strip it off after the loop is done:
>
> COMMA = ",";
> for( i=1; i < totalSymbolCount; i++ )
> {
> list = StaticVarGetText( "H" + NumToStr(i, 1.0, 0));
>
> SymList += StrExtract( list, 0 ) + COMMA;
> ShrList += StrExtract( list, 1 ) + COMMA;
> DatList += StrExtract( list, 2 ) + COMMA; }
>
> //
> // remove trailing commas
> //
> SymList = StrLeft( SymList, StrLen( SymList ) - 1 ); ShrList =
> StrLeft(
> ShrList, StrLen( ShrList ) - 1 ); DatList = StrLeft( DatList, StrLen(
> DatList ) - 1 );
>
>
> Tuzo
>
>
> --- In amibroker@xxxxxxxxxxxxxxx, Dennis Brown <see3d@xxx> wrote:
>>
>> Thanks Mike for pointing out that += works with strings also.
>> Oh, yea, the comma at the beginning.
>> I would get around that by doing the following:
>>
>> for( i=1; i < totalSymbolCount; i++ )
>> {
>> list = StaticVarGetText( "H" + NumToStr(i, 1.0, 0));
>> if(i==1){comma = "";} else{comma = ",";}
>> SymList += comma + StrExtract( list , 0);
>> ShrList += comma + StrExtract( list, 1);
>> DatList += comma + StrExtract( list, 2);
>> }
>>
>> Ken, you now have the best ideas of three people.
>>
>> BR,
>> Dennis
>>
>>
>> On Sep 19, 2008, at 7:05 PM, Ken Close wrote:
>>
>>> Dennis: Yep. Worked. Added an if to get around "," at beginning
>>> of assembled lists, and it works fine.
>>>
>>> Many thanks,
>>> Ken
>>>
>>> -----Original Message-----
>>> From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx]
>>> On Behalf
>>> Of Dennis Brown
>>> Sent: Friday, September 19, 2008 5:29 PM
>>> To: amibroker@xxxxxxxxxxxxxxx
>>> Subject: Re: [amibroker] String Manipulations
>>>
>>> Hi Ken,
>>>
>>> The problem is that you defined H1 as a regular variable and the
>>> code is looking for a static variable named H1. Therefore, the
>>> static variables are empty. For your test here, just use
>>> VarGetText(...
>>> Or make your variables into static variables:
>>> StaticVarSetText("H1", "SPY,500,06/04/2008"); etc.
>>>
>>> BR,
>>> Dennis
>>>
>>> On Sep 19, 2008, at 4:51 PM, Ken Close wrote:
>>>
>>>> Dennis:
>>>>
>>>> I feel I have a lot to learn from dynamic variables here (asked
>>>> once before), but right now I can not make this concept work.
>>>> Code below is my modifcation of your concept and it does not crash
>>>> but only prints the commas between the strings.
>>>> List becomes H1 on the first pass through the loop, then, SymList
>>>> is SymList (empty on first pass) + the first (0) item in H1, or the
>>>> first symbol. At a minimum, the Symlist will eventually be
>>>> ",SPY,etc) as there is no logic to skip the first comma---unless I
>>>> am reading it wrong. Same issue on each of the other ShrList and
>>>> DatList.
>>>> So, not sure what I am missing, nor have I been successful in
>>>> adding anything to correct the problem.
>>>> Any suggestions?
>>>> Many thanks for responding.
>>>> Ken
>>>> ==============================
>>>> My code using your concept"
>>>> H1 = "SPY,500,06/04/2008";
>>>> H2 = "DIA,100,09/02/2008";
>>>> H3 = "QQQQ,300,08/04/2008";
>>>> H4 = "BEARX,1204,05/21/2007";
>>>> TotalSymbolCount = 4;
>>>> SymList = "";
>>>> ShrList = "";
>>>> DatList = "";
>>>> for( i=1; i < totalSymbolCount; i++ )
>>>> {
>>>> list = StaticVarGetText( "H" + NumToStr(i, 1.0, 0));
>>>> SymList = SymList + "," + StrExtract( list , 0);
>>>> ShrList = ShrList + "," + StrExtract( list, 1);
>>>> DatList = DatList + "," + StrExtract( list, 2);
>>>> }
>>>> Title = Symlist + "\n" +
>>>> ShrList + "\n" +
>>>> DatList;
>>>>
>>>>
>>>> ===============================
>>>>
>>>> From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx]
>>>> On Behalf Of Dennis Brown
>>>> Sent: Friday, September 19, 2008 1:47 PM
>>>> To: amibroker@xxxxxxxxxxxxxxx
>>>> Subject: Re: [amibroker] String Manipulations
>>>>
>>>> Ken,
>>>>
>>>> This is quite easy by using the StrExtract( list, item) function.
>>>> I am doing some similar things in the AFL I am writing for the AFL
>>>> Glossary project.
>>>>
>>>> Typing this off the top of my head to give you the basic idea:
>>>>
>>>> For( i=1; i < totalSymbolCount; i++ ) { list = VarGetText( "H" +
>>>> NumToStr(i, 1.0, 0); SymList = SymList + "," + StrExtract( list ,
>>>> 0); ShrList = ShrList + "," + StrExtract( list, 1); DatList =
>>>> DatList + "," + StrExtract( list, 2); }
>>>>
>>>> BR,
>>>> Dennis
>>>>
>>>> On Sep 19, 2008, at 12:53 PM, Ken Close wrote:
>>>>
>>>>> I have tried various constructions to achieve the following, but
>>>>> the code gets complex and has no good way of detecting end of
>>>>> string.
>>>>>
>>>>> I would like to take a series of strings, H1, H2, H3, and create
>>>>> lists of the elements, as such
>>>>>
>>>>> H1 = "SPY,500,06/04/2008";
>>>>> H2 = "DIA,100,09/02/2008";
>>>>> H3 = "QQQQ,300,08/04/2008";
>>>>>
>>>>> and turn them into these three lists
>>>>>
>>>>> SymList = "SPY,DIA,"QQQQ";
>>>>> ShrList = "500,100,300";
>>>>> DatList = "06/04/2008,09/02/2008,08/04/2008";
>>>>>
>>>>> Hx strings would be hard coded into the overall afl although one
>>>>> could set up a variety of paramtxt statements to enter them.
>>>>>
>>>>> Seems like it would be somewhat easy (and maybe it is), but I get
>>>>> bogged down in switch/case statements, or complex if/else
>>>>> statements.
>>>>>
>>>>> Anyone see a more simple way to arrange the strings.
>>>>>
>>>>> My ultimate goal is to have a list of "holdings" and some simple
>>>>> statistics displayed.
>>>>> AA window with a Watchlist seems obvious--yes?--but I need to have
>>>>> multiple positions of the same symbol, and I do not think you can
>>>>> put multiples of the same symbol in a watchlist--same symbol with
>>>>> different shares purchased on different dates-- (is there a way?).
>>>>>
>>>>> I next tried dynamic variables, in order to manipulate symbols and
>>>>> their associated price statistics, but that bombed.
>>>>>
>>>>> So now I am attempting to display my list of holdings in a Gfx
>>>>> title statement.
>>>>> I successfully have it displayed, but using long strings, like
>>>>> above for the SymList, ShrList, and DatList. This gets
>>>>> unmanageable when the number of symbols gets large and you try, by
>>>>> eye, to coordinate the dates and shares.
>>>>>
>>>>> Thus, I was hoping to list a three element string reprenting each
>>>>> holding and then rearrage them into long string lists.
>>>>>
>>>>> any ideas?
>>>>>
>>>>> thanks.
>>>>>
>>>>>
>>>
>>> ------------------------------------
>>>
>>> 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
>
>
>
------------------------------------
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/
|