Hi,

Without evaluating the actual logic of what you're trying to do, a couple of 
quick observations:

1. I suspect that you're missing "AND" after 3000, not semi colon.

2. You are redundantly recalculating several arrays, where single calculations 
stored in variables would result in faster charting.

e.g.
MyATR = ATR( ATRPeriod );
PrevClose = Ref( Close, -1 );
...

3. Your usage of ValueWhen is probably not doing what you're hoping for. 
ValueWhen will pick up the most recent occurrence. Since your Buy can result in 
many redundant signals, your usage of ValueWhen will often pick up the 
redundant Buy, not the first one.

4. FilterBeginATR appears not to be used. Get rid of it.

5. Don't call ExRem on Buy and Sell, let the backtester do that for you. If you 
need unique values to plot shapes, store the results in a variable and 
PlotShapes using the variable instead.

Mike

--- In [email protected], "three_percent" <se...@...> wrote:
>
> 
> Missing a semicolon after 3000
> 
> 
> --- In [email protected], "three_percent" <senft@> wrote:
> >
> > Here is my attempt at a turtle script based on the ATR command.   I've been 
> > backtesting it against the S&P500 since 1990.   If you guys have any 
> > comments or improvements, let me know...
> > 
> > 
> > 
> > 
> > ---------------------------------------------------------------------
> > 
> > // ATR/Turtle Script by Andrew Senft
> > //
> > 
> > 
> > 
> > // Backtester Options
> > SetOption("AllowSameBarExit", False);
> > SetOption("MaxOpenPositions",1);
> > PositionSize = -100;
> > 
> > 
> > // Optimization numbers 
> > ATRPeriod = Optimize("ATRPeriod", 15, 10, 50, 5);
> > BuyThreshold = Optimize("BuyThreshold", .3, .1, .50, .05);
> > BuySlope = Optimize("BuySlope", 1.08, 1.05, 1.10, .01);
> > SellThreshold = Optimize("SellThreshold", .15, .1, .50, .05);
> > ProfitPercent = Optimize("ProfitPercent", 25, 25, 35, 5);
> > 
> > 
> > // Buy/Sell signals and prices
> > Buy = Ref(ATR(ATRPeriod),-1) < BuyThreshold AND
> >     Ref(Close,-1) > Ref(Close,-1 * ATRPeriod / 2) AND
> >     Ref(Close,-1 * ATRPeriod / 2) > Ref(Close,-1 * ATRPeriod) AND           
> >         // NEW NEW NEW
> >     Ref(Close,-1) / Ref(Close,-1 * ATRPeriod) > BuySlope AND
> >     Ref(MA(Volume,20),-1) > 3000    // 300,000 volume or more
> >     Ref(Close,-1) >= 2;             // stocks over $2
> > BuyPrice = Open;
> > BeginATR = Ref(ValueWhen(Buy, ATR(ATRPeriod),1), -1);
> > FilterBeginATR = ValueWhen(Buy, ATR(ATRPeriod),1);
> > Sell = Ref(ATR(ATRPeriod),-1) > BeginATR + SellThreshold;
> > SellPrice = Open;
> > Buy = ExRem(Buy,Sell);                                              
> > Sell = ExRem(Sell,Buy);     
> > 
> > PositionScore = 100 - Ref(ATR(ATRPeriod),-1);
> > 
> > 
> > ApplyStop( stopTypeProfit, stopModePercent, ProfitPercent ,True, 0 );
> >
>


Reply via email to