-
Notifications
You must be signed in to change notification settings - Fork 156
/
SpreadValidation.h
68 lines (50 loc) · 1.99 KB
/
SpreadValidation.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
/************************************************************************
* Copyright(c) 2019, 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. *
************************************************************************/
/*
* File: SpreadValidation.h
* Author: [email protected]
* Project: lib/TFTrading
* Created on May 27, 2019, 8:59 AM
*/
#ifndef SPREADCANDIDATETWOLEGS_H
#define SPREADCANDIDATETWOLEGS_H
#include <vector>
#include <TFTrading/Watch.h>
#include "SpreadCandidate.h"
namespace ou {
namespace tf {
// Validate Quote Spread on a collection of Options
class SpreadValidation {
public:
using pWatch_t = ou::tf::Watch::pWatch_t;
SpreadValidation();
SpreadValidation( size_t nLegs );
SpreadValidation( const SpreadValidation& );
SpreadValidation( const SpreadValidation&& );
~SpreadValidation();
void SetLegCount( size_t nLegs );
void SetWatch( size_t ixLeg, pWatch_t pWatch );
pWatch_t GetWatch( size_t ixLeg );
void ClearWatch( size_t ixLeg );
bool IsActive() const;
bool Validate( size_t nDuration );
void ClearCandidates();
protected:
private:
using vSpreadCandidate_t = std::vector<SpreadCandidate>;
vSpreadCandidate_t m_vSpreadCandidate;
};
} // namespace tf
} // namespace ou
#endif /* SPREADCANDIDATETWOLEGS_H */