Flutter交易图表插件flutter_trading_chart的使用

发布于 1周前 作者 nodeper 来自 Flutter

Flutter交易图表插件flutter_trading_chart的使用

Flutter插件flutter_trading_chart用于显示交易图表。它包括绘制指标的功能,自定义参数以及在时间轴上的平移和缩放能力。此外,成交量和量价比已经内置。

开始使用

安装

在你的pubspec.yaml文件中添加以下依赖:

dependencies:
  flutter_trading_chart: ^0.0.1

或者使用以下命令添加:

flutter pub add flutter_trading_chart

使用

下面是一个完整的示例代码,展示了如何使用flutter_trading_chart插件来创建一个简单的交易图表。

import 'dart:math';

import 'package:collection/collection.dart';
import 'package:flutter/material.dart';
import 'package:flutter_trading_chart/flutter_trading_chart.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  [@override](/user/override)
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: ExempleTradingChart(),
    );
  }
}

class ExempleTradingChart extends StatefulWidget {
  const ExempleTradingChart({Key? key}) : super(key: key);

  [@override](/user/override)
  _ExempleTradingChartState createState() => _ExempleTradingChartState();
}

class _ExempleTradingChartState extends State<ExempleTradingChart> {
  TradingChartController controller = TradingChartController(
    settings: TradingChartSettings(
      volume: VolumeSettings(
        visible: true,
      ),
      vpvr: VpvrSettings(
        visible: true,
      ),
    ),
  );

  [@override](/user/override)
  void initState() {
    super.initState();
    setCandleSerie();
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text("交易图表示例"),
      ),
      body: TradingChart(
        controller: controller,
      ),
    );
  }

  // 生成蜡烛图数据
  CandlestickSerie generateCandleStickSerie() {
    var rng = Random();
    double open = 50000;
    int timestamp = 1621184400000;
    double volume = 1000;
    List<Candlestick> candles = [];
    for (int i = 0; i < 100; ++i) {
      double close = open * (1 + (rng.nextInt(11) - 4.5) / 100);
      double high = max(close, open) * (1 + rng.nextInt(2) / 100);
      double low = min(close, open) * (1 - rng.nextInt(2) / 100);
      volume = volume * (1 + (rng.nextInt(11) - 4.8) / 100);
      candles.add(Candlestick(
        timestamp: timestamp + i * 300000,
        open: open,
        high: high,
        low: low,
        close: close,
        volume: volume,
      ));
      open = close;
    }
    return CandlestickSerie(
      name: "价格",
      candles: candles,
    );
  }

  // 设置蜡烛图数据
  void setCandleSerie() {
    controller.data.candleSerie = generateCandleStickSerie();
    List<Point> movingAveragePoints = [];
    for (int i = 8; i < controller.data.candleSerie!.candles.length; ++i) {
      final sublist = controller.data.candleSerie!.candles.sublist(i - 8, i + 1).map((e) => e.close).toList();
      movingAveragePoints.add(Point(
        timestamp: controller.data.candleSerie!.candles[i].timestamp,
        y: sublist.average,
      ));
    }
    controller.data.lineSeries.add(LineSerie(
      name: "移动平均线",
      color: Colors.yellow,
      points: movingAveragePoints,
    ));
    controller.setTimestamps(
      controller.data.candleSerie!.candles.first.timestamp,
      controller.data.candleSerie!.candles.last.timestamp,
    );
  }
}

更多关于Flutter交易图表插件flutter_trading_chart的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter交易图表插件flutter_trading_chart的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何使用 flutter_trading_chart 插件来创建交易图表的示例代码。flutter_trading_chart 是一个流行的 Flutter 插件,用于在 Flutter 应用中显示股票或加密货币的交易图表。

首先,确保你已经在 pubspec.yaml 文件中添加了 flutter_trading_chart 依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_trading_chart: ^最新版本号  # 请替换为最新版本号

然后,运行 flutter pub get 来获取依赖。

接下来,在你的 Dart 文件中,你可以按照以下步骤使用 flutter_trading_chart

import 'package:flutter/material.dart';
import 'package:flutter_trading_chart/flutter_trading_chart.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Trading Chart Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: TradingChartScreen(),
    );
  }
}

class TradingChartScreen extends StatefulWidget {
  @override
  _TradingChartScreenState createState() => _TradingChartScreenState();
}

class _TradingChartScreenState extends State<TradingChartScreen> {
  // 示例数据
  List<Candlestick> _candlestickData = [
    Candlestick(
      time: DateTime.now().subtract(Duration(days: 9)),
      open: 150.0,
      high: 155.0,
      low: 145.0,
      close: 152.0,
      volume: 1000,
    ),
    // ... 更多数据
    Candlestick(
      time: DateTime.now(),
      open: 160.0,
      high: 165.0,
      low: 155.0,
      close: 162.0,
      volume: 1200,
    ),
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Trading Chart Demo'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(8.0),
        child: TradingChart(
          candlestickData: _candlestickData,
          initialX: DateTime.now().subtract(Duration(days: 10)),
          initialY: 140.0,
          maxX: DateTime.now(),
          maxY: 170.0,
          chartConfig: ChartConfig(
            gridBackgroundColor: Colors.grey[200]!,
            crossHairConfig: CrossHairConfig(
              enabled: true,
              horizontalLineColor: Colors.red,
              verticalLineColor: Colors.blue,
            ),
            candlestickConfig: CandlestickConfig(
              increasingColor: Colors.green,
              decreasingColor: Colors.red,
              wickColor: Colors.grey,
            ),
          ),
        ),
      ),
    );
  }
}

在这个示例中:

  1. 数据准备_candlestickData 是一个 Candlestick 对象的列表,每个对象代表一个时间点的交易数据,包括开盘价、最高价、最低价、收盘价和交易量。
  2. UI 构建:在 TradingChartScreen 中,我们使用 TradingChart 小部件来显示交易图表。TradingChart 接受多个参数,包括蜡烛图数据、初始和最大 X、Y 轴范围以及图表配置。
  3. 图表配置ChartConfig 允许你自定义网格背景颜色、十字准线配置和蜡烛图配置。

这个示例展示了如何使用 flutter_trading_chart 插件来显示一个基本的交易图表。你可以根据需要进一步自定义和扩展这个示例。

回到顶部