PureBytes Links
Trading Reference Links
|
Here is an approach from your code with some changes to make it follow
logic to me, and ensure variables are correctly initiated
SetTradeDelays( 1, 1, 1, 1 );
Sell = Cover = 0;
BuyPrice = SellPrice = ShortPrice = CoverPrice = O;
myMA1 = MA(C,10);
MyMA2 = MA(C,100);
Buy = (myMA1 > MyMA2);
Short = (myMA1 < MyMA2);
inBuy = inShort = 0;
ValueAtBuy = ValueAtShort = Null;
for( i = 0; i < BarCount; i++ )
{
if(myMA1[i]<MyMA2[i] AND inBuy AND C[i]>(ValueAtBuy + 0.0010) )
{
Sell[i] = 1;
inBuy= 0;
ValueAtBuy = Null;
}
if(myMA1[i]>MyMA2[i] AND inShort AND C[i]<(ValueAtShort - 0.0010) )
{
Cover[i] = 1;
inShort = 0;
ValueAtShort = Null;
}
if(inBuy) Buy[i] = 0;
if(inShort) Short[i] = 0;
if( inBuy==0 AND Buy[i] )
{
inBuy= 1;
ValueAtBuy = C[i];
}
if( inShort==0 AND Short[i] )
{
inShort = 1;
ValueAtShort = C[i];
}
}
--
Cheers
Graham Kav
AFL Writing Service
http://www.aflwriting.com
2008/7/11 Prashanth <prash454.ta@xxxxxxxxx>:
> I am not sure you require loops to do what you are looking for.
>
>
> 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 -----
> From: ozzyapeman
> To: amibroker@xxxxxxxxxxxxxxx
> 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;
>
>
> }
>
------------------------------------
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 NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/
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/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/amibroker/join
(Yahoo! ID required)
<*> To change settings via email:
mailto:amibroker-digest@xxxxxxxxxxxxxxx
mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx
<*> 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/
|