In AFL,
because Buy is 'True' on 'Buy' signals after entry
a 'SellPrice' based on: ValueWhen(Buy, BuyPrice);
may not be based on the actual entry price.

I read,
that for a correct entry price
using a loop is necessary.

I have modified a loop I found,
[modified loops shown below],
and in Exploration
the stop shown is correct on the entry day.
However, as in AFL the stop changes 
with each new buy signal.

I have tried two variations 
of the location of the Array Subscript Operator.

Could someone correct one of these loops
to produce the actual BuyPrice plus or minus a fixed amount?

Thank you,
DirectAim


//===XIT================================================
ATRDy=  ATR(14);
CrshStpMult= 1;
TargMult= 1;

//XIT LOOP 1 FOR LNGS===================================
BuyPrice= C;
Sell= 0;
TargLvlLng=    0;
CrshStpLvlLng= 0;
TargLvlLngARRAY=    Null;
CrshStpLvlLngARRAY= Null;

//XIT LOOP FOR LNGS
for(i=1; i<BarCount; i++)
{
if(TargLvlLng== 0 AND CrshStpLvlLng== 0 AND Buy[i]) 
  {TargLvlLng=    BuyPrice[i]+    TargMult* ATRDy[i];
   CrshStpLvlLng= BuyPrice[i]- CrshStpMult* ATRDy[i];}

else Buy[i]= 0;  //REMOV XCESS BUY SIGS 

if( TargLvlLng> 0 AND H[i]> TargLvlLng)
  {Sell[i]= 1;
   SellPrice[i]= TargLvlLng;
   TargLvlLngARRAY[i]= TargLvlLngARRAY[i];
   TargLvlLng=0;
   CrshStpLvlLng=0;}

if(CrshStpLvlLng> 0 AND L[i]< CrshStpLvlLng)
  {Sell[i]= 1;
   SellPrice[i]= CrshStpLvlLng;
   CrshStpLvlLngARRAY[i]= CrshStpLvlLng;
   CrshStpLvlLng= 0;
   TargLvlLng= 0;}

//REAJUST TargLvlLng + CrshStpLvlLng ON EA BAR?
if(TargLvlLng> 0)
  {TargLvlLng= BuyPrice[i]+ TargMult* ATRDy[i];
   TargLvlLngARRAY[i]= TargLvlLng;}

if(CrshStpLvlLng> 0)
  {CrshStpLvlLng= BuyPrice[i]- CrshStpMult* ATRDy[i];
   CrshStpLvlLngARRAY[i]= CrshStpLvlLng;}
}


//XIT LOOP 2 FOR LNGS===================================
for(i=1; i<BarCount; i++)
{
if(TargLvlLng== 0 AND CrshStpLvlLng== 0 AND Buy[i] ) 
  {TargLvlLng=    BuyPrice+ TargMult*    ATRDy;
   CrshStpLvlLng= BuyPrice- CrshStpMult* ATRDy;}

else Buy[i]= 0;  //REMOV XCESS BUY SIGS 

if( TargLvlLng[i]> 0 AND H[i]> TargLvlLng[i])
  {Sell[i]= 1;
   SellPrice[i]= TargLvlLng[i];
   TargLvlLngARRAY[i]= TargLvlLngARRAY[i];
   TargLvlLng=0;
   CrshStpLvlLng=0;}

if(CrshStpLvlLng[i]> 0 AND L[i]< CrshStpLvlLng[i])
  {Sell[i]= 1;
   SellPrice[i]= CrshStpLvlLng[i];
   CrshStpLvlLngARRAY[i]= CrshStpLvlLng[i];
   CrshStpLvlLng= 0;
   TargLvlLng= 0;}

//REAJUST TargLvlLng + CrshStpLvlLngON EA BAR?
if(TargLvlLng[i]> 0)
  {TargLvlLng= BuyPrice[i]+ TargMult* ATRDy[i];
   TargLvlLngARRAY[i]= TargLvlLng;}

if(CrshStpLvlLng[i]> 0)
  {CrshStpLvlLng= BuyPrice[i]- CrshStpMult* ATRDy[i];
   CrshStpLvlLngARRAY[i]= CrshStpLvlLng;}
}

Reply via email to