The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

HiSQuotes::MICEX - Site-specific class for retrieving historical stock quotes via Moscow Interbank Currency Exchange (MICEX) - Russia.

SYNOPSIS

  use HiSQuotes::MICEX;
  
  $micex = HiSQuotes::MICEX->new
     (
      'proxy-host'  => "172.31.102.243",
      'proxy-port   => "1433",
      'username'    => "name",
      'password'    => "password",
      'cookie-file' => "cookies",
      'timeout'     => 50;
     );

  $micex->table("full");
  ...
  $micex->board("all");

  my ($date_from, $date_to) = $micex->quotes("SYM", "PINFO");
      ...
  my $hash_ref = $micex->quotes("SYM", "LAST");  
      ...
  my $hash_ref = $micex->quotes("SYM", "21.07.2008", "05.09.2008");   

CONSTRUCTOR

$micex = HiSQuotes::MICEX->new([%options])

Possible options are:

    KEY                DEFAULT
-----------      --------------------
proxy-host        *_proxy environment
proxy-port        8080,
username          undef
password          undef
cookie-file       micex_cookies
timeout           60

ATTRIBUTES

$micex->table
$micex->table($field)
 Get/Set format.
 Possible fields are: FULL, SHORT (default).

 $current_value = $micex->table;
 $old_value = $micex->table("FULL")
$micex->board
$micex->board($board)
 Get/Set board id.
 Possible id are: ALL, MAIN (default), NDM, REPO, RPMA, SMALL.

 $current_value = $micex->board;
 $old_value = $micex->board("ALL")

REQUEST METHODS

$micex->quotes("SYM", "PINFO")

Return a DateTime trade period for stock symbol.

my ($date_from, $date_to) = $micex->quotes("SYM", "PINFO");

$micex->quotes("SYM", "LAST")

Return a hash ref, for last trade date.

my $hash_ref = $micex->quotes("SYM", "LAST");

$micex->quotes("SYM", dd.mm.yyyy, dd.mm.yyyy)

Return a hash ref, for trade period.

my $hash_ref = $micex->quotes("SYM", "21.07.2008", "05.09.2008");

Hash fields

  # $hash_ref->{$trade_date}{$board}{$field}
        
  Field                   SHORT         FULL        
  -----                  -------       -------
  TRADEDATE                 X             X
  BOARDID                   X             X
  STOCKSYMBOL               X             X
  TABLE                     X             X
  
  VOLUME                    X             X
  VALUE                     X             X
  NUMTRADES                 X             X
   
  OPEN                      X             X
  LOW                       X             X
  HIGH                      X             X
  WAPRICE                   X             X
   
  TRENDWAP                  X             X
  MARKETPRC1                X             X
  MARKETPRC2                X             X
  ADMQUOTE                  X             X
  MONTHLYCAP                X             X
        
  ISIN                                    X
    
  FACEVALUE                               X
  
  PREV                                    X
  PRLEGCLPRC                              X
  OPENPERIOD                              X
  LEGOPPRICE                              X
  LEGCLPRICE                              X
  CLOSE                                   X
  CLOSEPER                                X
    
  TRENDCLOSE                              X
  TRENDCLSPR                              X
  TRENDWAPPR                              X
    
  OPENVAL                                 X
  CLOSEVAL                                X
    
  HIGHBID                                 X
  LOWOFFER                                X
    
  BID                                     X
  OFFER                                   X
    
  MPVALTRD                                X
  MP2VALTRD                               X
  ADMVALUE                                X
    
  ISSUESIZE                               X
  DAILYCAP                                X

EXAMPLES

 use HiSQuotes::MICEX;


 my $proxy_host  = "172.31.102.243";
 my $proxy_port  = "1433";
 #my $username    = "name";
 #my $password    = "password";
 #my $cookie_file = "cookies";
 #my $timeout     = 50;

 my $micex = HiSQuotes::MICEX->new('proxy-host'  => $proxy_host, 
                                   'proxy-port'  => $proxy_port);



 my $stock_symbol = "GMKN"; 

 my ($date_from, $date_to) = $micex->quotes($stock_symbol, "pinfo");
 print_period($stock_symbol, $date_from, $date_to);

 my $hash_ref = $micex->quotes($stock_symbol, "last"); 
 print_quotes($hash_ref);

 $date_from = "21.07.2008";
 $date_to   = "05.09.2008";

 $micex->table("full");
 $micex->board("all");
 
 $hash_ref = $micex->quotes($stock_symbol, $date_from, $date_to);
 print_quotes($hash_ref);
 
 
 sub print_period {
  my ($stock_symbol, $date_from, $date_to) = @_;
        
        $~ = "PERIODFT";
        write();
 }
 
 sub print_quotes {
        my $hash_ref = shift;
        
        $~ = "QUOTEFT";
        
  foreach $tradeDate (keys %$hash_ref) {
    foreach $boardID (keys %{$hash_ref->{$tradeDate}}) {
      $hashPtr = \%{$hash_ref->{$tradeDate}{$boardID}};
      
      write();
    }
  } 
 }
 

