PureBytes Links
Trading Reference Links
|
Aron,
THANK YOU....that did it....I just could not see
it...
Anthony
----- Original Message -----
Sent: Saturday, January 23, 2010 12:44
PM
Subject: Re: [amibroker] Help with
formula
Ah, your increment rule overwrites the reset rule. It should
be:
if(posshort && !Sell[i])
{ if(C[i] <
C[i-1]) CumCst[i] = CumCst[i-1] +
0.003; else
CumCst[i] = CumCst[i-1];
} if(poslong && !Buy[i])
{ if(C[i] >
C[i-1]) CumCst[i] = CumCst[i-1] +
0.003; else
CumCst[i] = CumCst[i-1];
}
On 1/23/2010 6:24 PM, Anthony Faragasso wrote:
Aron,
I did what you suggested...but it just
stays at 0.13 does not re-set or increment .
Here is what I have:
Buy=Cross(C,EMA(C,19));
Sell=Cross(EMA(C,19),C) ;
CumCst=0.00;
poslong=0;
posshort=0;
for (i=1; i
< BarCount; i++)
{
if(Buy[i])
{
poslong=1;
posshort=0;
CumCst[i]=0.10;
}
if(Sell[i])
{
poslong=0;
posshort=1;
CumCst[i]=0.10;
}
if(posshort)
{
if(C[i] < C[i-1])
CumCst[i] = CumCst[i-1] + 0.003;
else
CumCst[i] = CumCst[i-1];
}
if(poslong)
{
if(C[i] > C[i-1])
CumCst[i] = CumCst[i-1] + 0.003;
else
CumCst[i] = CumCst[i-1];
}
if(CumCst[i] > 0.13)
CumCst[i] = 0.13;
}
per=19;
Smth=2/(per+1)+CumCst;
MovAvg=AMA(C,Smth);
Plot(movavg,"",colorBlue,1);
Plot(C,"",1,64);
PlotShapes(Buy*shapeUpArrow,colorGreen,0,L,-20);
PlotShapes(Sell*
shapeDownArrow,colorRed,0,H,-20);
Title="cumulative value = "+WriteVal(Cumcst,1.3);
-----
Original Message -----
Sent:
Saturday, January 23, 2010 12:16 PM
Subject:
Re: [amibroker] Help with formula [1 Attachment]
With the correction "==" to "=" your code works as it should. remove
it from the chart window and "apply indicator" again.
On
1/23/2010 4:34 PM, Anthony Faragasso wrote:
Ed,
Thank you...The code below is doing what is
supposed to happen...still
curious what is wrong with the formula I
posted...any ideas ?
Anthony
-----
Original Message -----
Sent:
Saturday, January 23, 2010 8:19 AM
Subject:
Re: [amibroker] Help with formula
have a look at code below Anthony. I
guess it could be programmed using arrays only, not sure,
regards, Ed
function
cccc(Buy,Sell) {
CumCst = Null;
for (i =
1; i <
BarCount; i++) {
if(Buy[i]) {
CumCst[i]=0.10;
for (j = i +
1; j <
BarCount; j++)
{
if
(Sell[ j ] )
{
i
= j - 1;
break;
}
else
if(C[j] >
C[j-1])
{
CumCst[j]
= Min(CumCst[j-1] + 0.003,0.13);
}
else
if(C[j] <=
C[j-1])
{
CumCst[j]
= CumCst[j-1];
}
else
if (j == BarCount -
1)
{
i
= BarCount;
break;
}
}
}
else
if(Sell[i]) {
CumCst[i]=0.10;
for (j = i +
1; j <
BarCount; j++)
{
if
(Sell[ j ] )
{
i
= j - 1;
break;
}
else
if(C[j] <
C[j-1])
{
CumCst[j]
= Min(CumCst[j-1] + 0.003,0.13);
}
else
if(C[j] >=
C[j-1])
{
CumCst[j]
= CumCst[j-1];
}
else
if (j == BarCount -
1)
{
i
= BarCount;
break;
}
}
}
}
return CumCst;
}
Buy=Cross(C,EMA(C,19)); Sell=Cross(EMA(C,19),C) ;
CumCst = cccc(Buy,Sell);
per=19;
Smth = 2/(per+1)+CumCst;
MovAvg = AMA(C,Smth);
Plot(movavg,"",colorBlue,1); Plot(C,"",1,64);
PlotShapes(Buy*shapeUpArrow,colorGreen,0,L,-20); PlotShapes(Sell*
shapeDownArrow,colorRed,0,H,-20);
Title="cumulative value = "+WriteVal(Cumcst,1.3);
----- Original Message
-----
Sent: Saturday,
January 23, 2010 1:47 PM
Subject: Re:
[amibroker] Help with formula
Keith,
Have you tried the formula ? I made the adjustments as you
stated still does not
work...although
I had them the way you suggested earlier...I have been trying
but something is not working
properly.
Description:
When there is a new buy or sell signal the cumCst will reset
to 0.10 and increment by 0.003
until it gets to a maximum of 0.13, this is not happening
with the formula below....I can
not
see the error, can anyone ?
Here is the complete
formula
Buy=Cross(C,EMA(C,19));
Sell=Cross(EMA(C,19),C) ;
CumCst=0.00;
poslong=0;
posshort=0;
for (i=1; i <
BarCount; i++)
{
if(Buy[i])
{
poslong=1;
posshort=0;
CumCst[i]=0.10;
}
if(Sell[i])
{
poslong=0;
posshort=1;
CumCst[i]=0.10;
}
if(posshort)
{
if(C[i] < C[i-1])
CumCst[i] =
CumCst[i-1] + 0.003;
else
CumCst[i] =
CumCst[i-1];
}
if(poslong)
{
if(C[i] > C[i-1])
CumCst[i] =
CumCst[i-1] + 0.003;
else
CumCst[i] =
CumCst[i-1];
}
if(CumCst[i] > 0.13)
CumCst[i] = 0.13;
}
per=19;
Smth=2/(per+1)+CumCst;
MovAvg=AMA(C,Smth);
Plot(movavg,"",colorBlue,1);
Plot(C,"",1,64);
PlotShapes(Buy*shapeUpArrow,colorGreen,0,L,-20);
PlotShapes(Sell*
shapeDownArrow,colorRed,0,H,-20);
Title="cumulative value = "+WriteVal(Cumcst,1.3);
----- Original Message
-----
Sent: Saturday,
January 23, 2010 1:37 AM
Subject: Re:
[amibroker] Help with formula
Anthony --
I have
added comments to your code below: //
Anthony.afl
Buy=Cross(C,EMA(C,19)); Sell=Cross(EMA(C,19),C)
; CumCst=0.00; poslong=0; posshort=0; for (i=1; i <
BarCount; i++) {
if(Buy[i]) {
poslong==1; // == doesn't set poslong to 1, it
stays 0 posshort==0; //
use = to set value
CumCst[i]=0.10;
}
if(Sell[i])
{
poslong==0;
posshort==1; // == doesn't set posshort to 1, it
stays 0
CumCst[i]=0.10; // use = to set
value
}
if(posshort) // posshort is 0 and code
below is never executed
{ if(C[i] <
C[i-1])
CumCst[i] = CumCst[i-1] +
0.003;
else
CumCst[i] = CumCst[i-1];
}
if(poslong) // poslong is 0 and code
below is never executed
{ if(C[i] >
C[i-1])
CumCst[i] = CumCst[i-1] +
0.003;
else
CumCst[i] = CumCst[i-1];
}
Keith,
Thanks...but that does not seem to be the
problem..when there is a
signal
buy or sell...cumCST starts at 0.10 and
increments by 0.003 as per the
formula...that is not happening....it
must be something else
Anthony
----- Original
Message -----
Sent: Friday,
January 22, 2010 10:35 PM
Subject: Re:
[amibroker] Help with formula
In four places you used
== where you should have used > Anthony
Faragasso wrote:
Hello,
Could someone look at this please...I can not see
the error...
The cumCST should increment up to .13 but it is not
happening..
Thank you
Anthony
Buy=Cross(C,EMA(C,19));
Sell=Cross(EMA(C,19),C) ;
CumCst=0.00;
poslong=0;
posshort=0;
for
(i=1; i <
BarCount; i++)
{
if(Buy[i])
{
poslong==1;
posshort==0;
CumCst[i]=0.10;
}
if(Sell[i])
{
poslong==0;
posshort==1;
CumCst[i]=0.10;
}
if(posshort)
{
if(C[i] < C[i-1])
CumCst[i]
= CumCst[i-1] +
0.003;
else
CumCst[i]
= CumCst[i-1];
}
if(poslong)
{
if(C[i] >
C[i-1])
CumCst[i]
= CumCst[i-1] + 0.003;
else
CumCst[i]
= CumCst[i-1];
}
if(CumCst[i] >=
0.13)
CumCst[i] =
0.13;
}
per=19;
Smth=2/(per+1)+CumCst;
MovAvg=AMA(C,Smth);
Plot(movavg,"",colorBlue,1);
Plot(C,"",1,64);
PlotShapes(Buy*shapeUpArrow,colorGreen,0,L,-20);
PlotShapes(Sell*
shapeDownArrow,colorRed,0,H,-20);
Title="cumulative value = "+WriteVal(Cumcst,1.3);
__._,_.___
**** IMPORTANT PLEASE READ ****
This group is for the discussion between users only.
This is *NOT* technical support channel.
TO GET TECHNICAL SUPPORT send an e-mail directly to
SUPPORT {at} amibroker.com
TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
http://www.amibroker.com/feedback/
(submissions sent via other channels won't be considered)
For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/
__,_._,___
|
|