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

Re: [amibroker] Re: Help on Debugging this If-Else Loop



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/