Flutter量化交易插件quantactions_flutter_plugin的使用

Flutter量化交易插件quantactions_flutter_plugin的使用

QuantActions插件允许开发者在Flutter应用中添加所有QuantActions功能。这包括:

  • 自动数据收集
  • 访问经过处理的指标和见解(Tap Intelligence Engine, TIE)
  • 启用设备通信
  • 订阅不同的用户群组

QuantActions插件可以通过几个简单的步骤进行设置。对于一个实际的例子,请查看example目录。

重要提示:为了让插件正常工作,你需要从QuantActions获取一个api_key。如果你还没有收到你的api_key,请联系我们。

初始Flutter设置

首先,在你的pubspec.yaml文件中添加依赖项:

dependencies:
  quantactions_flutter_plugin: ^0.2.1

初始Android设置

我们建议使用Android Gradle Plugin (AGP) 8.5+ 和 Kotlin 2.0+。在你的build.gradle文件中添加github maven仓库,其中包含QuantActions Android SDK。推荐使用个人访问令牌:

allprojects {
    repositories {
        ...
        maven {
            name = "GitHubPackages"
            url = uri("https://maven.pkg.github.com/QuantActions/quantactions-android-sdk")
            credentials {
                username = '...'
                password = '...'
            }
        }
    }
}

推荐添加一些Android特定的自定义配置。你还需要直接依赖项到你的app/build.gradle文件中:

implementation 'com.quantactions:quantactions-android-sdk:1.1.1'

这些步骤足以正确地将插件集成到应用程序(Android端),但继续阅读QuantActions Android SDK文档以了解如何设置必要的Android权限来开始数据收集。

初始iOS设置

对于iOS,你可以遵循QuantActions iOS SDK文档中的说明,特别是从添加你的api_key开始:

api_key=your_api_key

注意,你可以跳过安装原生SDK的步骤,因为这是由插件完成的。

在原生iOS文档中,你会看到需要添加一个自定义键盘扩展,它负责收集数据。完成后,你需要向你的应用Podfile中添加以下行,以确保QuantActions SDK正确链接到键盘扩展:

target 'Runner' do
use_frameworks!
use_modular_headers!

    flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))

    target 'NameOfYourKeyboardExtension' do
        inherit! :search_paths
    end

end

添加QA功能到应用

整个QA功能可以在代码中的任何地方通过单例QA访问。可以这样实例化:

import 'package:quantactions_flutter_plugin/quantactions_flutter_plugin.dart';
final qa = QAFlutterPlugin();

在使用任何功能之前,QA单例需要初始化。为此,你需要一个由QuantActions提供的api_key。如果还没有收到你的api_key,请联系我们。

推荐使用flutter_dotenv来处理Flutter中的API密钥。在项目的根目录下创建一个.env文件,并添加以下内容:

api_key=your_api_key

在你的main.dart文件中,你可以检索API密钥:

import 'package:flutter_dotenv/flutter_dotenv.dart';

void main() async {
  await dotenv.load(fileName: ".env");
  static final String tempApiKey = dotenv.env['api_key'] ?? '';
  runApp(MyApp());
}

然后你可以在代码中访问它并初始化QuantActions插件:

qa.init(
  api_key: dotenv.env['api_key'],
  age: 1991,
  gender: Gender.other,
  selfDeclaredHealthy: true
);

注册到用户群组

为了跟踪设备,必须订阅该设备到一个用户群组。只需使用QA提供的cohortId

qa.subscribe(subscriptionIdOrCohortId: 'your_cohort_id');

当使用cohortId订阅设备时,设备会自动分配一个subscriptionId,可以使用以下代码检索此ID:

final List<Subscription> subscriptions = await _qa.getSubscriptions();

请注意,每个用户可以同时订阅多个用户群组。

多个设备(目前仅限Android)

可以通过提供identityId密码在初始化SDK时链接多个设备到同一个用户。SDK将能够将来自不同设备的数据链接到同一个用户。

在第一个设备上,检索identityId密码

final String identityId = await qa.identityId;
final String? password = await qa.password;

然后在第二个设备上,使用identityId密码初始化SDK:

qa.init(
  api_key: '',
  identityId: identityId,
  password: password
);

重要提示:由于QuantActions与用户身份没有任何关联,因此无法在设备丢失或损坏的情况下恢复数据。建议将QuantActionsidentityIdpassword与用户的账户信息一起存储。在设备丢失或损坏的情况下,可以在新设备上使用用户的identityIdpassword重新初始化QuantActions SDK,以恢复数据并保证旧设备和新设备之间指标的连续性。

