Flutter交易图表插件flutter_trading_chart的使用
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
更多关于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,
),
),
),
),
);
}
}
在这个示例中:
- 数据准备:
_candlestickData
是一个Candlestick
对象的列表,每个对象代表一个时间点的交易数据,包括开盘价、最高价、最低价、收盘价和交易量。 - UI 构建:在
TradingChartScreen
中,我们使用TradingChart
小部件来显示交易图表。TradingChart
接受多个参数,包括蜡烛图数据、初始和最大 X、Y 轴范围以及图表配置。 - 图表配置:
ChartConfig
允许你自定义网格背景颜色、十字准线配置和蜡烛图配置。
这个示例展示了如何使用 flutter_trading_chart
插件来显示一个基本的交易图表。你可以根据需要进一步自定义和扩展这个示例。