PureBytes Links
Trading Reference Links
|
Jayson, Graham, & Andrew,
Thanks for your tips.
Let me give me more details as to how I want to use
this. When backtesting, I need to determine, for each bar, if this ticker
is part of a certain watch list. If so, then I will accept the buy
signal, otherwise on.
In my code sample, if the current bar is in the
first half of year 2000, then tickers need to be in watchlist 7 in order to
accept buy signals. If the current bar is in the second half of year 2000,
then tickers need to be in watchlist 9 in order to accept buy
signals.
I was hoping to do something like:
Buy = Buyconditions AND
InWatchList(wlnum);
So, in this case, is the solution to use Andrew's
first code snippet ? Or is there a simpler way to do this ?
Thanks,
HB
<BLOCKQUOTE
>
----- Original Message -----
<DIV
>From:
<A title=a.perrin@xxxxxxxxxxxxxxx
href="">Andrew Perrin
To: <A title=amibroker@xxxxxxxxxxxxxxx
href="">amibroker@xxxxxxxxxxxxxxx
Sent: Tuesday, December 16, 2003 8:34
PM
Subject: Re: [amibroker] InWatchList
help
HB
I believe the problem is that the function
InWatchlist( ) does not accept an array as arguments. A solution is to
specify array elements.
<FONT
color=#008000 size=1>
<FONT color=#000000
size=2>/////////////////////////////////////////////////////////////////////
// returns 1 if Ticker in Given watchlist on
specified date //
<FONT color=#000000
size=2>////////////////////////////////////////////////////////////////////
StartBar = LastValue( <FONT
color=#0000ff>ValueWhen( Status(<FONT
color=#ff00ff>"firstbarinrange"), BarIndex()
) );
FinishBar = LastValue( <FONT
color=#0000ff>ValueWhen( Status(<FONT
color=#ff00ff>"lastbarinrange"), BarIndex()
) );
today = DateNum();
i = StartBar;
while (i <= FinishBar)
{
ZeroKH1[i] = IIf(today[i]>=1000101 AND today[i]
<=1000630, 7,0);
ZeroKH2[i] = IIf(today[i] >=1000701 AND today[i]
<=1001231, 9,0);
wlnum[i] = ZeroKH1[i] + ZeroKH2[i];
inWL[i] = InWatchList(wlnum[i]);
i = i + 1;
}
Filter = 1;
AddColumn(InWL,"inWL",1.0);
This will work, it will however compare ticker to watchlist num 1
outside of the dates specified and will give a true result if Watchlist 1 does
contain ticker.
Another solution that may overcome this is to use nested IIf
statements.
<FONT
color=#000000>/////////////////////////////////////////////////////////////////////
// returns 1 if Ticker in Given watchlist on
specified date //
<FONT
color=#000000>////////////////////////////////////////////////////////////////////
StartBar = LastValue( <FONT
color=#0000ff>ValueWhen( Status(<FONT
color=#ff00ff>"firstbarinrange"), BarIndex()
) );
FinishBar = LastValue( <FONT
color=#0000ff>ValueWhen( Status(<FONT
color=#ff00ff>"lastbarinrange"), BarIndex()
) );
today = DateNum();
WL1 = 1; // first
period <FONT
color=#008000>watchlist
WL2 = 2; //<FONT
face="Courier New" color=#008000> second period watchlist
WLempty = 56; <FONT
color=#008000>// specify an
empty watchlist
i = StartBar;
while (i <= FinishBar)
{
wlnum[i] =
IIf(today[i] >=<FONT
color=#ff00ff>1000101 AND today[i] <=<FONT
color=#ff00ff>1000630, WL1,
IIf(today[i] >=1000701 AND
today[i] <=1001231, <FONT
face="Courier New">WL2,
WLempty));
inWL[i] = <FONT
color=#0000ff>InWatchList(wlnum[i]);
i = i + 1;
}
Filter = 1;
AddColumn(InWL,"inWL",1.0);
If you are doing something more complex in this area, perhaps the
following AFL might help. Watchlist were set up to reflect the
composition of certain indexes at 6 mth intervals. Tickers were selected that
were part of the index at the start of each six month period.
Hope this helps, watch those line returns,
Andrew
<FONT color=#000000
size=2>////////////////////////////////////////////////////////////////////////////////////////////////
// ASX300/ASX200 returns 1 if Ticker in
ASX300/ASX200 in given month. (Range 2000 on). //
<FONT color=#000000
size=2>////////////////////////////////////////////////////////////////////////////////////////////////
StartBar = LastValue( <FONT
color=#0000ff>ValueWhen( Status(<FONT
color=#ff00ff>"firstbarinrange"), BarIndex()
) );
FinishBar = LastValue( <FONT
color=#0000ff>ValueWhen( Status(<FONT
color=#ff00ff>"lastbarinrange"), BarIndex()
) );
Yr = Year();
Mth = Month();
Ticker = Name();
i = StartBar;
while (i <= FinishBar)
{
WatchlistNum[i] = <FONT
color=#0000ff>IIf(Yr[i] ==2000, <FONT
color=#0000ff>IIf(Mth[i] <7, <FONT
color=#ff00ff>30,31),
IIf(Yr[i] ==<FONT
color=#ff00ff>2001, IIf(Mth[i] <<FONT
color=#ff00ff>7, 32,<FONT
color=#ff00ff>33),
IIf(Yr[i] ==<FONT
color=#ff00ff>2002, IIf(Mth[i] <<FONT
color=#ff00ff>7, 34,<FONT
color=#ff00ff>35),
IIf(Yr[i] ==<FONT
color=#ff00ff>2003, IIf(Mth[i] <<FONT
color=#ff00ff>7, 36,<FONT
color=#ff00ff>37),39))));
InASX300[i] = <FONT face="Courier New"
color=#0000ff>InWatchList(
WatchlistNum[i] );
WatchlistNum[i] = <FONT
color=#0000ff> <FONT
color=#0000ff>IIf(Yr[i] ==2000, <FONT
color=#0000ff>IIf(Mth[i] <7, <FONT
color=#ff00ff>40,41),
IIf(Yr[i] ==<FONT
color=#ff00ff>2001, IIf(Mth[i] <<FONT
color=#ff00ff>7, 42,<FONT
color=#ff00ff>43),
IIf(Yr[i] ==<FONT
color=#ff00ff>2002, IIf(Mth[i] <<FONT
color=#ff00ff>7, 44,<FONT
color=#ff00ff>45),
IIf(Yr[i] ==<FONT
color=#ff00ff>2003, IIf(Mth[i] <<FONT
color=#ff00ff>7, 46,<FONT
color=#ff00ff>47),49))));
InASX200[i] = <FONT face="Courier New"
color=#0000ff>InWatchList(
WatchlistNum[i] );
i = i + 1;
}
Filter = InASX300;
AddColumn(InASX300,"in
ASX300");
AddColumn(InASX200,"on ASX200");
----- Original Message -----
<BLOCKQUOTE
>
<DIV
>From:
HB
To: <A title=amibroker@xxxxxxxxxxxxxxx
href="">amibroker@xxxxxxxxxxxxxxx
Sent: Wednesday, December 17, 2003 6:21
AM
Subject: [amibroker] InWatchList
help
Hello,
I'm getting an error with the last line of
following code. Something about a bad argument. Can someone
please help.
<FONT face=Arial
size=2>//////////////////////////////////////
today = DateNum();
ZeroKH1 = IIf(today>=1000101 AND today
<=1000630, 7,0);ZeroKH2 = IIf(today>=1000701 AND today
<=1001231, 9,0);
wlnum = ZeroKH1 + ZeroKH2;
Filter = 1;
<FONT face=Arial
size=2>AddColumn(InWatchList(wlnum),"inWL",1.0);
<FONT face=Arial
size=2>//////////////////////////////////////
Thanks,
HBSend BUG REPORTS to
bugs@xxxxxxxxxxxxxSend SUGGESTIONS to
suggest@xxxxxxxxxxxxx-----------------------------------------Post
AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web page:
<A
href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check
group FAQ at: <A
href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Yahoo! Groups Links
To visit your group on the web, go to:<A
href="">http://groups.yahoo.com/group/amibroker/
To unsubscribe from this group, send an email to:<A
href="">amibroker-unsubscribe@xxxxxxxxxxxxxxx
Your use of Yahoo! Groups is subject to the <A
href="">Yahoo! Terms of Service.
Send BUG REPORTS to
bugs@xxxxxxxxxxxxxSend SUGGESTIONS to
suggest@xxxxxxxxxxxxx-----------------------------------------Post
AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web page: <A
href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check
group FAQ at: <A
href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Yahoo! Groups Links
To visit your group on the web, go to:<A
href="">http://groups.yahoo.com/group/amibroker/
To unsubscribe from this group, send an email to:<A
href="">amibroker-unsubscribe@xxxxxxxxxxxxxxx
Your use of Yahoo! Groups is subject to the <A
href="">Yahoo! Terms of Service.
Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Yahoo! Groups Links
To visit your group on the web, go to:http://groups.yahoo.com/group/amibroker/
To unsubscribe from this group, send an email to:amibroker-unsubscribe@xxxxxxxxxxxxxxx
Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
|