-
Notifications
You must be signed in to change notification settings - Fork 163
/
Copy pathFundamentals.h
81 lines (72 loc) · 3.06 KB
/
Fundamentals.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/************************************************************************
* Copyright(c) 2021, One Unified. All rights reserved. *
* email: [email protected] *
* *
* This file is provided as is WITHOUT ANY WARRANTY *
* without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
* *
* This software may not be used nor distributed without proper license *
* agreement. *
* *
* See the file LICENSE.txt for redistribution information. *
************************************************************************/
// started: 2021/09/06
#pragma once
#include <string>
#include <boost/date_time/gregorian/greg_date.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
#include <TFTrading/TradingEnumerations.h>
#include "SecurityType.h"
namespace ou { // One Unified
namespace tf { // TradeFrame
namespace iqfeed { // IQFeed
struct Fundamentals { // filled by TFIQFeed/Symbol.cpp
std::string sSymbolName;
std::string sCompanyName;
std::string sExchangeRoot; // usable for IB?
std::string sOptionRoots;
std::string sExchange;
int nPrecision;
int nFormatCode;
int nContractSize;
int nAverageVolume; // multiply by 1000, over four weeks
uint64_t nSIC;
uint64_t nNAICS; // https://www.census.gov/naics/
ESecurityType eSecurityType;
ou::tf::OptionSide::EOptionSide eOptionSide;
double dblHistoricalVolatility;
double dblStrikePrice;
double dblPriceEarnings;
double dblAssets;
double dblLiabilities;
double dblCommonSharesOutstanding; // 1000's of shares
double dbl52WkHi;
double dbl52WkLo;
double dblDividendAmount; // current actual dividend
double dblDividendRate; // annualized amount of actual dividend
double dblDividendYield; // annual dividends / current market price
double dblTickSize;
boost::gregorian::date datePayed; // last dividend pay date
boost::gregorian::date dateExDividend;
boost::gregorian::date dateExpiration;
boost::posix_time::time_duration timeSessionOpen; // futures, futures options
boost::posix_time::time_duration timeSessionClose; // futures, futures options
Fundamentals()
: nAverageVolume {}, nPrecision {}, nFormatCode {}
, nSIC {}, nNAICS {}
, eSecurityType( ESecurityType::Unknown )
, dblHistoricalVolatility {}, dblStrikePrice {}
, dblPriceEarnings {}, dblAssets {}, dblLiabilities {}
, dblCommonSharesOutstanding {}
, dbl52WkHi {}, dbl52WkLo {}
, dblDividendAmount {}, dblDividendRate {}, dblDividendYield {}
, dblTickSize {}
, datePayed( boost::posix_time::not_a_date_time )
, dateExDividend( boost::posix_time::not_a_date_time )
, dateExpiration( boost::posix_time::not_a_date_time )
{}
};
} // namespace iqfeed
} // namespace tf
} // namespace ou