ChartPainter constructor
ChartPainter(
- ChartStyle chartStyle,
- ChartColors chartColors, {
- required List<
TrendLine> lines, - required bool isTrendLine,
- required double selectY,
- required TrendLineState trendLineState,
- required dynamic datas,
- required dynamic scaleX,
- required dynamic scrollX,
- required dynamic isLongPass,
- required dynamic selectX,
- dynamic isOnTap,
- dynamic isTapShowInfoDialog,
- required VerticalTextAlignment verticalTextAlignment,
- dynamic mainState,
- dynamic volHidden,
- dynamic isShowMainState,
- required List<
SecondaryState> secondaryStates, - StreamSink<
InfoWindowEntity?> ? sink, - double? mainHeight,
- double? secondaryHeight,
- bool isLine = false,
- bool hideGrid = false,
- bool showNowPrice = true,
- int fixedLength = 2,
- List<
int> maDayList = const [5, 10, 20], - void onGoingUp(
- double probability
- void onGoingDown(
- double probability
- void onMainGoingUp(
- double probability
- void onMainGoingDown(
- double probability
- void onUpProbs(
- UpProbReport report
- List<
TradeMark> tradeMarks = const [], - bool showTradeMarks = true,
Implementation
ChartPainter(
this.chartStyle,
this.chartColors, {
required this.lines, //For TrendLine
required this.isTrendLine, //For TrendLine
required this.selectY, //For TrendLine
required this.trendLineState,
required datas,
required scaleX,
required scrollX,
required isLongPass,
required selectX,
isOnTap,
isTapShowInfoDialog,
required this.verticalTextAlignment,
mainState,
volHidden,
isShowMainState,
required this.secondaryStates,
this.sink,
this.mainHeight, // 接收主图高度
this.secondaryHeight, // 接收次图高度
bool isLine = false,
this.hideGrid = false,
this.showNowPrice = true,
this.fixedLength = 2,
this.maDayList = const [5, 10, 20],
this.onGoingUp,
this.onGoingDown,
this.onMainGoingUp,
this.onMainGoingDown,
this.onUpProbs,
this.tradeMarks = const [],
this.showTradeMarks = true,
}) : _secProviders = {
SecondaryState.KDJ: const KdjSignalProvider(),
SecondaryState.MACD: const MacdSignalProvider(),
SecondaryState.RSI: const RsiSignalProvider(),
SecondaryState.WR: const WrSignalProvider(),
SecondaryState.WPR: const WprSignalProvider(),
SecondaryState.CCI: const CciSignalProvider(),
SecondaryState.STOCHASTIC: const StochSignalProvider(),
SecondaryState.MOMENTUM: const MomentumSignalProvider(),
SecondaryState.MFI: const MfiSignalProvider(),
SecondaryState.DEMARKER: const DemSignalProvider(),
SecondaryState.STDDEV: const StdDevSignalProvider(),
SecondaryState.DMI: const DmiSignalProvider(),
SecondaryState.ADX: const AdxOnlySignalProvider(),
SecondaryState.AROON: const AroonSignalProvider(),
SecondaryState.VORTEX: const VortexSignalProvider(),
SecondaryState.SAR: const SarSignalProvider(),
SecondaryState.ICHIMOKU: const IchimokuSignalProvider(),
SecondaryState.TSI: const TsiSignalProvider(),
SecondaryState.PPO: const PpoSignalProvider(),
SecondaryState.TRIX: const TrixSignalProvider(),
SecondaryState.OBV: const ObvSignalProvider(),
SecondaryState.VWAP: const VwapSignalProvider(),
SecondaryState.ADL: const AdlSignalProvider(),
SecondaryState.ATR: const AtrSignalProvider(),
SecondaryState.HV: const HvSignalProvider(),
SecondaryState.VIX: const VixSignalProvider(),
SecondaryState.VOLATILITY: const VolatilitySignalProvider(),
SecondaryState.ENVELOPES: const EnvelopesSignalProvider(),
SecondaryState.CMF: const NeutralSignalProvider(),
SecondaryState.CHAIKIN_OSC: const NeutralSignalProvider(),
SecondaryState.KLINGER: const NeutralSignalProvider(),
SecondaryState.VPT: const NeutralSignalProvider(),
SecondaryState.FORCE: const NeutralSignalProvider(),
SecondaryState.ROC: const NeutralSignalProvider(),
SecondaryState.ULTIMATE: const NeutralSignalProvider(),
SecondaryState.CONNORS_RSI: const NeutralSignalProvider(),
SecondaryState.STOCH_RSI: const NeutralSignalProvider(),
SecondaryState.RVI: const NeutralSignalProvider(),
SecondaryState.DPO: const NeutralSignalProvider(),
SecondaryState.KAMA: const NeutralSignalProvider(),
SecondaryState.HMA: const NeutralSignalProvider(),
SecondaryState.KELTNER: const NeutralSignalProvider(),
SecondaryState.DONCHIAN: const NeutralSignalProvider(),
SecondaryState.BOLL_BANDWIDTH: const NeutralSignalProvider(),
SecondaryState.CHAIKIN_VOLATILITY: const NeutralSignalProvider(),
SecondaryState.HV_PERCENTILE: const NeutralSignalProvider(),
SecondaryState.ATR_PERCENTILE: const NeutralSignalProvider(),
SecondaryState.ELDER_RAY: const NeutralSignalProvider(),
SecondaryState.ICHIMOKU_SPAN: const NeutralSignalProvider(),
SecondaryState.PIVOT: const NeutralSignalProvider(),
SecondaryState.GANN_FAN: const NeutralSignalProvider(),
// 若有
// SecondaryState.BSSIGNAL: const BsSignalProvider(),
// …… 如有更多副图指标,可一并注册
},
_mainProviders = {
MainState.MA: MaCrossSignalProvider(),
MainState.BOLL: BollSignalProvider(),
// …… 如有更多主图指标,可一并注册
},
super(
chartStyle,
datas: datas,
scaleX: scaleX,
scrollX: scrollX,
isLongPress: isLongPass,
isOnTap: isOnTap,
isTapShowInfoDialog: isTapShowInfoDialog,
selectX: selectX,
mainState: mainState,
volHidden: volHidden,
isShowMainState: isShowMainState,
secondaryStates: secondaryStates,
isLine: isLine,
) {
selectPointPaint = Paint()
..isAntiAlias = true
..strokeWidth = 0.5
..color = this.chartColors.selectFillColor;
selectorBorderPaint = Paint()
..isAntiAlias = true
..strokeWidth = 0.5
..style = PaintingStyle.stroke
..color = this.chartColors.selectBorderColor;
nowPricePaint = Paint()
..strokeWidth = this.chartStyle.nowPriceLineWidth
..isAntiAlias = true;
}