PureBytes Links
Trading Reference Links
|
Nice piece of code and why it doesn't work in jscript?
EnableScript ( "jscript" );
bars = Optimize( "param", 14, 5,40, 1 );
LinReg=LinRegSlope( L, bars);
<%
function GetArray( Name )
{return VBArray( AFL( Name ) ).toArray();}
Lo = VBArray( AFL ("L" ) ).toArray();
Hi = VBArray( AFL ("H") ).toArray();
Cl = VBArray( AFL ("C") ).toArray();
Result= new Array;
Thisval =0;
Minval=0;
Count=AFL.Var ("bars");
LinReg= GetArray("LinReg");
//Function CalcIt( Low, LinReg, Count )
//Result = Low
function CalcIt( Lo,LinReg, Count)
{
//For i = 0 To 2*Count - 1
//Result( i ) = -1e10
for (i=0; i<(2*Count)-1; i++)
Result[ i ] = -1e10 ;
//empty Values for initial Count elements
//For i = 2*Count To UBound( Low )
//Minval = Low( i )
for (i=2*Count; i<Lo.lenght ; i++)
{
Minval = Lo[ i ];
//For j = 1 To Count -1
//ThisVal = Low( i - j ) + j * LinReg( i )
for (j=1; Count-1; j++)
{
ThisVal = Lo[ i - j ] + j * LinReg[ i ];
//If Minval > ThisVal Then Minval = ThisVal
If (Minval > ThisVal)
Minval = ThisVal ;
//Next
}
//Result( i ) = Minval
Result[ i ] = Minval;
//Next
}
//CalcIt = Result
//End Function
}
AFL("Result") = Result;
%>
Graph1 = result;
>
> Here is a sample VBScript code that re-implements your code in
> that way that you can optimize your projected band formula:
>
> /* your original */
> Graph0 = Min(L, Min(Ref(L,-1) +1* LinRegSlope(L, 14),
> Min(Ref(L,-2) +2* LinRegSlope(L, 14),
> Min(Ref(L,-3) +3* LinRegSlope(L, 14),
> Min(Ref(L,-4) +4* LinRegSlope(L, 14),
> Min(Ref(L,-5) +5* LinRegSlope(L, 14),
> Min(Ref(L,-6) +6* LinRegSlope(L, 14),
> Min(Ref(L,-7) +7* LinRegSlope(L, 14),
> Min(Ref(L,-8) +8* LinRegSlope(L, 14),
> Min(Ref(L,-9) +9* LinRegSlope(L, 14),
> Min(Ref(L,-10) +10* LinRegSlope(L, 14),
> Min(Ref(L,-11) +11* LinRegSlope(L, 14),
> Min(Ref(L,-12) +12* LinRegSlope(L, 14),
> Ref(L,-13) +13* LinRegSlope(L, 14))))))))))))));
>
> /* VBScript re-implementation by TJ */
>
> EnableScript("VBScript");
>
>
> <%
> Function CalcIt( Low, LinReg, Count )
> Result = Low
>
> For i = 0 To 2*Count - 1
> Result( i ) = -1e10 ' empty Values for initial Count elements
> Next
>
> For i = 2*Count To UBound( Low )
>
> Minval = Low( i )
>
> For j = 1 To Count -1
>
> ThisVal = Low( i - j ) + j * LinReg( i )
> If Minval > ThisVal Then Minval = ThisVal
>
> Next
> Result( i ) = Minval
>
> Next
>
> CalcIt = Result
>
> End Function
> %>
>
> param = 14; // now you can change this to say param = Optimize
( "param", 14, 5, 40, 1 );
>
> scr = GetScriptObject();
> Graph1 = scr.CalcIt( Low, LinRegSlope( Low, param ), param );
>
>
> //////////////
> "Everything is possible"
>
> Best regards,
> Tomasz Janeczko
> amibroker.com
> ----- Original Message -----
> From: "spxer" <t.willett@xxxx>
> To: <amibroker@xxxx>
> Sent: Saturday, April 27, 2002 5:40 PM
> Subject: [amibroker] Re: opt this
>
>
> > This is only part of the formula. It is for a 14 period
indicator. As
> > you can see the lines of code will change for every parameter
input.
> > This is known as projection bands by Mel Widner, it is included
in
> > metastock. (coded: ProjBandBot(14) which makes it easy to
optimize)
> >
> >
> >
> > Min(L, Min(Ref(L,-1) +1* LinRegSlope(L, 14),
> > Min(Ref(L,-2) +2* LinRegSlope(L, 14),
> > Min(Ref(L,-3) +3* LinRegSlope(L, 14),
> > Min(Ref(L,-4) +4* LinRegSlope(L, 14),
> > Min(Ref(L,-5) +5* LinRegSlope(L, 14),
> > Min(Ref(L,-6) +6* LinRegSlope(L, 14),
> > Min(Ref(L,-7) +7* LinRegSlope(L, 14),
> > Min(Ref(L,-8) +8* LinRegSlope(L, 14),
> > Min(Ref(L,-9) +9* LinRegSlope(L, 14),
> > Min(Ref(L,-10) +10* LinRegSlope(L, 14),
> > Min(Ref(L,-11) +11* LinRegSlope(L, 14),
> > Min(Ref(L,-12) +12* LinRegSlope(L, 14),
> > Ref(L,-13) +13* LinRegSlope(L, 14))))))))))))));
> >
> >
> > --- In amibroker@xxxx, "nenapacwanfr" <nenapacwanfr@xxxx> wrote:
> > > write your code and inside
> > > // write your needs
> > > it will be easier to help you
> > >
> > > > Hi all. I am new to AB and I don't know how to proceed on
this
> > > point.
> > > > I want to optimize an indicator in a system test. This
indicator
> > > > requires a different length of code for each parameter
setting.
> > > The
> > > > only way I know how to write it is as separate indicators.
What
> > > can I
> > > > do to optimize? Thanks, Terry
> >
> >
> >
> >
> >
> > Your use of Yahoo! Groups is subject to
http://docs.yahoo.com/info/terms/
> >
> >
> >
|