The problem is with this part:
( CalcO[i]<=
0.11 OR CalcO[i]>= -0.11 )
ANY number is ALWAYS less than
+.11 OR greater than -.11, right?
1,000,000 is > -0.11
-1,000,000 is < +0.11
Pick a number, always TRUE.
This is why I suggested changing this
part. In fact, I don't know what is wanted except I'm pretty sure ALWAYS TRUE
is NOT the desired result.
I see the choices as:
( CalcO[i] <= 0.11 AND CalcO[i] >= -0.11 ) //Number is BETWEEN -0.11 and +0.11
or
( CalcO[i] >= 0.11 OR CalcO[i] <= -0.11 ) //Number is either below -0.11 OR above +0.11
-----Original Message-----
From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf Of Bob Jagow
Sent: Thursday, November 17,
2005 16:23
To: amibroker@xxxxxxxxxxxxxxx
Subject: RE: [amibroker] Problem with
for,if, else statement
Terry.,
Re the logic, he
clearly wants
if
(SBAvg[i]>FBavg[i] AND ( CalcO[i]<= 0.11 OR
CalcO[i]>= -0.11 ) ).
[The added parens
are needed because AND has a higher precedence than OR].
if (SBAvg[i]>FBavg[i]
AND (CalcO[i]<= 0.11 OR CalcO[i]>= -0.11) ==
true,
but if
(SBAvg[i]>FBavg[i] AND CalcO[i]<= 0.11 AND
CalcO[i]>= -0.11) == false
Didn’t check
the looping logic because it should be doable with the original arrays IMO.
Regards,
Bob
-----Original
Message-----
From: amibroker@xxxxxxxxxxxxxxx
[mailto:amibroker@xxxxxxxxxxxxxxx]On Behalf
Of Terry
Sent: Thursday, November 17, 2005
12:44 PM
To: amibroker@xxxxxxxxxxxxxxx
Subject: RE: [amibroker] Problem
with for,if, else statement
One step at a
time (saves me time!)
Please first fix
this statement as ANY values always give TRUE the way it is. Note red text.
Change this:
if
(SBAvg[i]>FBavg[i] AND CalcO[i]<= 0.11 OR
CalcO[i]>= -0.11)
To this:
if
(SBAvg[i]>FBavg[i] AND CalcO[i]<= 0.11 AND
CalcO[i]>= -0.11)
With or without
that fix, I get different answers for each day I click on.
If that doesn't
fix it, write back
Also, please
"wrap" your Title statement in _N(Title = …); to keep the
garbage out of the Interpretation window.
_N(Title = Name() + " (" +
StrLeft(FullName(), 10) + ") -- " + Date() +"
O: "+ WriteVal(O,1.2 )+ " H: " + WriteVal(H,1.2) +
" L: " + WriteVal(L,1.2) + "
C: " + C + " Fast =
" + WriteVal(FBAvg,1.2)+ EncodeColor( colorPaleTurquoise )+ wi);
PS: It's okay,
IMHO, to write. I do this frequently as required.
If (cond1) {do
stuff}
Else if (cond2)
{do other stuff}
Else {do third
stuff}
--
Terry
-----Original
Message-----
From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf Of
dmarval
Sent: Thursday, November 17, 2005 13:26
To: amibroker@xxxxxxxxxxxxxxx
Subject: [amibroker] Problem with for,if, else statement
Can someone
please help me figure out what's wrong with
my
"for,if,else...." code. I am new at attempting to code. My
problem is that
my formula only calculates the value difference for
the last trading
day, and if I click on any other previous trading
days, my title
value still states value of the last trading day.
What I would like
this code to do, is calculate the different values
for each
individual current and previous trading days and to have
the values
reflected in my title.
FastPeriods =5;
SlowPeriods = 20;
FBAvg = Sum(
Volume * Close, FastPeriods ) / Sum( Volume,
FastPeriods);
SBAvg = Sum( Volume
* Close, SlowPeriods ) / Sum( Volume,
SlowPeriods);
Plot(FBAvg,"Fast
",colorAqua,styleLine);
Plot(SBAvg,"Slow
",colorDarkBlue,styleLine+styleThick);
//Calculations//
CalcO = O -
FBAvg;
CalcC = C -
FBAvg;
for( i = 0; i
< BarCount; i++ )
{
if
(SBAvg[i]>FBavg[i] AND CalcO[i]<= 0.11 OR CalcO[i]>= -0.11)
{
wi = " DiffO: " + WriteVal(O[i] -
FBAvg[i],1.2);
}
else
if(SBAvg[i]>FBAvg[i] AND CalcC[i]<= 0.11 OR CalcC[i]>= -0.11)
{
wi = " DiffC: " + WriteVal(CalcC[i],1.2);
}
else
{
wi = "------";
}
}
Title = Name() +
" (" + StrLeft(FullName(), 10) +
") -- " + Date() +" O: "+
WriteVal(O,1.2 )+ " H: " +
WriteVal(H,1.2) +
" L: " + WriteVal(L,1.2) + "
C: " + C
+
" Fast = " +
WriteVal(FBAvg,1.2)+ EncodeColor(
colorPaleTurquoise
)+
wi;
------------------------
Yahoo! Groups Sponsor --------------------~-->
Try Online
Currency Trading with GFT. Free 50K Demo. Trade
24 Hours.
Commission-Free.
http://us.click.yahoo.com/RvFikB/9M2KAA/U1CZAA/GHeqlB/TM
--------------------------------------------------------------------~->
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 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/
<*> 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/
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 other support material please check also:
http://www.amibroker.com/support.html
SPONSORED LINKS
YAHOO! GROUPS LINKS