-
Notifications
You must be signed in to change notification settings - Fork 35
Expand file tree
/
Copy pathCandleEntryFloat.kt
More file actions
127 lines (114 loc) · 3.27 KB
/
CandleEntryFloat.kt
File metadata and controls
127 lines (114 loc) · 3.27 KB
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
package info.appdev.charting.data
import android.annotation.SuppressLint
import android.graphics.drawable.Drawable
import kotlin.math.abs
/**
* Subclass of Entry that holds all values for one entry in a CandleStickChart.
*/
@SuppressLint("ParcelCreator")
open class CandleEntryFloat : EntryFloat {
/**
* Returns the upper shadows highest value.
*/
var high: Float
/**
* Returns the lower shadows lowest value.
*/
var low: Float
/**
* Returns the bodies close value.
*/
var close: Float
/**
* Returns the bodies open value.
*/
var open: Float
/**
* Constructor.
*
* @param x The value on the x-axis
* @param shadowH The (shadow) high value
* @param shadowL The (shadow) low value
* @param open The open value
* @param close The close value
*/
constructor(x: Float, shadowH: Float, shadowL: Float, open: Float, close: Float) : super(x, (shadowH + shadowL) / 2f) {
this.high = shadowH
this.low = shadowL
this.open = open
this.close = close
}
/**
* Constructor.
*
* @param x The value on the x-axis
* @param shadowH The (shadow) high value
* @param shadowL The (shadow) low value
* @param data Spot for additional data this Entry represents
*/
constructor(
x: Float, shadowH: Float, shadowL: Float, open: Float, close: Float,
data: Any?
) : super(x, (shadowH + shadowL) / 2f, data) {
this.high = shadowH
this.low = shadowL
this.open = open
this.close = close
}
/**
* Constructor.
*
* @param x The value on the x-axis
* @param shadowH The (shadow) high value
* @param shadowL The (shadow) low value
* @param icon Icon image
*/
constructor(
x: Float, shadowH: Float, shadowL: Float, open: Float, close: Float,
icon: Drawable?
) : super(x, (shadowH + shadowL) / 2f, icon) {
this.high = shadowH
this.low = shadowL
this.open = open
this.close = close
}
/**
* Constructor.
*
* @param x The value on the x-axis
* @param shadowH The (shadow) high value
* @param shadowL The (shadow) low value
* @param icon Icon image
* @param data Spot for additional data this Entry represents
*/
constructor(
x: Float, shadowH: Float, shadowL: Float, open: Float, close: Float,
icon: Drawable?, data: Any?
) : super(x, (shadowH + shadowL) / 2f, icon, data) {
this.high = shadowH
this.low = shadowL
this.open = open
this.close = close
}
/**
* Returns the overall range (difference) between shadow-high and shadow-low.
*/
val shadowRange: Float
get() = abs(this.high - this.low)
/**
* Returns the body size (difference between open and close).
*/
val bodyRange: Float
get() = abs(this.open - this.close)
/**
* Returns the center value of the candle. (Middle value between high and low)
*/
override var y: Float
get() = super.y
set(value) {
super.y = value
}
override fun copy(): CandleEntryFloat {
return CandleEntryFloat(x, this.high, this.low, this.open, this.close, data)
}
}