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

Re: [amibroker] Simulating Option Trading



PureBytes Links

Trading Reference Links

Hello,
 
      How to get options data for NIFTY that can be fed to amibroker in realtime.?
 
Regards,
John.

--- On Sat, 9/13/08, Super Man <z35007@xxxxxxxxx> wrote:
From: Super Man <z35007@xxxxxxxxx>
Subject: [amibroker] Simulating Option Trading
To: amibroker@xxxxxxxxxxxxxxx
Date: Saturday, September 13, 2008, 9:52 AM

I was trying to simulate option trading using Amibroker. For my Index, I have imported the near month and far month option data as follows:

A ticker symbol IND_2000_CE_ 1, means a call option expiring in the near month with a strike price of 2000. IND_2000_CE_ 2 would mean an option expiring a month after the current month.

Now, I want to implement a calendar spread as follows. First, I will identify the closest expiry price on the 13th of each month. Then, I will short the far month (eg IND_2000_CE_ 2) and buy the near month series (IND_2000_CE_ 1). On the option expiry day, I will cover the Far month series and sell the near month series. My code looks something like this.

SetTradeDelays( 0,0,0,0);
SetOption("PriceBoundChecking",False);

y = Year();
m = Month();
d = Day();
w = DayOfWeek();
IndexC = Close;
Buy=Sell=0;
DayBuy = 13;  //Optimize("Day",0,1,23,1);
for(i=0; i < BarCount; i++){
    if(d[i] == DayBuy){
        Buy[i] = 1;       
        //Short[i] = 1;
        NP = int(IndexC[i] /100)*100; //Find the closest series
        TickerNear = "NIFTY_"+NP+"_PE_1";
        TickerFar = "NIFTY_"+NP+"_PE_2";
        ShortArray = Foreign(TickerNear,"Close");
        BuyArray = Foreign(TickerFar,"Close");
        BuyPrice[i] = BuyArray[i]- ShortArray[ i];           
        //ShortPrice[ i] = ShortArray[i] ;
    }
    if(ExpiryDay( y[i],m[i] ,d[i],w[i] )){
        Sell[i] = 1;
        //Cover[i] = 1;
        SellArray = Foreign(TickerFar,"Close");
        CoverArray = Foreign(TickerNear,"Close");
        SellPrice[i] = SellArray[i] -CoverArray[ i];               
        //CoverPrice[ i] = CoverArray[i] ;       
    }
}
Buy=ExRem(Buy, Sell);
Sell=ExRem(Sell, Buy);

Currently, I am facing two problems:

1. Though I am able to use the price of options when buying selling (using Foreign), when I do a Buy and Short on the same day, Amibroker automatically interprets it either as a Buy or Sell depending on backtester settings (instead of a Buy and Short which will be later followed with a Sell and Cover). Is there any way to force Amibroker to accept a buy and short for the same day?

2. Though the code above gives correct results, I am not able to exploit the complete power of Backtester because the drawdown figures are meaningless (It assumes, it is deriving the price from the index -- where as it is working on a different ticker (for the options). Any fix to this problem?

Thanks,
Zee

__._,_.___

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




Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___