OHLCDataPoints.cs 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. //----------------------------------------------------------------
  6. //Module Name: $safeprojectname$
  7. //Purpose:
  8. //CopyRight: Muchinfo
  9. //History:
  10. //----------------------------------------------------------------
  11. //DateTime 2016/6/8 14:26:19
  12. //Author
  13. //Description Create
  14. //----------------------------------------------------------------
  15. using System.Windows.Media;
  16. using Muchinfo.MTPClient.Data.Helper;
  17. namespace Muchinfo.MTPClient.Data.Quote
  18. {
  19. public class OHLCDataPoints
  20. {
  21. public OHLCDataPoints()
  22. {
  23. }
  24. /// <summary>
  25. /// 开高低收量,总额
  26. /// </summary>
  27. /// <param name="date">时间</param>
  28. /// <param name="open">开盘价</param>
  29. /// <param name="high">最高</param>
  30. /// <param name="low">最低</param>
  31. /// <param name="close">平仓价</param>
  32. /// <param name="volume">量</param>
  33. /// <param name="totleTurnovers">总额</param>
  34. public OHLCDataPoints(double date, double open, double high, double low, double close, double volume, double totleTurnovers)
  35. {
  36. Date = date;
  37. Open = open;
  38. High = high;
  39. Low = low;
  40. Close = close;
  41. Volume = volume;
  42. TotleTurnovers = totleTurnovers;
  43. }
  44. public OHLCDataPoints(double close,double date)
  45. {
  46. Close = close;
  47. Open = close;
  48. High = close;
  49. Low = close;
  50. Date = date;
  51. }
  52. /// <summary>
  53. /// 高开低收
  54. /// </summary>
  55. /// <param name="close"></param>
  56. /// <param name="date"></param>
  57. /// <param name="volume"></param>
  58. /// <param name="volume"></param>
  59. public OHLCDataPoints(double close, double date, double volume, double turnovers)
  60. {
  61. Close = close;
  62. Open = close;
  63. High = close;
  64. Low = close;
  65. Volume = volume;
  66. Date = date;
  67. TotleTurnovers = turnovers;
  68. }
  69. /// <summary>
  70. /// 收盘价
  71. /// </summary>
  72. public double Close { get; set; }
  73. /// <summary>
  74. /// 开盘价
  75. /// </summary>
  76. public double Open { get; set; }
  77. /// <summary>
  78. /// 最高价
  79. /// </summary>
  80. public double High { get; set; }
  81. /// <summary>
  82. /// 最低价
  83. /// </summary>
  84. public double Low { get; set; }
  85. /// <summary>
  86. /// 成交量
  87. /// </summary>
  88. public double Volume { get; set; }
  89. /// <summary>
  90. /// 时间
  91. /// </summary>
  92. public double Date { get; set; }
  93. /// <summary>
  94. /// 上一周期的收盘
  95. /// </summary>
  96. public double PreClose { get; set; }
  97. /// <summary>
  98. /// 成交金额
  99. /// </summary>
  100. public double TotleTurnovers { get; set; }
  101. public double CloseAvg { get; set; }
  102. /// <summary>
  103. /// 涨跌幅
  104. /// </summary>
  105. public string IncreasePercent
  106. {
  107. get
  108. {
  109. if (Close <= 0 || PreClose <= 0)
  110. {
  111. return "--";
  112. }
  113. return ((Close - PreClose)/PreClose).ToString("p2");
  114. }
  115. }
  116. /// <summary>
  117. /// 涨跌
  118. /// </summary>
  119. public string Increase
  120. {
  121. get
  122. {
  123. if (Close <= 0 || PreClose <= 0)
  124. {
  125. return "--";
  126. }
  127. return (Close - PreClose).ToString("f2");
  128. }
  129. }
  130. /// <summary>
  131. /// 振 幅
  132. /// </summary>
  133. public string Amplitude
  134. {
  135. get
  136. {
  137. if (PreClose > 0)
  138. {
  139. return ((High - Low) / PreClose).ToString("p2");
  140. }
  141. return "--";
  142. }
  143. }
  144. public string PriceFormat { get; set; }
  145. public DateTime DateTime
  146. {
  147. get
  148. {
  149. return DateTime.FromOADate(Date);
  150. }
  151. }
  152. public Brush OpenBrush
  153. {
  154. get
  155. {
  156. return GetBrush(Open, PreClose);
  157. }
  158. }
  159. public Brush CloseBrush
  160. {
  161. get
  162. {
  163. return GetBrush(Close, PreClose);
  164. }
  165. }
  166. /// <summary>
  167. /// 最高
  168. /// </summary>
  169. public Brush HighBrush
  170. {
  171. get
  172. {
  173. return GetBrush(High, PreClose);
  174. }
  175. }
  176. /// <summary>
  177. /// 最低颜色
  178. /// </summary>
  179. public Brush LowBrush
  180. {
  181. get
  182. {
  183. return GetBrush(Close, PreClose);
  184. }
  185. }
  186. /// <summary>
  187. /// 涨跌颜色
  188. /// </summary>
  189. public Brush IncreaseBrush
  190. {
  191. get
  192. {
  193. return GetBrush(Close, PreClose);
  194. }
  195. }
  196. private Brush AscBrush
  197. {
  198. get
  199. {
  200. return ResourceHelper.GetFromResource<Brush>("QuoteAscBrush");
  201. }
  202. }
  203. private Brush DecBrush
  204. {
  205. get
  206. {
  207. return ResourceHelper.GetFromResource<Brush>("QuoteDecBrush");
  208. }
  209. }
  210. private Brush DefaultBrush
  211. {
  212. get
  213. {
  214. return ResourceHelper.GetFromResource<Brush>("DataGridForeground");
  215. }
  216. }
  217. /// <summary>
  218. /// Gets the brush.
  219. /// </summary>
  220. /// <param name="source">The source.</param>
  221. /// <param name="destination">The destination.</param>
  222. /// <returns>Brush.</returns>
  223. private Brush GetBrush(double source, double destination)
  224. {
  225. if (source == 0)
  226. {
  227. return DefaultBrush;
  228. }
  229. if (source > destination)
  230. {
  231. return AscBrush;
  232. }
  233. if (source < destination)
  234. {
  235. return DecBrush;
  236. }
  237. return DefaultBrush;
  238. }
  239. }
  240. }