Hi,

I can't seem to autostudy.  I've looked at the archives, and I know I need to 
study at least one class in order to autostudy others.  But when I do the 
below I get:

[EMAIL PROTECTED]:~/Finance-IB-TWS/t$ perl demo.pl 
Can't locate object method "new" via package 
"com::ib::client::Contract" (perhaps you forgot to load 
"com::ib::client::Contract"?) at demo.pl line 38, <GEN8> line 16.

If I uncomment the studying of the Contract class everything works.  Maybe I 
misunderstand autostudy, but I thought it was an ease of use thing, so you 
don't have to list every java class you might use

Thanks
Jay

use Finance::IB::TWS;
use Finance::IB::TWS::callback;

use Inline (
    Java        => 'STUDY',
    AUTOSTUDY       => 1,
    STUDY       => [ 
                    'com.ib.client.EClientSocket',
#                   'com.ib.client.Contract',
                  ],
);


my $callback = Finance::IB::TWS::callback->new();

my $tws = Finance::IB::TWS->new(callback=>$callback);

my $ib       = $tws->get_EClientSocket();
my $api      = $tws->get_api();

####                        Host         Port    Client_ID
####                        ----         ----    ---------
my @tws_GUI_location = qw/  127.0.0.1    7496       15     /;

$ib->eConnect(@tws_GUI_location);
$api->OpenCallbackStream() ;

my $flag = 1;

while ((my $got_data = $api->WaitForCallback(.01)) > -1) {
    if ($got_data) {
        print "process data\n";
        $api->ProcessNextCallback() ;
    }
    else {

        if ($flag) {
            my $contract = com::ib::client::Contract->new();
            $contract->{m_symbol} = 'QQQQ';
            $contract->{m_secType} = 'STK';
            $contract->{m_exchange} = 'SMART';
            my $contract_id = 50;
            $ib->reqMktData($contract_id, $contract);
            $flag=0;
        }
        print "No data to process\n";
    }
}

Reply via email to