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

RE: [amibroker] Problem with for,if, else statement



PureBytes Links

Trading Reference Links

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

 

--

Terry

-----Original Message-----
From:
amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf Of Bob Jagow
Sent: Thursday, Novem
ber 17, 2005 16:23
To:
amibroker@xxxxxxxxxxxxxxx
Su
bject: 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
Investment management software Real estate investment software Investment property software
Software support Real estate investment analysis software Investment software


YAHOO! GROUPS LINKS