PureBytes Links
Trading Reference Links
|
You guys are great, and I apologize for not describing the high-level goal.
There is an "animal" in the FastTrack world called a "Cheese" chart, a glimpse of which is attached. I also think that Bill Barack posted code for this in the files area. In making a custom system using this cheese chart construction, I needed to use much more complex color combinations. Plus I saw the opportunity to practice something I do not use -- for loops.
I could construct (and have constructed the code that makes the attached) with a long series of statements with Ref(XXX,-y) , 19 of them. I copy one of them, and then use Search/Replace to quickly alter each remaining statement. I thought I could make smaller code without copy/paste/edit.
In my example, I am creating the color variable, A0, A1, A2, etc (which is shown as nc19, nc18, etc below)
Then later, I use it in an AddColumn Statement, like this
AddColumn(Ref(BTot,-19),"-19",1.0,colorBlack,nc19);
AddColumn(Ref(BTot,-18),"-18",1.0,colorBlack,nc18);
AddColumn(Ref(BTot,-17),"-17",1.0,colorBlack,nc17);
This is my actual AddColumn code, but in my simplified example, I changed ncX to Ax, and BTot was Tot (which of course is defined further up in the logic).
<<...>>
Does this make it more clear?
Ken
-----Original Message-----
From: Tomasz Janeczko [mailto:amibroker@xxxxxx]
Sent: Tuesday, November 11, 2003 5:19 AM
To: amibroker@xxxxxxxxxxxxxxx
Subject: Re: [amibroker] Re: Repetitive Statements with FOR (?)
Dimitris,
Problem is that I don't know what exactly Ken was after.
I provided some explanation based on wild guesses.
Let us wait for Ken to get back to us, describing the high-level goal
so we can help him better.
Best regards,
Tomasz Janeczko
amibroker.com
----- Original Message -----
From: "DIMITRIS TSOKAKIS" <TSOKAKIS@xxxxxxxxx>
To: <amibroker@xxxxxxxxxxxxxxx>
Sent: Tuesday, November 11, 2003 10:48 AM
Subject: [amibroker] Re: Repetitive Statements with FOR (?)
> Tomasz,
> As I see
> A1=Ref(A0,-1);
> A2=Ref(A0,-2);
> etc
> which, in last analysis, is array A0 and nothing more.
> Dimitris Tsokakis
> --- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko" <amibroker@xxxx>
> wrote:
> > Repetitive Statements with FOR (?)Ken,
> >
> > In your example: A0 is an ARRAY variable, A1 is another
> (independent) ARRAY variable and so
> > on. So you have N array variables with different names.
> >
> > A[i] is not the same as Ai.
> > A[i] is i-th element of A array variable.
> > Ai is the (array) variable that has the name of Ai
> >
> > On the other hand you can no create variable names dynamically like
> A+i = ..something
> >
> > You could simplify the code by declaring a function:
> >
> > function mycolor( array, shift )
> > {
> > array = Ref( array, shift );
> > color = IIf( array<3,colorRed,array > 3 AND array
> <5,colorYellow,colorGreen);
> >
> > return color;
> > }
> >
> > and then just write:
> > A1 = mycolor( Tot, -1 );
> > A2 = mycolor( Tot, -2 );
> > A3 = mycolor( Tot, -3 );
> > A4 = mycolor( Tot, -4 );
> > A5 = mycolor( Tot, -5 );
> >
> > You would be able to wrap it up in a loop if you could declare
> multi-dimensional arrays but you can't do this right now
> > (unless you use JScript or VBScript)
> >
> > Please describe your high-level goal.
> >
> > Quote from "how to ask questions the smart way":
> >
> > "If you are trying to find out how to do something,begin by
> describing the goal. Only then describe the particular step towards
> it that you are blocked on.
> > Often, people who need technical help have a high-level goal in
> mind and get stuck on what they think is one particular path towards
> the goal. They come for help with the step, but don't realize that
> the path is wrong. It can take a lot of effort to get past this."
> >
> >
> > Best regards,
> > Tomasz Janeczko
> > amibroker.com
> > ----- Original Message -----
> > From: Ken Close
> > To: AmiBroker List
> > Sent: Tuesday, November 11, 2003 4:33 AM
> > Subject: [amibroker] Repetitive Statements with FOR (?)
> >
> >
> > As I venture into the land of more "pure" programming constructs,
> I stumble. Any help?
> >
> > I have a complex series of variables calculating values for
> today, yesterday, up to Ref(xx,-20)
> >
> > Instead of
> >
> > A0 = IIf(Tot<3,colorRed,IIf(Tot>3 AND
> Tot<5,colorYellow,colorGreen);
> >
> > A1 = IIf(Ref(Tot,-1)<3,colorRed,IIf(Ref(Tot,-1)>3 AND Ref(Tot,-1)
> <5,colorYellow,colorGreen);
> >
> > A2 = IIf(Ref(Tot,-2)<3,colorRed,IIf(Ref(Tot,-2)>3 AND Ref(Tot,-2)
> <5,colorYellow,colorGreen);
> >
> > And repeat this 19 times, back 19 days;
> >
> > I wanted to try and use a For loop, and tried the following. But
> I get all sorts of error messages, the most frequent of which
> is "Type Mismatch, number expected but array found."
> >
> >
> >
> > for(i=0; i>19; i++)
> >
> > {
> >
> > A[i]=IIf(Ref(Tot,-i)<3,colorRed,IIf(Ref(Tot,-i)>3 AND Ref(Tot,-i)
> <5,colorYellow,colorGreen);
> >
> > }
> >
> > I tried A+I and that did not work either
> >
> > "Error 3.
> >
> > Condition in IF, WHILE, FOR statements
> >
> > has to be Numeric or Boolean type.
> >
> > You can not use array here,
> >
> > please use [] (array subscript operator)
> >
> > to access array elements"
> >
> > The "A"s are arrays, so the A[i] seemed like the right way to go,
> but then the Type Mismatch.
> >
> > I know the answer is probably simple, but I can not see it.
> >
> > Help?
> >
> > Ken
> >
> >
> > Yahoo! Groups Sponsor
> > ADVERTISEMENT
> >
> >
> >
> >
> > Send BUG REPORTS to bugs@xxxx
> > Send SUGGESTIONS to suggest@xxxx
> > -----------------------------------------
> > Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx
> > (Web page: http://groups.yahoo.com/group/amiquote/messages/)
> > --------------------------------------------
> > Check group FAQ at:
> http://groups.yahoo.com/group/amibroker/files/groupfaq.html
> >
> > Your use of Yahoo! Groups is subject to the Yahoo! Terms of
> Service.
>
>
>
> Send BUG REPORTS to bugs@xxxxxxxxxxxxx
> Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
> -----------------------------------------
> Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx
> (Web page: http://groups.yahoo.com/group/amiquote/messages/)
> --------------------------------------------
> Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
>
>
>
------------------------ Yahoo! Groups Sponsor ---------------------~-->
Buy Ink Cartridges or Refill Kits for your HP, Epson, Canon or Lexmark
Printer at MyInks.com. Free s/h on orders $50 or more to the US & Canada.
http://www.c1tracking.com/l.asp?cid=5511
http://us.click.yahoo.com/mOAaAA/3exGAA/qnsNAA/GHeqlB/TM
---------------------------------------------------------------------~->
Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
Yahoo! Groups Sponsor
ADVERTISEMENT
Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
Attachment:
A1.gif
Attachment:
Description: "Description: GIF image"
|