Erik,
You have to Buy the Bear funds on a Short
signal. Here is some code that allows you to enter the funds you want to trade.
It allows two Long funds and two Bear funds. You can set the date of inception
for the Long and Bear funds and it will trade “myTicker” prior to
those dates. For example you can trade the Rydex funds and trade QQQQ or ^NDX
before they started. This code is probably more than you were looking for, but
it works:
function Date_To_Num(mmddaaaa)
{
mm_ = StrToNum(StrLeft(mmddaaaa,2));
dd_ = StrToNum(StrMid(mmddaaaa,3,2));
aa_ = StrToNum(StrRight(mmddaaaa,4));
RESULT = (10000 * (aa_ - 1900)) + (100 * mm_) + dd_;
return RESULT;
}
LongDate = IIf(DateNum() >= Date_To_Num(LongInception),1,0); //Set to
inception date of Long fund
ShortDate = IIf(DateNum() >= Date_To_Num(ShortInception),1,0); //Set to
inception date of Bear fund
"Long Trades:";
myTicker + " before " + LongInception + " then " + LongFund;
"\nShort Trades:";
myTicker + " before " + ShortInception + " then " + ShortFund;
//Your trading system goes here
//Ultimately you must create BuyLong and
BuyShort as your Buy and Sell conditions
//This one also allows BuyDoubleLong and
BuyDoubleShort such as Rydex Venture and Velocity
Buy = (BuyLong AND Name() == LongFund AND
LongDate)
OR (BuyDoubleLong
AND Name() == DoubleLong AND LongDate)
OR (BuyShort
AND Name() == ShortFund AND ShortDate)
OR (BuyDoubleShort
AND Name() == DoubleShort
AND ShortDate)
OR (LSC
> 0 AND (BuyLong
OR BuyDoubleLong OR netSignal >= 0) AND NOT LongDate AND Name() == myTicker);
Sell = (BuyLong AND (Name() == DoubleLong OR Name() == ShortFund OR Name() == DoubleShort))
OR
(BuyDoubleLong AND (Name() == LongFund OR Name() == ShortFund OR Name() == DoubleShort))
OR
(BuyShort AND (Name() == LongFund OR Name() == DoubleLong OR Name() == DoubleShort))
OR
(BuyDoubleShort AND (Name() == LongFund OR Name() == DoubleLong OR Name() == ShortFund))
OR
((LSC < 0 OR netSignal
<= 0) AND NOT ShortDate AND Name() == myTicker);
//When before ShortDate, Short the Index to simulate. Can never Short
a Fund. Must Buy Inverse funds to effect a short.
Short
= Name() == myTicker AND
NOT ShortDate AND LSC == -1 AND (BuyShort OR BuyDoubleShort OR
netSignal <= 0);
Cover
= LSC != -1 OR netSignal
>= 0;
-----Original Message-----
From: amibroker@xxxxxxxxxxxxxxx
[mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf
Of Erik Skyba
Sent: Sunday, August 14, 2005
18:05
To: amibroker@xxxxxxxxxxxxxxx
Subject: [amibroker] A little help
please.
So I have buy and sell signals created.
If I have two funds, one fund I want to go
long when there is a buy and another (inverse fund) fund I want to go long when
there is a sell or short.
I thought this would
involve using the name() function and an iff statement but I can't seem to
make the trades hit up correctly.
How would I go about doing this?
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 other support material please check also:
http://www.amibroker.com/support.html
YAHOO! GROUPS LINKS