forked from alpacahq/alpaca-trade-api-csharp
/
IAsset.cs
106 lines (90 loc) · 2.71 KB
/
IAsset.cs
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
101
102
103
104
105
106
namespace Alpaca.Markets;
/// <summary>
/// Encapsulates asset information from Alpaca REST API.
/// </summary>
public interface IAsset
{
/// <summary>
/// Gets unique asset identifier used by Alpaca.
/// </summary>
[UsedImplicitly]
Guid AssetId { get; }
/// <summary>
/// Gets asset class.
/// </summary>
[UsedImplicitly]
[SuppressMessage(
"Naming", "CA1716:Identifiers should not match keywords",
Justification = "Already used by clients and creates conflict only in VB.NET")]
AssetClass Class { get; }
/// <summary>
/// Gets asset source exchange.
/// </summary>
[UsedImplicitly]
Exchange Exchange { get; }
/// <summary>
/// Gets asset symbol.
/// </summary>
[UsedImplicitly]
String Symbol { get; }
/// <summary>
/// Gets asset name.
/// </summary>
[UsedImplicitly]
String Name { get; }
/// <summary>
/// Get asset status in API.
/// </summary>
[UsedImplicitly]
AssetStatus Status { get; }
/// <summary>
/// Returns <c>true</c> if asset is tradable.
/// </summary>
[UsedImplicitly]
Boolean IsTradable { get; }
/// <summary>
/// Returns <c>true</c> if asset is marginable.
/// </summary>
[UsedImplicitly]
Boolean Marginable { get; }
/// <summary>
/// Returns <c>true</c> if asset is shortable.
/// </summary>
[UsedImplicitly]
Boolean Shortable { get; }
/// <summary>
/// Returns <c>true</c> if asset is easy-to-borrow.
/// </summary>
[UsedImplicitly]
Boolean EasyToBorrow { get; }
/// <summary>
/// Returns <c>true</c> if asset is fractionable.
/// </summary>
[UsedImplicitly]
Boolean Fractionable { get; }
/// <summary>
/// Gets minimum order size. This property is valid only for crypto assets.
/// </summary>
[UsedImplicitly]
Decimal? MinOrderSize { get; }
/// <summary>
/// Gets amount a trade quantity can be incremented by. This property is valid only for crypto assets.
/// </summary>
[UsedImplicitly]
Decimal? MinTradeIncrement { get; }
/// <summary>
/// Gets amount the price can be incremented by. This property is valid only for crypto assets.
/// </summary>
[UsedImplicitly]
Decimal? PriceIncrement { get; }
/// <summary>
/// Gets the % margin requirement for the asset. This property is valid only for equity assets.
/// </summary>
[UsedImplicitly]
Decimal? MaintenanceMarginRequirement { get; }
/// <summary>
/// Gets the list of asset attributes (unique asset characteristics like PTP order acceptance mode).
/// </summary>
[UsedImplicitly]
IReadOnlyList<AssetAttributes> Attributes { get; }
}