Hello -
Finance::QuoteOptions->retrieve was working fine for me up until Yahoo changed the 'look and
feel' of their finance page. Now, when I attempt to gather all the options chains, it loops almost
infinitely (see prof.out for profile of where it is stuck).
I tried forcing the SW to go to CBOE, but that didn't work for some different reasons.
I am running this in MAC OSX Lion under MacPorts - Perl 5.12.3
I have the latest version of Finance::QuoteOptions
Hope this helps, let me know if any additional info is needed
Ryan
Subject: | optiondownloader (1).pl |
#!/opt/local/bin/perl
use Finance::QuoteOptions;
#use Finance::Quote;
# TO DO/NOTABLE
# Finance::Options::Calc - Present Theoretical Value
# Finance::Performance::Calc - Performance Calculation
# Check Out Genius Traer
# Symbole Variable - Hard Coded Temporarily, We'll Add Parser from List Later
my $symb = "NUAN";
my $oq = Finance::QuoteOptions->new;
$oq->source('cboe');
## Header for CSV Option Quotes
print "SYMB, OPTION_SYMB, TYPE, EXP, STRIKE, BID, ASK, LAST, OPENINT, VOLUME\n";
## Repeat for Each Symbol
$oq->symbol($symb);
die 'Retreive Failed' unless $oq->retrieve;
foreach (@{$oq->expirations})
{
my $exp = $_;
#Calls First
foreach (@{$oq->calls($exp)})
{
my $call = $_;
printOptionRecord($symb,"CALL", $exp,$call);
}
#Puts Second
foreach (@{$oq->puts($exp)})
{
my $call = $_;
printOptionRecord($symb,"PUTS", $exp,$call);
}
}
## Print Optien Quote Table (CSV)
# SYMB = Underlying Symbol
# OPTION_SYMB = Option Symbol
# TYPE = PUT or CALL
# EXP = Expiration Date
# STRIKE = Strike Price
# BID
# ASK
# LAST
# OPENINT = Open Interest
# VOLUME
#Function Accepts: Symbol, Put or Call, Hash Array Ref to Option Data
sub printOptionRecord{
print @_[0], ","; # SYMB
print @_[3]->{symbol}, ","; # OPTION_SYMB
print @_[1], ","; # TYPE = Put or Call
print @_[2], ","; # EXP
print @_[3]->{strike}, ",";
print @_[3]->{bid}, ",";
print @_[3]->{ask}, ",";
print @_[3]->{last}, ",";
print @_[3]->{open}, ",";
print @_[3]->{volume};
#print @_[2]->{change}, ",";
#print @_[2]->{in_the_money};
print "\n";
};
Subject: | prof.out |
Message body not shown because it is not plain text.