[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[amibroker] Re: How to run multiple parallel AA functions using VBscript?



PureBytes Links

Trading Reference Links

Okay, I'm answering my own question...but for anyone who is as new to
scripting as I am, the Wscript.shell object should do the trick.

For e.g.  The following VBScript code opens a command window, changes to
the path to C:\ , and executes the DIR command.

Dim oShell
Set oShell = WScript.CreateObject ("WScript.Shell")
oShell.run "cmd /K CD C:\ & Dir"
Set oShell = Nothing

So I can basically run whatever I want in the command prompt, such as my
RunAsSPC command line for each individual script.


--- In amibroker@xxxxxxxxxxxxxxx, "ozzyapeman" <zoopfree@xxx> wrote:
>
> To clarify, at the current time I simply double click on a VBscript
> file, when I am logged in as the main user, and it launches my
Amibroker
> optimizations as that user.
>
> But now, logged in as main user, I want to instead use RunAsSPC to
> launch the script, and pass it an alternate User/Pass - but I want to
do
> this by double clicking on yet another script (a launch script for
this
> RunAsSPC command).
>
> That is what I am having difficulty trying to figure out. Again, I am
> sure this is as basic as it gets, as far as scripting or BAT files are
> concerned. I just have minimal experience in those regards.
>
>
> --- In amibroker@xxxxxxxxxxxxxxx, "ozzyapeman" zoopfree@ wrote:
> >
> > Thanks Mike. That makes sense. :-)
> >
> > I guess what I am also trying to figure out - is how do I launch
said
> > scripts without having to manually open a command prompt and
manually
> > type in something like the following for each of the 8 scripts:
> >
> > c:\runasspc\runasspc.exe /program:"c:\myVBscript.vbs /user:"AB03"
> > /password:"passAB03" /quiet
> >
> > I am not familiar with WShell, or creating BAT files, or even with
> > launching the command prompt from within a script.
> >
> > How would I write a simple script that would simply run the above
line
> > within the command prompt? So that when I double click on such a
file,
> > the above referenced VBscript launches under the correct user? I am
> sure
> > this is a simple thing to do, I just have no idea how, and wading
> > through various manuals has not helped so far.
> >
> > Of course in a worse case scenario, I could just manually type the
> above
> > sort of thing into the command prompt for each script I want to
> launch,
> > but that feels unnecessarily primitive.
> >
> >
> > --- In amibroker@xxxxxxxxxxxxxxx, "Mike" sfclimbers@ wrote:
> > >
> > > You run the VBScript as the other user! Anything done from within
> the
> > script will be done as the user of which the script was launched.
> > >
> > > Whatever means you were using to run the script as the current
user,
> > just do the same using your runas utility.
> > >
> > > Mike
> > >
> > > --- In amibroker@xxxxxxxxxxxxxxx, "ozzyapeman" zoopfree@ wrote:
> > > >
> > > > Okay, since I am using Windows Vista, which does not have the
same
> > RunAs
> > > > utility as Win XP, I had to install a utility, RunAsSPC. That
> > utility
> > > > works fine in manual testing.
> > > >
> > > > For example, if I am logged in as User: AB01 but want to open
> > broker.exe
> > > > under User: AB03, I just type the following in the command
prompt:
> > > >
> > > > cd c:\runasspc
> > > >
> > > > c:\runasspc\runasspc.exe /program:"c:\Program Files
> > > > (x86)\Amibroker\Broker.exe" /user:"AB03" /password:"passAB03"
> /quiet
> > > >
> > > > And it will open broker.exe under AB03 while I remain logged in
as
> > AB01.
> > > >
> > > > But the issue that is still dogging me is - how do I now
integrate
> > the
> > > > above with my VBScript to ensure that when I create the broker
> > object,
> > > > that it does so under user AB03, intead of user AB01?
> > > >
> > > > In other words, what goes at the top of the following VBScript
> code?
> > Do
> > > > I need to add some kind of windows script to call the above
> command
> > > > line, or some other script that allocates any actions to a
> specific
> > > > user? Anyone have any idea what such a line would look like? I
am
> > going
> > > > through the Windows Script Host manual, and I find it somewhat
> > > > confusing.
> > > >
> > > > Thanks for any input.
> > > >
> > > >
> > > > dim AB
> > > > set AB = CreateObject("Broker.Application")
> > > >
> > > > dim AA
> > > > set AA = AB.Analysis
> > > >
> > > > AB.LoadDatabase( Database )
> > > > AA.LoadSettings( Settings )
> > > > AB.ActiveDocument.Name = "EURUSD"        ' Set EURUSD as active
> > document
> > > >
> > > >
> > > > AA.LoadFormula( Formula1 )                        ' load formula
> > from
> > > > external file
> > > > AA.ApplyTo                = 1                                   
'
> > use
> > > > current symbol
> > > > AA.RangeMode          = 3                                   '
use
> > 'From'
> > > > and 'To' dates
> > > > AA.RangeFromDate = FromDate
> > > > AA.RangeToDate       = ToDate
> > > > AA.Optimize( 0 )
> > > >
> > > >
> > > > --- In amibroker@xxxxxxxxxxxxxxx, "ozzyapeman" <zoopfree@>
wrote:
> > > > >
> > > > > Thanks, Mike.
> > > > >
> > > > >
> > > > > --- In amibroker@xxxxxxxxxxxxxxx, "Mike" sfclimbers@ wrote:
> > > > > >
> > > > > > You will need to run each instance as a separate user. Each
> user
> > > > must have permission to run the application. It is not necessary
> to
> > log
> > > > in/out of each user account to start the process.
> > > > > >
> > > > > > You can read the setup requirements of MCO in the Files
> section
> > of
> > > > this group for setting up the users. Then just use the built in
> > Windows
> > > > "runas" command to fire off each process from a single account
but
> > > > running as a different user.
> > > > > >
> > > > > > http://support.microsoft.com/kb/294676
> > > > > >
> > > > > > Keep in mind that if you are using AddToComposite, you will
> run
> > into
> > > > trouble whenever you have multiple instances of AmiBroker
running
> > > > against the same database (each will write over the other, last
> > write
> > > > wins). You can overcome that by generating dynamic composite
names
> > (e.g.
> > > > based on the user name).
> > > > > >
> > > > > > Mike
> > > > > >
> > > > > > --- In amibroker@xxxxxxxxxxxxxxx, "ozzyapeman" <zoopfree@>
> > wrote:
> > > > > > >
> > > > > > > Recently I've been automating some of my optimizations and
> > > > backtests
> > > > > > > using external VBScript.
> > > > > > >
> > > > > > > When I run Amibroker manually, I can usually run up to 6
> > separate
> > > > > > > instances under a single User, which allows me to run
> > > > optimizations on 6
> > > > > > > different AFLs simultaneously. But when I try to run 6
> > different
> > > > > > > VBScripts, each calling a unique AFL, they collide which
> each
> > > > other, and
> > > > > > > cause errors.
> > > > > > >
> > > > > > > Without logging out, and logging back into windows as a
> > separate
> > > > User,
> > > > > > > how can I automate multiple optimizations using scripting?
> > > > > > >
> > > > > > > Below is a typical snippet of code. How do I instruct
> VBScript
> > to
> > > > call a
> > > > > > > unique Broker.Application, so that all scripts do not try
to
> > call
> > > > the
> > > > > > > exact same instance of Amibroker? Is this even possible?
> > Thanks
> > > > for any
> > > > > > > input.
> > > > > > >
> > > > > > >
> > > > > > > dim AB
> > > > > > > set AB = CreateObject("Broker.Application")
> > > > > > >
> > > > > > > dim AA
> > > > > > > set AA = AB.Analysis
> > > > > > >
> > > > > > > AB.LoadDatabase( Database )
> > > > > > > AA.LoadSettings( Settings )
> > > > > > > AB.ActiveDocument.Name = "EURUSD"        ' Set EURUSD as
> > active
> > > > document
> > > > > > >
> > > > > > >
> > > > > > > AA.LoadFormula( Formula1 )                        ' load
> > formula
> > > > from
> > > > > > > external file
> > > > > > > AA.ApplyTo                = 1
> > '
> > > > use
> > > > > > > current symbol
> > > > > > > AA.RangeMode          = 3
> '
> > use
> > > > 'From'
> > > > > > > and 'To' dates
> > > > > > > AA.RangeFromDate = FromDate
> > > > > > > AA.RangeToDate       = ToDate
> > > > > > > AA.Optimize( 0 )
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>




------------------------------------

**** IMPORTANT PLEASE READ ****
This group is for the discussion between users only.
This is *NOT* technical support channel.

TO GET TECHNICAL SUPPORT send an e-mail directly to 
SUPPORT {at} amibroker.com

TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
http://www.amibroker.com/feedback/
(submissions sent via other channels won't be considered)

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:amibroker-digest@xxxxxxxxxxxxxxx 
    mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/