Lean
$LEAN_TAG$
SecurityBenchmark.cs
1
/*
2
* QUANTCONNECT.COM - Democratizing Finance, Empowering Individuals.
3
* Lean Algorithmic Trading Engine v2.0. Copyright 2014 QuantConnect Corporation.
4
*
5
* Licensed under the Apache License, Version 2.0 (the "License");
6
* you may not use this file except in compliance with the License.
7
* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
8
*
9
* Unless required by applicable law or agreed to in writing, software
10
* distributed under the License is distributed on an "AS IS" BASIS,
11
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
* See the License for the specific language governing permissions and
13
* limitations under the License.
14
*/
15
16
using
System;
17
using
System.Collections.Generic;
18
using
QuantConnect
.
Data
;
19
using
QuantConnect
.
Securities
;
20
21
namespace
QuantConnect.Benchmarks
22
{
23
/// <summary>
24
/// Creates a benchmark defined by the closing price of a <see cref="Security"/> instance
25
/// </summary>
26
public
class
SecurityBenchmark
:
IBenchmark
27
{
28
/// <summary>
29
/// The benchmark security
30
/// </summary>
31
public
Security
Security
{
get
; }
32
33
/// <summary>
34
/// Initializes a new instance of the <see cref="SecurityBenchmark"/> class
35
/// </summary>
36
public
SecurityBenchmark
(
Security
security)
37
{
38
Security
= security;
39
}
40
41
/// <summary>
42
/// Evaluates this benchmark at the specified time in units of the account's currency.
43
/// </summary>
44
/// <param name="time">The time to evaluate the benchmark at</param>
45
/// <returns>The value of the benchmark at the specified time
46
/// in units of the account's currency.</returns>
47
public
decimal
Evaluate
(DateTime time)
48
{
49
return
Security
.
Price
*
Security
.
QuoteCurrency
.
ConversionRate
;
50
}
51
52
/// <summary>
53
/// Helper function that will create a security with the given SecurityManager
54
/// for a specific symbol and then create a SecurityBenchmark for it
55
/// </summary>
56
/// <param name="securities">SecurityService to create the security</param>
57
/// <param name="symbol">The symbol to create a security benchmark with</param>
58
/// <returns>The new SecurityBenchmark</returns>
59
public
static
SecurityBenchmark
CreateInstance
(
SecurityManager
securities,
Symbol
symbol)
60
{
61
return
new
SecurityBenchmark
(securities.
CreateBenchmarkSecurity
(symbol));
62
}
63
}
64
}
Common
Benchmarks
SecurityBenchmark.cs
Generated by
1.8.17