SlowMA = MA(C,20);
FastMA = MA(C,5);
Buy = FastMA > SlowMA ;
Sell = Cross(SlowMA , FastMA) OR
SellPrice > (BuyPrice + 10);
Short = FastMA < SlowMA;
Cover = Cross(FastMA, SlowMA) OR
CoverPrice < (ShortPrice - 10);
Instead of AND, I have used OR since both Crossover and Price being above 10
pips cannot happen simultaneously.
Cheers
Prashanth
----- Original Message -----
Sent: Friday, July 11, 2008 3:09 AM
Subject: [amibroker] Re: Help on
Debugging this If-Else Loop
Still toying around with this and still can't get it to work. I
just can't seem to figure out how to specify the current price. Thought
that the ValueWhen function might be able to help.
All I'm trying to
achieve is this very simple test system, for Forex Intraday:
1. Buy Long position when the fast MA is above the slow
MA
2. Sell the Long position when the fast MA falls below
the slow MA, AND the current price is at least 10 pips higher than the
original entry price.
3. Enter Short position when fast MA is below the slow
MA
4. Sell the Short position when the fast MA rises above
the slow MA, AND the current price is at least 10 pips lower than
the original entry price.
Code below. Anyone?
Buy = (myMA1 > MyMA2);
Short = (myMA1 < MyMA2);
PriceAtBuy = 0;
PriceAtShort = 0;
for( i = 0; i < BarCount; i++ )
{
if( PriceAtBuy == 0 AND Buy[ i ] )
{
PriceAtBuy = Buy[ i
];
ValueAtBuy =
ValueWhen(Buy[i]>0,C,1);
}
if( PriceAtShort == 0 AND Short[ i ] )
{
PriceAtShort =
ShortPrice[ i ];
ValueAtShort =
ValueWhen(Short[i]>0,C,1);
}
if(
(myMA1[i] < MyMA2[i])
AND (PriceAtBuy > 0) AND (C[i] > (ValueAtBuy[i] +
0.0010))
)
{
Sell[ i ] = 1;
PriceAtBuy = 0;
}
else
Sell[ i ] = 0;
if(
(myMA1[i] >
MyMA2[i]) AND (PriceAtShort > 0) AND (C[i] < (ValueAtShort[i] -
0.0010))
)
{
Cover[ i ] = 1;
PriceAtShort = 0;
}
else
Cover[ i ] = 0;
}