f_k_chart 1.8.9 f_k_chart: ^1.8.9 copied to clipboard
equity market chart.
import 'dart:convert';
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:f_k_chart/f_k_chart.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.green,
),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
List<KLineEntity> datas = [];
bool showLoading = true;
MainState _mainState = MainState.BOLL;
bool _volHidden = false;
SecondaryState _secondaryState = SecondaryState.MACD;
bool isLine = true;
bool isChinese = true;
bool _hideGrid = false;
bool _showNowPrice = true;
bool isChangeUI = false;
String uniqueMark;
@override
void initState() {
super.initState();
getData('1day');
}
@override
Widget build(BuildContext context) {
return ListView(
shrinkWrap: true,
children: <Widget>[
Stack(children: <Widget>[
Container(
height: 450,
width: double.infinity,
child: KlineScrollWidget(
datas,
isLine: isLine,
pointWidth: isLine ? 1.3 : ChartStyle.pointWidth,
canScale: isLine ? false : true,
maxRectWidth: isLine ? null : 15.0,
minRectWidth: isLine ? null : 4.0,
mainState: _mainState,
secondaryState: _secondaryState,
edge: EdgeInsets.only(right: 0.0),
userFriendlyMinPointWidth: 2,
uniqueMark: uniqueMark,
),
),
if (showLoading)
Container(
width: double.infinity,
height: 450,
alignment: Alignment.center,
child: const CircularProgressIndicator()),
]),
buildButtons(),
],
);
}
Widget buildButtons() {
return Wrap(
alignment: WrapAlignment.spaceEvenly,
children: <Widget>[
button("Time Mode", onPressed: () {
isLine = true;
uniqueMark = Random().nextDouble().toString();
}),
button("K Line Mode", onPressed: () {
isLine = false;
uniqueMark = Random().nextDouble().toString();
}),
button("Line:MA", onPressed: () => _mainState = MainState.MA),
button("Line:BOLL", onPressed: () => _mainState = MainState.BOLL),
button("Hide Line", onPressed: () => _mainState = MainState.NONE),
button("Secondary Chart:MACD", onPressed: () => _secondaryState = SecondaryState.MACD),
button("Secondary Chart:KDJ", onPressed: () => _secondaryState = SecondaryState.KDJ),
button("Secondary Chart:RSI", onPressed: () => _secondaryState = SecondaryState.RSI),
button("Secondary Chart:WR", onPressed: () => _secondaryState = SecondaryState.WR),
button("Secondary Chart:Hide", onPressed: () => _secondaryState = SecondaryState.NONE),
button(_volHidden ? "Show Vol" : "Hide Vol", onPressed: () => _volHidden = !_volHidden),
button("Change Language", onPressed: () => isChinese = !isChinese),
button(_hideGrid ? "Show Grid" : "Hide Grid", onPressed: () => _hideGrid = !_hideGrid),
button(_showNowPrice ? "Hide Now Price" : "Show Now Price", onPressed: () => _showNowPrice = !_showNowPrice),
button("Customize UI", onPressed: () {
getData('1day');
}),
button("getData", onPressed: () {
getData2('1day');
}),
],
);
}
Widget button(String text, {VoidCallback onPressed}) {
return TextButton(
onPressed: () {
if (onPressed != null) {
onPressed();
setState(() {});
}
},
child: Text(text),
style: TextButton.styleFrom(
primary: Colors.white,
minimumSize: const Size(88, 44),
padding: const EdgeInsets.symmetric(horizontal: 16.0),
shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(2.0)),
),
backgroundColor: Colors.blue,
),
);
}
void getData(String period) {
uniqueMark = Random().nextDouble().toString();
var parseJson = {"ch": "market.btcusdt.kline.1day", "status": "ok", "ts": 1633682856059, "data": []};
final list = parseJson['data'] as List<dynamic>;
datas = list
.map((item) {
KLineEntity k = KLineEntity.fromJson(item as Map<String, dynamic>);
k.time = item['id'];
return k;
})
.toList()
.reversed
.toList()
.cast<KLineEntity>();
DataUtil.calculate(datas);
showLoading = false;
Future.delayed(Duration(seconds: 3), () {
setState(() {
//print('${datas}');
});
});
// final Future<String> future = getIPAddress(period);
// future.then((String result) {
// final Map parseJson = json.decode(result) as Map<dynamic, dynamic>;
// final list = parseJson['data'] as List<dynamic>;
// datas = list
// .map((item) => KLineEntity.fromJson(item as Map<String, dynamic>))
// .toList()
// .reversed
// .toList()
// .cast<KLineEntity>();
// DataUtil.calculate(datas!);
// showLoading = false;
// setState(() {});
// }).catchError((_) {
// showLoading = false;
// setState(() {});
// print('### datas error $_');
// });
}
void getData2(String period) {
uniqueMark = Random().nextDouble().toString();
List data = getData3();
var parseJson = {
"ch": "market.btcusdt.kline.1day",
"status": "ok",
"ts": 1633682856059,
"data":data
};
final list = parseJson['data'] as List<dynamic>;
datas = list
.map((item) {
KLineEntity k = KLineEntity.fromJson(item as Map<String, dynamic>);
// k.time = item['time'];
k.vol = double.parse(item['time'].toString());
return k;
})
.toList()
.reversed
.toList()
.cast<KLineEntity>();
DataUtil.calculate(datas);
showLoading = false;
Future.delayed(Duration(seconds: 3), () {
setState(() {
//print('${datas}');
});
});
// final Future<String> future = getIPAddress(period);
// future.then((String result) {
// final Map parseJson = json.decode(result) as Map<dynamic, dynamic>;
// final list = parseJson['data'] as List<dynamic>;
// datas = list
// .map((item) => KLineEntity.fromJson(item as Map<String, dynamic>))
// .toList()
// .reversed
// .toList()
// .cast<KLineEntity>();
// DataUtil.calculate(datas!);
// showLoading = false;
// setState(() {});
// }).catchError((_) {
// showLoading = false;
// setState(() {});
// print('### datas error $_');
// });
}
// List getData3() {
// return [];
// }
List getData3() {
return [
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:01:00",
"flag": -1,
"last": 61480,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61585,
"low": 61448,
"contName": null,
"time": 1635728460000,
"sourceClose": 0,
"close": 61661,
"seq": 0,
"open": 61551
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:02:00",
"flag": -1,
"last": 61477,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61480,
"low": 61477,
"contName": null,
"time": 1635728520000,
"sourceClose": 0,
"close": 61480,
"seq": 0,
"open": 61480
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:03:00",
"flag": -1,
"last": 61393,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61477,
"low": 61390,
"contName": null,
"time": 1635728580000,
"sourceClose": 0,
"close": 61477,
"seq": 0,
"open": 61477
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:04:00",
"flag": -1,
"last": 61367,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61393,
"low": 61364,
"contName": null,
"time": 1635728640000,
"sourceClose": 0,
"close": 61393,
"seq": 0,
"open": 61393
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:05:00",
"flag": -1,
"last": 61331,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61367,
"low": 61328,
"contName": null,
"time": 1635728700000,
"sourceClose": 0,
"close": 61367,
"seq": 0,
"open": 61367
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:06:00",
"flag": -1,
"last": 61344,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61344,
"low": 61331,
"contName": null,
"time": 1635728760000,
"sourceClose": 0,
"close": 61331,
"seq": 0,
"open": 61331
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:07:00",
"flag": -1,
"last": 61377,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61377,
"low": 61344,
"contName": null,
"time": 1635728820000,
"sourceClose": 0,
"close": 61344,
"seq": 0,
"open": 61344
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:08:00",
"flag": -1,
"last": 61386,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61386,
"low": 61373,
"contName": null,
"time": 1635728880000,
"sourceClose": 0,
"close": 61377,
"seq": 0,
"open": 61377
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:09:00",
"flag": -1,
"last": 61441,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61441,
"low": 61386,
"contName": null,
"time": 1635728940000,
"sourceClose": 0,
"close": 61386,
"seq": 0,
"open": 61386
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:10:00",
"flag": -1,
"last": 61441,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61441,
"low": 61441,
"contName": null,
"time": 1635729000000,
"sourceClose": 0,
"close": 61441,
"seq": 0,
"open": 61441
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:11:00",
"flag": -1,
"last": 61435,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61464,
"low": 61435,
"contName": null,
"time": 1635729060000,
"sourceClose": 0,
"close": 61441,
"seq": 0,
"open": 61441
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:12:00",
"flag": -1,
"last": 61435,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61435,
"low": 61435,
"contName": null,
"time": 1635729120000,
"sourceClose": 0,
"close": 61435,
"seq": 0,
"open": 61435
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:13:00",
"flag": -1,
"last": 61435,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61435,
"low": 61435,
"contName": null,
"time": 1635729180000,
"sourceClose": 0,
"close": 61435,
"seq": 0,
"open": 61435
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:14:00",
"flag": -1,
"last": 61402,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61435,
"low": 61380,
"contName": null,
"time": 1635729240000,
"sourceClose": 0,
"close": 61435,
"seq": 0,
"open": 61435
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:15:00",
"flag": -1,
"last": 61480,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61480,
"low": 61402,
"contName": null,
"time": 1635729300000,
"sourceClose": 0,
"close": 61402,
"seq": 0,
"open": 61402
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:16:00",
"flag": -1,
"last": 61480,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61480,
"low": 61480,
"contName": null,
"time": 1635729360000,
"sourceClose": 0,
"close": 61480,
"seq": 0,
"open": 61480
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:17:00",
"flag": -1,
"last": 61377,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61480,
"low": 61367,
"contName": null,
"time": 1635729420000,
"sourceClose": 0,
"close": 61480,
"seq": 0,
"open": 61480
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:18:00",
"flag": -1,
"last": 61377,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61377,
"low": 61377,
"contName": null,
"time": 1635729480000,
"sourceClose": 0,
"close": 61377,
"seq": 0,
"open": 61377
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:19:00",
"flag": -1,
"last": 61377,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61377,
"low": 61377,
"contName": null,
"time": 1635729540000,
"sourceClose": 0,
"close": 61377,
"seq": 0,
"open": 61377
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:20:00",
"flag": -1,
"last": 61377,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61377,
"low": 61377,
"contName": null,
"time": 1635729600000,
"sourceClose": 0,
"close": 61377,
"seq": 0,
"open": 61377
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:21:00",
"flag": -1,
"last": 61351,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61377,
"low": 61351,
"contName": null,
"time": 1635729660000,
"sourceClose": 0,
"close": 61377,
"seq": 0,
"open": 61377
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:22:00",
"flag": -1,
"last": 61351,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61351,
"low": 61351,
"contName": null,
"time": 1635729720000,
"sourceClose": 0,
"close": 61351,
"seq": 0,
"open": 61351
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:23:00",
"flag": -1,
"last": 61351,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61351,
"low": 61351,
"contName": null,
"time": 1635729780000,
"sourceClose": 0,
"close": 61351,
"seq": 0,
"open": 61351
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:24:00",
"flag": -1,
"last": 61441,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61441,
"low": 61351,
"contName": null,
"time": 1635729840000,
"sourceClose": 0,
"close": 61351,
"seq": 0,
"open": 61351
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:25:00",
"flag": -1,
"last": 61464,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61464,
"low": 61441,
"contName": null,
"time": 1635729900000,
"sourceClose": 0,
"close": 61441,
"seq": 0,
"open": 61441
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:26:00",
"flag": -1,
"last": 61506,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61506,
"low": 61464,
"contName": null,
"time": 1635729960000,
"sourceClose": 0,
"close": 61464,
"seq": 0,
"open": 61464
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:27:00",
"flag": -1,
"last": 61506,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61506,
"low": 61506,
"contName": null,
"time": 1635730020000,
"sourceClose": 0,
"close": 61506,
"seq": 0,
"open": 61506
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:28:00",
"flag": -1,
"last": 61506,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61506,
"low": 61506,
"contName": null,
"time": 1635730080000,
"sourceClose": 0,
"close": 61506,
"seq": 0,
"open": 61506
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:29:00",
"flag": -1,
"last": 61467,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61506,
"low": 61467,
"contName": null,
"time": 1635730140000,
"sourceClose": 0,
"close": 61506,
"seq": 0,
"open": 61506
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:30:00",
"flag": -1,
"last": 61435,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61474,
"low": 61435,
"contName": null,
"time": 1635730200000,
"sourceClose": 0,
"close": 61467,
"seq": 0,
"open": 61467
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:31:00",
"flag": -1,
"last": 61435,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61435,
"low": 61435,
"contName": null,
"time": 1635730260000,
"sourceClose": 0,
"close": 61435,
"seq": 0,
"open": 61435
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:32:00",
"flag": -1,
"last": 61344,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61435,
"low": 61344,
"contName": null,
"time": 1635730320000,
"sourceClose": 0,
"close": 61435,
"seq": 0,
"open": 61435
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:33:00",
"flag": -1,
"last": 61357,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61357,
"low": 61344,
"contName": null,
"time": 1635730380000,
"sourceClose": 0,
"close": 61344,
"seq": 0,
"open": 61344
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:34:00",
"flag": -1,
"last": 61406,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61406,
"low": 61357,
"contName": null,
"time": 1635730440000,
"sourceClose": 0,
"close": 61357,
"seq": 0,
"open": 61357
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:35:00",
"flag": -1,
"last": 61399,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61406,
"low": 61399,
"contName": null,
"time": 1635730500000,
"sourceClose": 0,
"close": 61406,
"seq": 0,
"open": 61406
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:36:00",
"flag": -1,
"last": 61496,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61496,
"low": 61399,
"contName": null,
"time": 1635730560000,
"sourceClose": 0,
"close": 61399,
"seq": 0,
"open": 61399
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:37:00",
"flag": -1,
"last": 61448,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61496,
"low": 61441,
"contName": null,
"time": 1635730620000,
"sourceClose": 0,
"close": 61496,
"seq": 0,
"open": 61496
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:38:00",
"flag": -1,
"last": 61451,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61461,
"low": 61438,
"contName": null,
"time": 1635730680000,
"sourceClose": 0,
"close": 61448,
"seq": 0,
"open": 61448
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:39:00",
"flag": -1,
"last": 61461,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61461,
"low": 61448,
"contName": null,
"time": 1635730740000,
"sourceClose": 0,
"close": 61451,
"seq": 0,
"open": 61451
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:40:00",
"flag": -1,
"last": 61461,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61461,
"low": 61448,
"contName": null,
"time": 1635730800000,
"sourceClose": 0,
"close": 61461,
"seq": 0,
"open": 61461
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:41:00",
"flag": -1,
"last": 61461,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61461,
"low": 61461,
"contName": null,
"time": 1635730860000,
"sourceClose": 0,
"close": 61461,
"seq": 0,
"open": 61461
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:42:00",
"flag": -1,
"last": 61499,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61512,
"low": 61499,
"contName": null,
"time": 1635730920000,
"sourceClose": 0,
"close": 61461,
"seq": 0,
"open": 61512
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:43:00",
"flag": -1,
"last": 61493,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61499,
"low": 61493,
"contName": null,
"time": 1635730980000,
"sourceClose": 0,
"close": 61499,
"seq": 0,
"open": 61499
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:44:00",
"flag": -1,
"last": 61493,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61493,
"low": 61493,
"contName": null,
"time": 1635731040000,
"sourceClose": 0,
"close": 61493,
"seq": 0,
"open": 61493
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:45:00",
"flag": -1,
"last": 61496,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61496,
"low": 61493,
"contName": null,
"time": 1635731100000,
"sourceClose": 0,
"close": 61493,
"seq": 0,
"open": 61493
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:46:00",
"flag": -1,
"last": 61522,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61522,
"low": 61496,
"contName": null,
"time": 1635731160000,
"sourceClose": 0,
"close": 61496,
"seq": 0,
"open": 61496
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:47:00",
"flag": -1,
"last": 61587,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61590,
"low": 61522,
"contName": null,
"time": 1635731220000,
"sourceClose": 0,
"close": 61522,
"seq": 0,
"open": 61522
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:48:00",
"flag": -1,
"last": 61577,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61587,
"low": 61535,
"contName": null,
"time": 1635731280000,
"sourceClose": 0,
"close": 61587,
"seq": 0,
"open": 61587
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:49:00",
"flag": -1,
"last": 61509,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61577,
"low": 61509,
"contName": null,
"time": 1635731340000,
"sourceClose": 0,
"close": 61577,
"seq": 0,
"open": 61577
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:50:00",
"flag": -1,
"last": 61509,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61509,
"low": 61509,
"contName": null,
"time": 1635731400000,
"sourceClose": 0,
"close": 61509,
"seq": 0,
"open": 61509
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:51:00",
"flag": -1,
"last": 61528,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61528,
"low": 61509,
"contName": null,
"time": 1635731460000,
"sourceClose": 0,
"close": 61509,
"seq": 0,
"open": 61509
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:52:00",
"flag": -1,
"last": 61528,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61528,
"low": 61528,
"contName": null,
"time": 1635731520000,
"sourceClose": 0,
"close": 61528,
"seq": 0,
"open": 61528
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:53:00",
"flag": -1,
"last": 61528,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61528,
"low": 61528,
"contName": null,
"time": 1635731580000,
"sourceClose": 0,
"close": 61528,
"seq": 0,
"open": 61528
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:54:00",
"flag": -1,
"last": 61606,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61606,
"low": 61528,
"contName": null,
"time": 1635731640000,
"sourceClose": 0,
"close": 61528,
"seq": 0,
"open": 61528
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:55:00",
"flag": -1,
"last": 61693,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61696,
"low": 61606,
"contName": null,
"time": 1635731700000,
"sourceClose": 0,
"close": 61606,
"seq": 0,
"open": 61606
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:56:00",
"flag": -1,
"last": 61693,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61693,
"low": 61693,
"contName": null,
"time": 1635731760000,
"sourceClose": 0,
"close": 61693,
"seq": 0,
"open": 61693
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:57:00",
"flag": -1,
"last": 61700,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61700,
"low": 61687,
"contName": null,
"time": 1635731820000,
"sourceClose": 0,
"close": 61693,
"seq": 0,
"open": 61693
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:58:00",
"flag": -1,
"last": 61738,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61738,
"low": 61700,
"contName": null,
"time": 1635731880000,
"sourceClose": 0,
"close": 61700,
"seq": 0,
"open": 61700
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 09:59:00",
"flag": -1,
"last": 61764,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61764,
"low": 61738,
"contName": null,
"time": 1635731940000,
"sourceClose": 0,
"close": 61738,
"seq": 0,
"open": 61738
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 10:00:00",
"flag": -1,
"last": 61761,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61764,
"low": 61761,
"contName": null,
"time": 1635732000000,
"sourceClose": 0,
"close": 61764,
"seq": 0,
"open": 61764
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 10:01:00",
"flag": -1,
"last": 61696,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61761,
"low": 61696,
"contName": null,
"time": 1635732060000,
"sourceClose": 0,
"close": 61761,
"seq": 0,
"open": 61761
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 10:02:00",
"flag": -1,
"last": 61696,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61696,
"low": 61696,
"contName": null,
"time": 1635732120000,
"sourceClose": 0,
"close": 61696,
"seq": 0,
"open": 61696
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 10:03:00",
"flag": -1,
"last": 61696,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61696,
"low": 61696,
"contName": null,
"time": 1635732180000,
"sourceClose": 0,
"close": 61696,
"seq": 0,
"open": 61696
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 10:04:00",
"flag": -1,
"last": 61816,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61816,
"low": 61696,
"contName": null,
"time": 1635732240000,
"sourceClose": 0,
"close": 61696,
"seq": 0,
"open": 61696
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 10:05:00",
"flag": -1,
"last": 61816,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61816,
"low": 61816,
"contName": null,
"time": 1635732300000,
"sourceClose": 0,
"close": 61816,
"seq": 0,
"open": 61816
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 10:06:00",
"flag": -1,
"last": 61793,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61816,
"low": 61793,
"contName": null,
"time": 1635732360000,
"sourceClose": 0,
"close": 61816,
"seq": 0,
"open": 61816
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 10:07:00",
"flag": -1,
"last": 61745,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61793,
"low": 61745,
"contName": null,
"time": 1635732420000,
"sourceClose": 0,
"close": 61793,
"seq": 0,
"open": 61793
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 10:08:00",
"flag": -1,
"last": 61732,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61745,
"low": 61693,
"contName": null,
"time": 1635732480000,
"sourceClose": 0,
"close": 61745,
"seq": 0,
"open": 61745
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 10:09:00",
"flag": -1,
"last": 61732,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61732,
"low": 61732,
"contName": null,
"time": 1635732540000,
"sourceClose": 0,
"close": 61732,
"seq": 0,
"open": 61732
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 10:10:00",
"flag": -1,
"last": 61732,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61732,
"low": 61732,
"contName": null,
"time": 1635732600000,
"sourceClose": 0,
"close": 61732,
"seq": 0,
"open": 61732
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 10:11:00",
"flag": -1,
"last": 61732,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61732,
"low": 61732,
"contName": null,
"time": 1635732660000,
"sourceClose": 0,
"close": 61732,
"seq": 0,
"open": 61732
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 10:12:00",
"flag": -1,
"last": 61732,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61732,
"low": 61732,
"contName": null,
"time": 1635732720000,
"sourceClose": 0,
"close": 61732,
"seq": 0,
"open": 61732
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 10:13:00",
"flag": -1,
"last": 61768,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61768,
"low": 61726,
"contName": null,
"time": 1635732780000,
"sourceClose": 0,
"close": 61732,
"seq": 0,
"open": 61732
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 10:14:00",
"flag": -1,
"last": 61797,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61797,
"low": 61768,
"contName": null,
"time": 1635732840000,
"sourceClose": 0,
"close": 61768,
"seq": 0,
"open": 61768
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 10:15:00",
"flag": -1,
"last": 61774,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61797,
"low": 61774,
"contName": null,
"time": 1635732900000,
"sourceClose": 0,
"close": 61797,
"seq": 0,
"open": 61797
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 10:16:00",
"flag": -1,
"last": 61816,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61816,
"low": 61768,
"contName": null,
"time": 1635732960000,
"sourceClose": 0,
"close": 61774,
"seq": 0,
"open": 61774
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 10:17:00",
"flag": -1,
"last": 61751,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61816,
"low": 61751,
"contName": null,
"time": 1635733020000,
"sourceClose": 0,
"close": 61816,
"seq": 0,
"open": 61816
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 10:18:00",
"flag": -1,
"last": 61748,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61751,
"low": 61748,
"contName": null,
"time": 1635733080000,
"sourceClose": 0,
"close": 61751,
"seq": 0,
"open": 61751
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 10:19:00",
"flag": -1,
"last": 61751,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61751,
"low": 61738,
"contName": null,
"time": 1635733140000,
"sourceClose": 0,
"close": 61748,
"seq": 0,
"open": 61748
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 10:20:00",
"flag": -1,
"last": 61742,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61755,
"low": 61742,
"contName": null,
"time": 1635733200000,
"sourceClose": 0,
"close": 61751,
"seq": 0,
"open": 61751
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 10:21:00",
"flag": -1,
"last": 61748,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61748,
"low": 61742,
"contName": null,
"time": 1635733260000,
"sourceClose": 0,
"close": 61742,
"seq": 0,
"open": 61742
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 10:22:00",
"flag": -1,
"last": 61751,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61751,
"low": 61745,
"contName": null,
"time": 1635733320000,
"sourceClose": 0,
"close": 61748,
"seq": 0,
"open": 61748
},
{
"sourceSeq": 0,
"periodWithDate": "2021-11-01 10:23:00",
"flag": -1,
"last": 61735,
"contract": null,
"sourceTime": null,
"volume": 0,
"sourceDate": null,
"high": 61745,
"low": 61735,
"contName": null,
"time": 1635733380000,
"sourceClose": 0,
"close": 61751,
"seq": 0,
"open": 61745
},
];
}
// //获取火币数据,需要翻墙
// Future<String> getIPAddress(String? period) async {
// var url =
// 'https://api.huobi.br.com/market/history/kline?period=${period ?? '1day'}&size=300&symbol=btcusdt';
// late String result;
// final response = await http.get(Uri.parse(url));
// if (response.statusCode == 200) {
// result = response.body;
// } else {
// print('Failed getting IP address');
// }
// return result;
// }
}