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

Re: [amibroker] String Manipulations



PureBytes Links

Trading Reference Links

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

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