PureBytes Links
Trading Reference Links
|
Hello,
As Dan wrote there is a space between < and %
added by prettify. Please remove it so it reads
<%
%>
Prettify inserts the space in the middle of these markers
and that causes problem.
Best regards,
Tomasz Janeczko
amibroker.com
----- Original Message -----
From: "J. Biran" <jbiran@xxxxxxxxxxx>
To: <amibroker@xxxxxxxxxxxxxxx>
Sent: Tuesday, July 15, 2008 4:59 PM
Subject: RE: [amibroker] Re: Visit each symbol, like a slide show
>
> It was AFL code checker that flagged this error. Can you
> check on your computer if it passes there?
> Joseph Biran
> ____________________________________________
>
> -----Original Message-----
> From: amibroker@xxxxxxxxxxxxxxx
> [mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf Of liberte721
> Sent: Tuesday, July 15, 2008 3:34 AM
> To: amibroker@xxxxxxxxxxxxxxx
> Subject: [amibroker] Re: Visit each symbol, like a slide
> show
>
> Hmm, thanks. I also see "< %". These should of course be:
>
> <%
> ... // jscript block
> %>
>
> Please fix those manually, since I can't attach the original
> script
> from this computer.
>
> I suspect it was the prettify operation I applied on a copy
> of the
> file that added the spaces. That would be a bug, TJ.
>
> dan
>
>
> --- In amibroker@xxxxxxxxxxxxxxx, "J. Biran" <jbiran@xxx>
> wrote:
>>
>> There seems to be an error at
>>
>> % >
>>
>>
>>
>> You can always attach a file to your mail/
>>
>>
>>
>> Joseph Biran
>> ____________________________________________
>>
>>
>>
>> From: amibroker@xxxxxxxxxxxxxxx
>> [mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf Of Daniel
>> LaLiberte
>> Sent: Monday, July 14, 2008 9:29 PM
>> To: amibroker@xxxxxxxxxxxxxxx
>> Subject: [amibroker] Visit each symbol, like a slide show
>>
>>
>>
>> Here is my script for stepping through each symbol in the
>> list of all symbols. It could be modified in several
>> different ways, and I would like to hear your suggestions.
>> (email directly if you like).
>>
>>
>>
>> By the way, posting afl code to this yahoo group is
>> difficult. I think it would work OK using Outlook (and
>> maybe some other email programs), and maybe if I select
>> "Copy as HTML" in the AmiBroker Editor Preferences. But I
>> am forced to use gmail or yahoo's awful interface, and
> there
>> doesn't appear to be any option to preserve the
> indentation,
>> coloring, and without adding redundant new lines. I hope
>> the following is at least indented correctly, as it
> appears
>> to me now.
>>
>>
>>
>> dan
>>
>>
>>
>>
>>
>> // VisitEachSymbol.afl
>>
>>
>>
>> // Visit each symbol in the list of All symbols.
>>
>> // You can use this like a slide show.
>>
>>
>>
>> // Written by Daniel LaLiberte (daniel.laliberte@xxx),
>> July 2008.
>>
>> // You are free to use this however you want.
>>
>>
>>
>>
>>
>> // Instructions for use:
>>
>> // Select a symbol in your list of all symbols.
>>
>> // Use the "Start" trigger parameter to begin stepping at
>> the current symbol.
>>
>> // It will stop automatically at the end of the list, or
> you
>> can "Stop" at any time,
>>
>> // and "Start" again to continue (not restart).
>>
>> // If you start in a watchlist, or switch charts while
>> stepping, interesting things will happen.
>>
>>
>>
>> if ( ParamTrigger( "Start Stepping", "Step" ) )
>>
>> {
>>
>> StaticVarSetText( "gotoSymbol", "" );
>>
>> StaticVarSetText( "stepping", "yes" );
>>
>> }
>>
>>
>>
>> if ( ParamTrigger( "Stop Stepping", "Stop" ) )
>>
>> {
>>
>> StaticVarSetText( "gotoSymbol", "" );
>>
>> StaticVarSetText( "stepping", "" );
>>
>> }
>>
>>
>>
>> // Number of seconds to delay between each step.
>>
>> delaySeconds = 5;
>>
>>
>>
>>
>>
>>
>>
>> // Implementation note:
>>
>> // You can't use a loop over all symbols like the
> following
>> within one script.
>>
>> // It would cause an infinite loop because the chart
> updates
>> as a result of changing the symbol,
>>
>> // thus executing this script again and restarting the
> loop.
>>
>> /*
>>
>> for (i=0; i<numTickers; i++)
>>
>> {
>>
>> ticker = tickers.getKey(i);
>>
>> JS.setTicker(ticker);
>>
>> }
>>
>> */
>>
>>
>>
>> // Instead of a simple loop, we must use static vars,
>> stepping to the next symbol
>>
>> // each time the script is executed. We add a delay
> using
>> a refresh loop.
>>
>> // Jscript is used to get the list of all symbols, and to
> go
>> to the next symbol.
>>
>>
>>
>>
>>
>>
>>
>> AB = CreateStaticObject( "Broker.Application" );
>>
>>
>>
>> EnableScript( "jscript" );
>>
>>
>>
>> < %
>>
>>
>>
>> var AB = AFL( "AB" );
>>
>> function setTicker( ticker )
>>
>> {
>>
>> AB.ActiveDocument.Name = ticker;
>>
>> }
>>
>>
>>
>> function KeyList ( keys )
>>
>> {
>>
>> this.keys = keys; // ordered list of the keys
>>
>> this.keyIndex = {}; // map from key to index.
>>
>>
>>
>> for ( var i = 0; i < keys.length; i++ )
>>
>> this.keyIndex[keys[i]] = i;
>>
>> }
>>
>>
>>
>> KeyList.prototype.getIndex = function( key )
>>
>>
>>
>> {
>>
>> return this.keyIndex[ key ];
>>
>> }
>>
>>
>>
>> KeyList.prototype.getKey = function( index )
>>
>> {
>>
>> return this.keys[ index ];
>>
>> }
>>
>>
>>
>> KeyList.prototype.getLength = function ()
>>
>> {
>>
>> return this.keys.length;
>>
>> }
>>
>>
>>
>> function getAllTickers ()
>>
>> {
>>
>> var stocks = AB.stocks;
>>
>> var tickerList = stocks.getTickerList( 0 ); // 0 for
>> list of All symbols?
>>
>> var tickers = tickerList.split( ',' );
>>
>>
>>
>> if ( !tickers[tickers.length - 1] )
>>
>> delete tickers[tickers.length - 1]; // Last
> element
>> is empty due to extra comma.
>>
>>
>>
>> var tickerKeyList = new KeyList( tickers );
>>
>>
>>
>> return tickerKeyList;
>>
>> }
>>
>>
>>
>> % >
>>
>> JS = GetScriptObject();
>>
>>
>>
>>
>>
>> function doneWithSymbol ()
>>
>> {
>>
>> // In this test, simply check if the symbol we were
>> supposed to go to is what we see now.
>>
>> // Special case: no gotoSymbol is OK.
>>
>> gotoSymbol = StaticVarGetText( "gotoSymbol" );
>>
>> atSymbol = ( gotoSymbol == "" ) OR ( gotoSymbol ==
>> Name() );
>>
>>
>>
>> // Now delay for some period of time.
>>
>> // One way to cause a delay is to use the IBController
>> Sleep function, as in the following.
>>
>> // But this disrupts normal processing in other
> windows,
>> not completely, but enough to destroy interactivity.
>>
>> /*
>>
>> ibc = GetTradingInterface( "IB" );
>>
>> ibc.sleep(5000);
>>
>> */
>>
>>
>>
>> // Another slightly simpler way is to call
>> RequestTimedRefresh( ) with the desired sleep time.
>>
>> // The time will be rounded to the nearest whole
>> multiple, so it is not exactly a delay time.
>>
>> RequestTimedRefresh( delaySeconds );
>>
>> // But setting the symbol also causes an immediate
>> refresh, which we want to ignore.
>>
>> refreshed = Status( "redrawaction" ) == 1;
>>
>> //_Trace("doneWithSymbol refreshed: " + refreshed);
>>
>>
>>
>> done = atSymbol AND refreshed;
>>
>> return done;
>>
>> }
>>
>>
>>
>> function gotoNextSymbol ()
>>
>> {
>>
>> // Reconstruct the list of all symbols (aka tickers).
>> Yes, every time.
>>
>> tickerKeyList = JS.getAllTickers();
>>
>>
>>
>> // Get the index of the next symbol.
>>
>> nextIndex = 1 + tickerKeyList.getIndex( Name() );
>>
>>
>>
>> if ( tickerKeyList.getLength() - 1 > nextIndex ) // Is
>> the index in range?
>>
>> {
>>
>> // OK, so get the next symbol and go to it.
>>
>> nextSymbol = tickerKeyList.getKey( nextIndex );
>>
>> StaticVarSetText( "gotoSymbol", nextSymbol );
>>
>> JS.setTicker( nextSymbol );
>>
>> }
>>
>> else
>>
>> {
>>
>> // No more symbols, so stop stepping.
>>
>> stepping = "";
>>
>> StaticVarSetText( "stepping", stepping );
>>
>> // RequestTimedRefresh(0); // this is not the way
> to
>> stop the refresh loop.
>>
>> }
>>
>> }
>>
>>
>>
>> stepping = ( "yes" == StaticVarGetText( "stepping" ) );
>>
>>
>>
>> if ( stepping )
>>
>> {
>>
>> // If done with this symbol, go to next symbol.
>>
>> if ( doneWithSymbol() )
>>
>> {
>>
>> gotoNextSymbol();
>>
>> }
>>
>> }
>>
>>
>>
>>
>>
>> Plot( Close, "Close", colorBlack, styleCandle );
>>
>>
>>
>>
>>
>>
>> --
>> Daniel LaLiberte
>> liberte@xxx
>> daniel.laliberte@xxx
>>
>
>
>
> ------------------------------------
>
> Please note that this group is for discussion between users
> only.
>
> To get support from AmiBroker please send an e-mail directly
> to
> SUPPORT {at} amibroker.com
>
> For NEW RELEASE ANNOUNCEMENTS and other news always check
> DEVLOG:
> http://www.amibroker.com/devlog/
>
> For other support material please check also:
> http://www.amibroker.com/support.html
> Yahoo! Groups Links
>
>
>
>
> ------------------------------------
>
> Please note that this group is for discussion between users only.
>
> To get support from AmiBroker please send an e-mail directly to
> SUPPORT {at} amibroker.com
>
> For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
> http://www.amibroker.com/devlog/
>
> For other support material please check also:
> http://www.amibroker.com/support.html
> Yahoo! Groups Links
>
>
>
------------------------------------
Please note that this group is for discussion between users only.
To get support from AmiBroker please send an e-mail directly to
SUPPORT {at} amibroker.com
For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/
For other support material please check also:
http://www.amibroker.com/support.html
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/
|