PureBytes Links
Trading Reference Links
|
Roy,
Thank you very much for your detailed examples. I'll definitely play
around with it some more using your instructions. I was basically
looking for the same thing as the original poster, ie. something
similar to the Security() function (I'm running 7.03EOD). I'm
interested in building a simple relative strength
indicator/exploration for a portfolio of stocks (eg. weekly/monthly
ROC relative strength vs the S&P). Do you think this can be
accomplished using the DLL?
Thanks,
-Alex
--- In Metastockusers@xxxxxxxxxxxxxxx, "Roy Larsen" <rlarsen@xxxx>
wrote:
> Alex
>
> There's no formal instructions that I know of. There are three
commands for the GlobalVar dll
>
> ExtFml( "GlobalVar.Clear");
> ExtFml( "GlobalVar.GetVar", "Variable Name");
> ExtFml( "GlobalVar.SetVar", "Variable Name", Expression);
>
> Clear will clear ALL global variables held by GlobalVar.dll and
this can be counter productive. I
> never use it. However because these variables can (and do) come up
in an unknown state it certainly
> pays to Set (usually to zero) before Get. This can mean calling an
indicator containing the global
> var before using it in an exploration, say, or dropping a reset
indicator onto a chart to clear all
> variables before use.
>
> Using like so in an indicator will create a plot of "Expression" as
well as saving "Expression" as
> "Variable Name" in the GlobalVar.dll workspace
> ExtFml( "GlobalVar.SetVar", "Variable Name", Expression);
>
> To avoid an unwanted plot you can use a standard variable name like
so
> A:=ExtFml( "GlobalVar.SetVar", "Variable Name", Expression);
>
> However you must remember that "A" as a standard variable name is
still subject to the normal 20
> variable name limitation. There is no such limitation on the global
variable names. You can save
> several different global variables for the price of one standard
variable name like so
> A:=ExtFml( "GlobalVar.SetVar", "Variable Name", Expression 1);
> A:=ExtFml( "GlobalVar.SetVar", "Variable Name", Expression 2);
> ...
> A:=ExtFml( "GlobalVar.SetVar", "Variable Name", Expression 99);
> A:=ExtFml( "GlobalVar.SetVar", "Variable Name", Expression 100);
>
> Repeating "GlobalVar" many times over will in itself use up a lot
of space. Therefore it is a good
> idea to use a copy of GlobalVar.dll with a much shorter name. I use
GV.dll as in the following
> examples taken directly from the "Trade Equity GV LE" indicator.
Also keep GV variable names short
> to conserve space.
>
> I:=ExtFml("GV.SetVar","I",I);
> I:=ExtFml("GV.SetVar","N",N);
> I:=ExtFml("GV.SetVar","X",X);
> I:=ExtFml("GV.SetVar","Cn",Cn);
> I:=ExtFml("GV.SetVar","Cp",Cp);
> I:=ExtFml("GV.SetVar","Cx",Cx);
>
> Here's an example of an indicator I use to reset some global
variables before running a series of
> optimising explorations with Trade Equity. "OptA" and "OptB" are
used as counters during the
> explorations and they are reset to zero by dropping the indicator
onto any chart. "OptX" is set by
> the user to the number of issues in each exploration. Then "OptA"
and "OptX" are plotted to give a
> visual reminder that the indicatoris present. Deleting the
indicator and then dropping it down aagin
> will reset the global variables again.
>
> {Trade Equity GV Opt Setup}
> {© 2004 Roy Larsen, rlarsen@xxxx}
> {use this indicator on chart to set and plot
> the number of issues in each TE exploration}
> N:=Input("Number of Issues",1,9999,500);
> A:=ExtFml("GV.SetVar","OptA",0);
> A:=ExtFml("GV.SetVar","OptB",0);
> A:=ExtFml("GV.SetVar","OptX",N);
> ExtFml("GV.GetVar","OptA");
> ExtFml("GV.GetVar","OptX");
>
>
> Each TE Optimising exploration has the following code placed ahead
of the normal column A code, and
> this is where the counters are incremented.
>
> {Column A: $ Profit}
> {Set up options counters}
> OptA:=LastValue(ExtFml("GV.GetVar","OptA"));
> OptB:=LastValue(ExtFml("GV.GetVar","OptB"));
> OptX:=LastValue(ExtFml("GV.GetVar","OptX"));
> A:=(OptB/OptX)=Int(OptB/OptX) AND OptB<>0;
> B:=ExtFml("GV.SetVar","OptB",OptB+1);
> B:=ExtFml("GV.SetVar","OptA",OptA+A);
>
>
> The following comments and code relate to modifying entry and/or
exit indicators used by Trade
> Equity so that the global variable counters are used to change
selected vaulues for each exploration
> run.
>
> {Trade Equity GV Opt Insert}
> {use code as part of your entry or exit code
> to set initial and increment option values}
> {where "X" is the option initial value}
> {where "Y" is the option increment value}
>
> OptA:=LastValue(ExtFml("GV.GetVar","OptA"));
> OptA:=X + OptA/Y;
>
> {example of option use}
> {standard entry}
> Entry:=Cross(Mov(C,15,E),Mov(C,30,E));
> Entry;
>
> {modified entry using optional values}
> OptA:=LastValue(ExtFml("GV.GetVar","OptA"));
> OptA:=10 + OptA/1;
> Entry:=Cross(Mov(C,OptA,E),Mov(C,30,E));
> Entry;
>
>
> As you can see there are a number of things that you can do with
these global variables. I can't
> possibly show you every possibility but I can help you set up
whatever it is that you want to do. If
> you're like most people I suspect you've already thrown up your
hands in horror, but if you're still
> with me let me know if you need any further help.
>
> Roy
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/Metastockusers/
<*> To unsubscribe from this group, send an email to:
Metastockusers-unsubscribe@xxxxxxxxxxxxxxx
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|