00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00041
#ifndef FinancePreprocVMatrix_INC
00042
#define FinancePreprocVMatrix_INC
00043
00044
#include "RowBufferedVMatrix.h"
00045
#include "VMat.h"
00046
00047
namespace PLearn {
00048
using namespace std;
00049
00050 class FinancePreprocVMatrix:
public RowBufferedVMatrix
00051 {
00052 typedef RowBufferedVMatrix inherited;
00053
00054
public:
00055
00056 VMat underlying;
00057 TVec<string> asset_name;
00058 bool add_tradable;
00059 bool add_last_day_of_month;
00060 bool add_moving_average;
00061 bool add_rollover_info;
00062 int min_volume_threshold;
00063 TVec<string> prices_tag;
00064 TVec<int> moving_average_window;
00065 string volume_tag;
00066 string date_tag;
00067 string expiration_tag;
00068 int last_day_cutoff;
00069 bool last_date_is_last_day;
00070
00071
protected:
00072
00073 TVec<int> volume_index;
00074 TVec<int> price_index;
00075 TVec<int> expiration_index;
00076 Vec last_day_of_month_index;
00077 int max_moving_average_window;
00078 TVec< TVec<int> >
rollover_date;
00079 Vec row_buffer;
00080
00081
public:
00082
00083
00084
00085
00086
00087
00088
00089
FinancePreprocVMatrix();
00090
00093
FinancePreprocVMatrix(
VMat vm,
TVec<string> the_asset_names,
00094
bool add_tradable_info=
true,
bool add_last_day=
false,
00095
bool add_moving_average_stats=
false,
bool add_roll_over_info=
false,
00096
int threshold=20,
TVec<string> the_price_tags=
TVec<string>(),
00097
TVec<int> moving_average_window_length=
TVec<int>(),
00098
string the_volume_tag=
"volume:level",
string the_date_tag=
"Date",
00099
string the_expiration_tag=
"expiration-date",
int the_last_day_cutoff=0,
00100
bool last_date_is_a_last_day=
false);
00101
00102
00103
00104
00105
00106
private:
00108
00109
void build_();
00110
00111
protected:
00113
00114
static void declareOptions(
OptionList& ol);
00115
00116
void setVMFields();
00117
00118
virtual void getNewRow(
int i,
const Vec& v)
const;
00119
00120
public:
00121
00122
00123
virtual void build();
00124
00126
virtual void makeDeepCopyFromShallowCopy(map<const void*, void*>& copies);
00127
00129
PLEARN_DECLARE_OBJECT(
FinancePreprocVMatrix);
00130 };
00131
DECLARE_OBJECT_PTR(
FinancePreprocVMatrix);
00132
00133 }
00134
#endif