Lean
$LEAN_TAG$
BalanceOfPower.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
QuantConnect
.
Data
.
Market
;
17
18
namespace
QuantConnect.Indicators
19
{
20
/// <summary>
21
/// This indicator computes the Balance Of Power (BOP).
22
/// The Balance Of Power is calculated with the following formula:
23
/// BOP = (Close - Open) / (High - Low)
24
/// </summary>
25
public
class
BalanceOfPower
:
BarIndicator
,
IIndicatorWarmUpPeriodProvider
26
{
27
/// <summary>
28
/// Initializes a new instance of the <see cref="BalanceOfPower"/> class using the specified name.
29
/// </summary>
30
public
BalanceOfPower
()
31
: this(
"BOP"
)
32
{
33
}
34
35
/// <summary>
36
/// Initializes a new instance of the <see cref="BalanceOfPower"/> class using the specified name.
37
/// </summary>
38
/// <param name="name">The name of this indicator</param>
39
public
BalanceOfPower
(
string
name)
40
: base(name)
41
{
42
}
43
44
/// <summary>
45
/// Gets a flag indicating when this indicator is ready and fully initialized
46
/// </summary>
47
public
override
bool
IsReady
=> Samples > 0;
48
49
/// <summary>
50
/// Required period, in data points, for the indicator to be ready and fully initialized.
51
/// </summary>
52
public
int
WarmUpPeriod
=> 1;
53
54
/// <summary>
55
/// Computes the next value of this indicator from the given state
56
/// </summary>
57
/// <param name="input">The input given to the indicator</param>
58
/// <returns>A new value for this indicator</returns>
59
protected
override
decimal
ComputeNextValue
(
IBaseDataBar
input)
60
{
61
var range = input.
High
- input.
Low
;
62
return
range > 0 ? (input.
Close
- input.
Open
) / range : 0m;
63
}
64
}
65
}
Indicators
BalanceOfPower.cs
Generated by
1.8.17