react-financial-charts
Version:
React charts specific to finance.
50 lines • 2.17 kB
JavaScript
import * as React from "react";
import { BarSeries } from "./BarSeries";
import { LineSeries } from "./LineSeries";
import { StraightLine } from "./StraightLine";
export class MACDSeries extends React.Component {
constructor() {
super(...arguments);
this.yAccessorForDivergenceBase = (xScale, yScale) => {
return yScale(0);
};
this.yAccessorForDivergence = (d) => {
const { yAccessor } = this.props;
return yAccessor(d) && yAccessor(d).divergence;
};
this.yAccessorForSignal = (d) => {
const { yAccessor } = this.props;
return yAccessor(d) && yAccessor(d).signal;
};
this.yAccessorForMACD = (d) => {
const { yAccessor } = this.props;
return yAccessor(d) && yAccessor(d).macd;
};
}
render() {
const { className, clip, fill = MACDSeries.defaultProps.fill, opacity, divergenceStroke, stroke = MACDSeries.defaultProps.stroke, widthRatio, width, zeroLineStroke, zeroLineOpacity, } = this.props;
return (React.createElement("g", { className: className },
React.createElement(BarSeries, { baseAt: this.yAccessorForDivergenceBase, className: "macd-divergence", width: width, widthRatio: widthRatio, stroke: divergenceStroke, fill: fill.divergence, opacity: opacity, clip: clip, yAccessor: this.yAccessorForDivergence }),
React.createElement(LineSeries, { yAccessor: this.yAccessorForMACD, stroke: stroke.macd }),
React.createElement(LineSeries, { yAccessor: this.yAccessorForSignal, stroke: stroke.signal }),
React.createElement(StraightLine, { stroke: zeroLineStroke, opacity: zeroLineOpacity, yValue: 0 })));
}
}
MACDSeries.defaultProps = {
className: "react-financial-charts-macd-series",
clip: true,
divergenceStroke: false,
fill: {
divergence: "#4682B4",
},
opacity: 0.6,
stroke: {
macd: "#0093FF",
signal: "#D84315",
},
widthRatio: 0.5,
width: BarSeries.defaultProps.width,
zeroLineStroke: "#000000",
zeroLineOpacity: 0.3,
};
//# sourceMappingURL=MACDSeries.js.map