TS and AB have no concept of constants only variables. What appears to
be constants in the TS code are pre-declared variables, they can be
changed. The same in AB.

The TS inputs: declaration are the passed arguments to the function.

Don't need var 'n' or the 'length' test, as AB guarantees enough bars
before the code is run.

function TSMStDevConfidence(pArray, len)
{
  local sd, diff, diff2, const;
  
  diff  = pArray - Sum(pArray, len)/len;
  diff2 = diff^2;
  sd    = sqrt(Sum(diff2, len)/len);
  
  // AB provides an exponential function named exp(), so need a var
name change
  rexp = sd * sd / 2 * -1; // also change the sign here
  
  // only using pi once, so don't need to declare a var for it
  const = 1 / sqrt(3.1415926 * 2); // = 0.39894228 could use this
result directly below

 // can't return the result from a calculation directly? yet. so assign
  rv = 100 - 100 * const * (2.7182818^rexp);

  return rv;

} // fi TSMStDevConfidence(..)

// call the function & display ...
Plot(TSMStDevConfidence(Close, 25),"",colorCustom12,styleLine);

Hope this helps.
Mac


--- In [email protected], "greg_bender2002"
<greg_bender2...@...> wrote:
>
> I am trying to convert TradeStation code to AFl.  I am a beginner in 
> essay language.  If someone familiar with trade station code can 
> explain how the code below works I think I can figure out how to do 
> the conversion.  The code below is a function called by another 
> indicator.  I am confused by what appears to be variables and 
> constants and how they are handled. Any explanation would be hugely 
> helpful and appreciated. 
> 
> [LegacyColorValue = true]; 
> 
> { TSMStDevConfidence : Standard deviation confidence level (in 
> percent)
> 
> 
>   Returns confidence level, e.g., if stdev = 2.0 then confidence = 
> 95.44,
>   including both ends of the curve. To find confidence of one end of 
> the
>   distribution, divide result by 2. }
> 
>       inputs: price(numericseries), length(numericsimple);
>       vars:   n(0), pi(3.1415926), e(2.7182818), exp(0), sd(0), diff
> (0), diff2(0),
>                       const(0);
> 
>       n = length;
>       if currentbar < length then n = currentbar;
>       diff = price - average(price,n);
>       diff2 = power(diff,2);
>       sd = squareroot(average(diff2,n));
> 
>       exp = sd*sd / 2;
>       const =  1.00 / squareroot(2*pi);
>       TSMStDevConfidence =100 -  100 * const  * power(e,-exp);
>


Reply via email to