设置注意事项

  • 检查是否已正确添加api_key(Info.plist + .env文件)
  • [Android] 检查是否已请求必要权限
  • [iOS] 检查是否已正确添加键盘并修改Podfile

确认一切运行正常

在SDK集成完成后,你可以添加一些检查以确保一切正常。

  1. 使用qa.isDeviceRegistered()检查SDK是否已正确初始化(返回布尔值)
  2. 使用qa.isDataCollectionRunning()检查数据收集是否正常运行(返回布尔值)
  3. 使用qa.getSubscriptions()检查设备是否已在QA后端注册和/或注册到用户群组成功
qa.getSubscriptions();

暂停数据收集

虽然不推荐这样做,但可以通过QA单例提供的方法暂停/恢复数据收集:

qa.pauseDataCollection();
qa.resumeDataCollection();

获取指标和趋势

虽然数据收集和同步在SDK内自动化完成,但为了访问应用所需的一小部分指标和趋势,需要手动在应用内检索。

可以通过以下方式程序化检索指标和趋势(返回一个Stream对象):

qa.getMetric(metric: Metric.sleepScore, interval: MetricInterval.month),
qa.getMetric(metric: Trend.sleepScore, interval: MetricInterval.month),
qa.getMetric(metric: Metric.cognitiveFitness, interval: MetricInterval.month),
qa.getMetric(metric: Trend.cognitiveFitness, interval: MetricInterval.month),

检查MetricTrend以获取当前版本SDK中可用的指标和趋势列表,还检查MetricInterval以获取可用的时间间隔。

该函数返回一个包含TimeSeries对象的异步Flow。

由于用户的指标需要2到7天才能可用(见ETA),开发人员可以访问一个每天更新的采样设备的样本指标:

qa.getSampleMetric(api_key: api_key, metric: Metric.sleepScore, interval: MetricInterval.month);

注意,此方法需要传递api_key,因为它可以在无需SDK初始化的情况下调用。

日记功能

SDK还允许使用日记功能记录一系列条目。每个条目包括:

  • 日期
  • 描述条目的小文本
  • 预定义事件列表
  • 条目中每个事件的评分(1到5分)

预定义事件可以从以下位置获取:

qa.getJournalEventKinds();

添加(或编辑)条目可以通过以下方式完成:

qa.saveJournalEntry(...);

条目也可以删除:

qa.deleteJournalEntry(...);

所有条目可以通过以下方式检索:

qa.getJournalEntries();

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

1 回复

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


quantactions_flutter_plugin 是一个用于量化交易的 Flutter 插件,它允许开发者在 Flutter 应用中集成量化交易相关的功能。以下是如何使用该插件的基本步骤:

1. 添加依赖

首先,在 pubspec.yaml 文件中添加 quantactions_flutter_plugin 依赖:

dependencies:
  quantactions_flutter_plugin: ^<version>

请将 <version> 替换为最新的插件版本。

2. 安装依赖

运行以下命令来安装依赖:

flutter pub get

3. 导入插件

在需要使用 quantactions_flutter_plugin 的 Dart 文件中导入该插件:

import 'package:quantactions_flutter_plugin/quantactions_flutter_plugin.dart';

4. 初始化插件

在使用插件之前,通常需要进行初始化操作:

QuantActionsFlutterPlugin.initialize();

5. 使用插件功能

quantactions_flutter_plugin 提供了多种量化交易相关的功能。以下是一些常见的使用示例:

获取行情数据

String symbol = "AAPL";
MarketData marketData = await QuantActionsFlutterPlugin.getMarketData(symbol);
print("当前价格: ${marketData.price}");

执行交易

String symbol = "AAPL";
double quantity = 10;
TradeResult tradeResult = await QuantActionsFlutterPlugin.executeTrade(symbol, quantity);
print("交易结果: ${tradeResult.status}");

获取交易历史

List<TradeHistory> tradeHistoryList = await QuantActionsFlutterPlugin.getTradeHistory();
tradeHistoryList.forEach((trade) {
  print("交易时间: ${trade.time}, 交易数量: ${trade.quantity}, 交易价格: ${trade.price}");
});

6. 处理错误

在使用插件过程中可能会遇到错误,建议使用 try-catch 块来捕获和处理异常:

try {
  MarketData marketData = await QuantActionsFlutterPlugin.getMarketData(symbol);
  print("当前价格: ${marketData.price}");
} catch (e) {
  print("获取行情数据失败: $e");
}
回到顶部