You should PLOT the result variable, not "Bon"
variable.
Best regards, Tomasz
Janeczko amibroker.com
----- Original Message -----
Sent: Saturday, October 24, 2009 5:31
PM
Subject: Re: [amibroker] PREV of MS in
AmiBroker
I'm try It
but maybe I'm made and error
Because the give to me nothing
my last 3 line in MetaStock |
In AB |
Bon:=
If(C>HautP AND C>BasP,5, If(C<BasP,0,PREV)) ;
Bon |
Bon =
result = 0;
for ( i = 1; i <
BarCount; i++ )
{
prev = result[ i - 1];
result[ i ] = IIf( C[ i ] > HautP[ i ]
AND C[ i ] > BasP[ i ], 5,
IIf( C[
i ] < BasP[ i ], 0, prev ) );
} ;
Plot (Bon,"",colorBlue,styleThick); |
Thank
Merci YLTech ( Yves L.
) Le présent message et les documents qui y sont joints sont
réservés exclusivement au destinataire indiqué. Il est strictement interdit
d'en utiliser ou d'en divulguer le contenu. Si vous recevez le présent message
par erreur, veuillez le détruire S.V.P. et nous en aviser immédiatement afin
que nous puissions corriger nos dossiers. Merci. This message and
the attached documents may contain privileged or confidential information that
are intended to the addressee only. Any unauthorized disclosure is strictly
prohibited. If you happen to receive this message by error, please delete it
and notify us immediately so that we may correct our internal records. Thank
you. yltech@xxxxxxxxxxxx
----- Original Message -----
Sent: Saturday, October 24, 2009 3:53
AM
Subject: Re: [amibroker] PREV of MS in
AmiBroker
Hello,
This MS code:
result = (C>HautP AND C>BasP,5,
If(C<BasP,0,PREV))
can be translated to:
result = 0;
for( i = 1; i < BarCount; i++ ) {
prev = result[ i - 1];
result[ i ] = IIF( C[ i ] > HautP[ i ] AND C[ i
] > BasP[ i ], 5, IIF( C[ i ] < BasP[ i ], 0, prev ) );
}
Although loop version is longer, it will execute 100 faster than in
Metastock, because
MS PREV is extremely inefficient.
Best regards, Tomasz Janeczko amibroker.com
----- Original Message -----
Sent: Saturday, October 24, 2009 6:45
AM
Subject: [amibroker] PREV of MS in
AmiBroker
I?m try to translate this formula(Metastock) in Amibroker(AB)
(C>HautP AND C>BasP,5,
If(C<BasP,0,PREV))
A guy from AB said to use the loop.
I?m use a formula on site Internet of AB(Percentage Trail
Stop)
Why when I?m use my Formula, I?m obtain :
Error 6. 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
And when I?m use the formula Percentage Trail
Stop,
I don?t obtain ERROR 6
?????????????
WHY ???????
Thank
YLTech
Percentage Trail Stop |
My Formula |
StopLevel = Param("Percentage Trail Stop",0.05,
0.01,
0.6,
0.01
);
LK= 50;
FF= 10;
A1= IIf( L> Ref(HHV(
Close,LK),-5),
1,
0);
A2= Sum( A1, LK ) ;
A3= IIf(C>0, FF,
0);
Buy = Cross(A2,A3);
Sell = 0;
trailARRAY = Null;
trailstop = 0;
for ( i = 1; i <
BarCount; i++ )
{
if( trailstop == 0
AND Buy[ i ] )
{
trailstop = High[ i ] * ( 1-stoplevel);
}
else Buy[ i ] = 0;
// remove excess buy
signals
if( trailstop > 0 )
{
trailstop = Max( High[ i ] * (1-stoplevel), trailstop );
trailARRAY[ i ] = trailstop;
}
if( trailstop > 0
AND Low[ i ] < trailstop )
{
Sell[ i ] = 1;
SellPrice[ i ] = trailstop;
trailstop= 0;
}
}
PlotShapes (Buy*shapeUpArrow,colorBlue,0,Low);
PlotShapes (Sell*shapeDownArrow,colorRed,0,High);
Plot (
Close,"Price",colorBlack,styleBar);
Plot (
trailARRAY,"trailing stop
level", colorRed
); |
_SECTION_BEGIN ("Cr.HautP.");
TimeFrameSet (
inDaily ); // switch
now to Daily
HautP= Ref(H,-1) ;
BasP= Ref(L,-1)
;
TimeFrameRestore ();
// restore time frame to
original
StopLevel = BasP ;
Buy = Cross(C,HautP) ;
Sell = 0 ;
trailARRAY = Null;
trailstop = 0;
for ( i = 1; i <
BarCount; i++ )
{
if( trailstop == 0
AND Buy[ i ] )
{
trailstop = HautP ;
}
else Buy[ i ] = 0;
// remove excess buy
signals
if( trailstop > 0 )
{
trailstop = Max( HautP, trailstop );
trailARRAY[ i ] = trailstop;
}
if( trailstop > 0
AND Low[ i ] < trailstop )
{
Sell[ i ] = 1;
SellPrice[ i ] = trailstop;
trailstop= 0;
}
}
PlotShapes (Buy*shapeUpArrow,colorBlue,0,Low);
PlotShapes (Sell*shapeDownArrow,colorRed,0,High);
Plot (
Close,"Price",colorBlack,styleBar);
Plot (
trailARRAY,"trailing stop
level", colorRed
);
_SECTION_END (); |
Merci YLTech ( Yves L.
) Le présent message et les documents qui y sont joints sont
réservés exclusivement au destinataire indiqué. Il est strictement
interdit d'en utiliser ou d'en divulguer le contenu. Si vous recevez le
présent message par erreur, veuillez le détruire S.V.P. et nous en aviser
immédiatement afin que nous puissions corriger nos dossiers.
Merci. This message and the attached documents may contain
privileged or confidential information that are intended to the addressee
only. Any unauthorized disclosure is strictly prohibited. If you happen to
receive this message by error, please delete it and notify us immediately
so that we may correct our internal records. Thank you. yltech@xxxxxxxxxxca
__._,_.___
**** 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/
__,_._,___
|