I realize that Herman and others suggested include files and static variables as ways to assign differing constant values depending on the symbol being processed. I am about to turn there, but can I ask again if anyone has a comment or suggestion about the simple _vbscript_ code below and my problem in getting it to perform as intended.
These few lines seem, to me, to be FAR more simple than any loop construction with naming conventions to assign several simple values to constant variables dependent on the symbol name.
Please take a look and offer a comment. I understand that not many may know the _vbscript_ syntax and thus cannot comment, but some of you out there know it.
thanks.
From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf Of Ken Close
Sent: Friday, November 07, 2008 2:12 PM
To: amibroker@xxxxxxxxxxxxxxx
Subject: [amibroker] _vbscript_ in AFL worked in 2002, not now
I used this code in 2002 successfully (on whatever version of AB was running then).
Today I stuck it in some code and while it did not produce an error, it seems not to recognize the change in symbols.
An explore after these lines shows that all symbols have the same BuyLevel = 174 and SellLevel = 80 saying that the Select command "fell through" to the "else" part even thou the watchlist contained only the five ETF symbols listed in the case statements.
Can anyone spot what might be wrong or missing?
What is the modern day way of doing this? I tried IF statements (not IIF) and only the last IF statement was operative, ie, only the last IF corresponding to the last symbol in the watchlist was operative. The modern way will be more complex loops, yes? The Case statements below seem pretty simple if I could get them to work.
Thanks.
EnableScript("_vbscript_");
<%
'BSSC Codes: 1 = Buy/Sell 2 = Short/Cover 3 = Both / SL = Stop Loss percentage
Stock = AFL("ticker") : BuyLevel = 0 : SellLevel = 0
Select case Stock
case
"DIA" BuyLevel = 194 : SellLevel = 130
case
"SPY" BuyLevel = 190 : SellLevel = 130
case
"IWM" BuyLevel = 176 : SellLevel = 73
case
"QQQQ" BuyLevel = 192 : SellLevel = 146
case
"XLE" BuyLevel = 189 : SellLevel = 117
case
else BuyLevel = 174: SellLevel = 80
End Select
AFL("BuyLevel") = BuyLevel
AFL("SellLevel") = SellLevel
%>
|