Swift Trading View

Swift Trading View 是一个功能强大、高度优化、可定制的金融图表库,适用于 iOS、macOS、watchOS、tvOS 和 visionOS 应用程序。它提供了一个类似 Binance 的交易视图界面,使开发人员可以轻松地将专业级的金融图表集成到他们的 Swift 应用程序中。

image
iOS image
WatchOS image
TVOS image
VisionOS image

功能特点

性能

Swift Trading View 的构建以性能为先

平台支持

Swift Trading View 由两个主要组件组成,它们具有不同的平台支持

SwiftTA 包装器

SwiftTA 包装器提供核心技术分析计算,支持

TradingView 组件

TradingView 组件提供交互式图表界面,支持

请注意,虽然 SwiftTA 包装器可以在更广泛的平台版本上使用,但完整的 TradingView 组件由于使用了高级 SwiftUI 功能,因此需要更新的操作系统版本。

安装

Swift Package Manager

您可以使用 Swift Package Manager 安装 Swift Trading View。将以下行添加到您的 Package.swift 文件中

dependencies: [
    .package(url: "https://github.com/sergeykhliustin/swift-trading-view.git", from: "1.0.0")
]

或者,在 Xcode 中,转到 File > Swift Packages > Add Package Dependency 并输入仓库 URL

https://github.com/sergeykhliustin/swift-trading-view.git

用法

这是一个如何在您的 SwiftUI 应用程序中使用 Swift Trading View 的基本示例

import SwiftUI
import SwiftTradingView

struct ContentView: View {
    var body: some View {
        TradingView(
            data: data,
            primaryContent: [
                Candles(),
                MAIndicator(),
                BBIndicator(),
            ],
            secondaryContent: [
                MACDIndicator(),
                RSIIndicator()
            ]
        )
    }
}

整个界面提供默认参数,但您可以自定义所有参数。

这将创建一个高性能交易视图,在主图表区域中包含蜡烛图、移动平均线 (MA)、布林带 (BB),并在副图表区域中包含 MACD 和 RSI 指标。

自定义

Swift Trading View 提供了广泛的自定义选项。以下是一些示例

自定义指标

您可以在将指标添加到图表时自定义各个指标

MAIndicator(
    periods: [
        .init(value: 7, color: .yellow),
        .init(value: 25, color: .blue),
        .init(value: 99, color: .red)
    ],
    lineWidth: 2
)

调整图表外观

您可以调整图表外观的各个方面

TradingView(
    data: data,
    candleWidth: 4...30,
    candleSpacing: 1,
    scrollTrailingInset: 50,
    primaryContentHeight: 400,
    secondaryContentHeight: 150,
    secondaryContentSpacing: 10,
    // ... other parameters ...
)

自定义坐标轴

只需实现 Axis 协议,并将您的实现作为参数提供给 TradingView.xAxisTradingView.yAxis

自定义指标

实现您自己的指标,使其符合 Content 协议,并将其作为 TradingView.primaryContentTradingView.secondaryContent 传递

贡献

欢迎为 Swift Trading View 做出贡献!请随时提交 Pull Request。