-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmargin_models.go
100 lines (92 loc) · 5.7 KB
/
margin_models.go
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
package tasty
import "github.com/shopspring/decimal"
type PositionEntry struct {
InstrumentSymbol string `json:"instrument-symbol"`
InstrumentType InstrumentType `json:"instrument-type"`
Quantity decimal.Decimal `json:"quantity"`
AverageOpenPrice StringToFloat32 `json:"average-open-price"`
ClosePrice decimal.Decimal `json:"close-price"`
FixingPrice StringToFloat32 `json:"fixing-price"`
StrikePrice decimal.Decimal `json:"strike-price,omitempty"`
OptionType OptionType `json:"option-type,omitempty"`
DeliverableQuantity decimal.Decimal `json:"deliverable-quantity,omitempty"`
ExpirationDate string `json:"expiration-date,omitempty"`
}
type Holding struct {
Description string `json:"description"`
MarginRequirement decimal.Decimal `json:"margin-requirement"`
MarginRequirementEffect PriceEffect `json:"margin-requirement-effect"`
InitialRequirement decimal.Decimal `json:"initial-requirement"`
InitialRequirementEffect PriceEffect `json:"initial-requirement-effect"`
MaintenanceRequirement decimal.Decimal `json:"maintenance-requirement"`
MaintenanceRequirementEffect PriceEffect `json:"maintenance-requirement-effect"`
IncludesWorkingOrder bool `json:"includes-working-order"`
BuyingPower decimal.Decimal `json:"buying-power"`
BuyingPowerEffect PriceEffect `json:"buying-power-effect"`
PositionEntries []PositionEntry `json:"position-entries"`
}
type MarginGroup struct {
Description string `json:"description"`
Code string `json:"code"`
UnderlyingSymbol string `json:"underlying-symbol"`
UnderlyingType string `json:"underlying-type"`
ExpectedPriceRangeUpPercent decimal.Decimal `json:"expected-price-range-up-percent"`
ExpectedPriceRangeDownPercent decimal.Decimal `json:"expected-price-range-down-percent"`
PointOfNoReturnPercent decimal.Decimal `json:"point-of-no-return-percent"`
MarginCalculationType string `json:"margin-calculation-type"`
MarginRequirement decimal.Decimal `json:"margin-requirement"`
MarginRequirementEffect PriceEffect `json:"margin-requirement-effect"`
InitialRequirement decimal.Decimal `json:"initial-requirement"`
InitialRequirementEffect PriceEffect `json:"initial-requirement-effect"`
MaintenanceRequirement decimal.Decimal `json:"maintenance-requirement"`
MaintenanceRequirementEffect PriceEffect `json:"maintenance-requirement-effect"`
BuyingPower decimal.Decimal `json:"buying-power"`
BuyingPowerEffect PriceEffect `json:"buying-power-effect"`
Holdings []Holding `json:"groups"`
PriceIncreasePercent decimal.Decimal `json:"price-increase-percent"`
PriceDecreasePercent decimal.Decimal `json:"price-decrease-percent"`
}
type MarginRequirements struct {
AccountNumber string `json:"account-number"`
Description string `json:"description"`
MarginCalculationType string `json:"margin-calculation-type"`
OptionLevel string `json:"option-level"`
MarginRequirement decimal.Decimal `json:"margin-requirement"`
MarginRequirementEffect PriceEffect `json:"margin-requirement-effect"`
InitialRequirement decimal.Decimal `json:"initial-requirement"`
InitialRequirementEffect PriceEffect `json:"initial-requirement-effect"`
MaintenanceRequirement decimal.Decimal `json:"maintenance-requirement"`
MaintenanceRequirementEffect PriceEffect `json:"maintenance-requirement-effect"`
MarginEquity decimal.Decimal `json:"margin-equity"`
MarginEquityEffect PriceEffect `json:"margin-equity-effect"`
OptionBuyingPower decimal.Decimal `json:"option-buying-power"`
OptionBuyingPowerEffect PriceEffect `json:"option-buying-power-effect"`
RegTMarginRequirement decimal.Decimal `json:"reg-t-margin-requirement"`
RegTMarginRequirementEffect PriceEffect `json:"reg-t-margin-requirement-effect"`
RegTOptionBuyingPower decimal.Decimal `json:"reg-t-option-buying-power"`
RegTOptionBuyingPowerEffect PriceEffect `json:"reg-t-option-buying-power-effect"`
MaintenanceExcess decimal.Decimal `json:"maintenance-excess"`
MaintenanceExcessEffect PriceEffect `json:"maintenance-excess-effect"`
MarginGroups []MarginGroup `json:"groups"`
LastStateTimestamp int `json:"last-state-timestamp"`
}
type EffectiveMarginRequirements struct {
UnderlyingSymbol string `json:"underlying-symbol"`
LongEquityInitial decimal.Decimal `json:"long-equity-initial"`
ShortEquityInitial decimal.Decimal `json:"short-equity-initial"`
LongEquityMaintenance decimal.Decimal `json:"long-equity-maintenance"`
ShortEquityMaintenance decimal.Decimal `json:"short-equity-maintenance"`
NakedOptionStandard decimal.Decimal `json:"naked-option-standard"`
NakedOptionMinimum decimal.Decimal `json:"naked-option-minimum"`
NakedOptionFloor decimal.Decimal `json:"naked-option-floor"`
ClearingIDentifier string `json:"clearing-identifier"`
IsDeleted bool `json:"is-deleted"`
}
type MarginType struct {
Name string `json:"name"`
IsMargin bool `json:"is-margin"`
}
// Response object for the margin requirements public configuration request.
type MarginRequirementsGlobalConfiguration struct {
RiskFreeRate decimal.Decimal `json:"risk-free-rate"`
}