format PERIODFT =

 ---------------------------------------
|  STOCKSYMBOL:       @>>>>>>>>>>>>>>>  |   
   $stock_symbol,
|  DATEFROM:                @>>>>>>>>>  |
   $date_from->dmy,
|  DATETO:                  @>>>>>>>>>  |
   $date_to->dmy
 ---------------------------------------   
.

format QUOTEFT =

 ---------------------------------------
|  TRADEDATE:      @>>>>>>>>>>>>>>>>>>  |       
   $hashPtr->{'TRADEDATE'},
|  STOCKSYMBOL:    @>>>>>>>>>>>>>>>>>>  |   
   $hashPtr->{'STOCKSYMBOL'},
|  TABLE:          @>>>>>>>>>>>>>>>>>>  |   
   $hashPtr->{'TABLE'},
|  ISIN:          ~@>>>>>>>>>>>>>>>>>>  |
   $hashPtr->{'ISIN'},
|  BOARDID:        @>>>>>>>>>>>>>>>>>>  |     
   $hashPtr->{'BOARDID'},
|                                       |
|  FACEVALUE:      @#############.####  |
   $hashPtr->{'FACEVALUE'}, 
|  VOLUME:         @>>>>>>>>>>>>>>>>>>  | 
   $hashPtr->{'VOLUME'},                  
|  VALUE:          @###############.##  |     
   $hashPtr->{'VALUE'},
|  NUMTRADES:      @>>>>>>>>>>>>>>>>>>  |
   $hashPtr->{'NUMTRADES'},
|                                       |  
|  PREV:           @#############.####  |
   $hashPtr->{'PREV'},
|  PRLEGCLPRC:     @#############.####  |
  $hashPtr->{'PRLEGCLPRC'},
|  OPENPERIOD:     @#############.####  |
  $hashPtr->{'OPENPERIOD'},
|  OPEN:           @#############.####  |
   $hashPtr->{'OPEN'},
|  LEGOPPRICE:     @#############.####  |
   $hashPtr->{'LEGOPPRICE'},
|  LOW:            @#############.####  |
   $hashPtr->{'LOW'},
|  HIGH:           @#############.####  |
   $hashPtr->{'HIGH'},
|  LEGCLPRICE:     @#############.####  |
   $hashPtr->{'LEGCLPRICE'},          
|  CLOSE:          @#############.####  |
   $hashPtr->{'CLOSE'},   
|  CLOSEPER:       @#############.####  |
   $hashPtr->{'CLOSEPER'},
|  WAPRICE:        @#############.####  |
   $hashPtr->{'WAPRICE'},   
|                                       |  
|  TRENDCLOSE:     @#############.####  |
   $hashPtr->{'TRENDCLOSE'},
|  TRENDCLSPR:     @###############.##  |
   $hashPtr->{'TRENDCLSPR'},
|  TRENDWAP:       @#############.####  |
   $hashPtr->{'TRENDWAP'}, 
|  TRENDWAPPR:     @###############.##  |
   $hashPtr->{'TRENDWAPPR'},
|                                       | 
|  OPENVAL:        @#############.####  |
   $hashPtr->{'OPENVAL'},
|  CLOSEVAL:       @#############.####  |
   $hashPtr->{'CLOSEVAL'},
|                                       |  
|  HIGHBID:        @#############.####  |
   $hashPtr->{'HIGHBID'},   
|  LOWOFFER:       @#############.####  |
   $hashPtr->{'LOWOFFER'}, 
|                                       |   
|  BID:            @#############.####  |
   $hashPtr->{'BID'},     
|  OFFER:          @#############.####  |
   $hashPtr->{'OFFER'}, 
|                                       |  
|  MARKETPRC1:     @#############.####  |
   $hashPtr->{'MARKETPRC1'}, 
|  MARKETPRC2:     @#############.####  |
   $hashPtr->{'MARKETPRC2'},  
|  ADMQUOTE:       @#############.####  |
   $hashPtr->{'ADMQUOTE'}, 
|                                       |  
|  MPVALTRD:       @###############.##  |
   $hashPtr->{'MPVALTRD'}, 
|  MP2VALTRD:      @###############.##  |
   $hashPtr->{'MP2VALTRD'},
|  ADMVALUE:       @###############.##  |
   $hashPtr->{'ADMVALUE'},  
|                                       |  
|  ISSUESIZE:      @##################  |
   $hashPtr->{'ISSUESIZE'},
|  DAILYCAP:       @###############.##  |
   $hashPtr->{'DAILYCAP'}, 
|  MONTHLYCAP:     @###############.##  |
   $hashPtr->{'MONTHLYCAP'}     
 ---------------------------------------
.

COPYRIGHT

Copyright (c) 2008, Novikov Artem Gennadievich (novikovag@gmail.com). All Rights Reserved. This program is free software. You may copy and/or redistribute it under the same terms as Perl itself.