主页 > imtoken国内无法下载 > 比特币数据分析软件开发

比特币数据分析软件开发

imtoken国内无法下载 2023-04-19 05:10:18

前几天写了三篇关于如何做“股票数据分析软件”的图文,分为以下三个部分:

-

-

p>

-

我们知道,中国只有上海和深圳两个证券交易所,它们是中心化交易所。他们不向具有编程技能的人提供免费的 API 接口。说有些无能为力,受券商束缚,让人很不舒服。

但在币圈,所有数字货币交易所都免费为大家开放API接口。这为那些具有编程技能和一些数学基础并且喜欢量化来验证他们自己的交易策略的人提供了一个机会。

btc行情数据

在股市中,设计交易策略的主要参考是沪深300指数,因为国家已经开立了这个指数的股指期货,大资金可以用来对冲,可以反映整个的走势市场。

在数字货币市场,比特币(BTC)的交易情况类似于沪深300指数。通常其他主流数字货币如 ETH、EOS、BTM 等都与 BTC 挂钩。因此,在设计数字货币的交易策略时,需要锚定BTC的交易走势。

BTC交易走势的判断无非是同一套,先爬取数据,再分析数据,最后将结果可视化,根据结果设计交易策略。

既然套路一样,自然的想法就是将之前设计的软件进行扩展,应用到BTC数据的分析中。除了可以分析股票的数据,还可以分析数字货币的数据。完美!

其实唯一需要扩展的地方就是数据采集部分,其他部分的逻辑都是一样的,可以修改配置参数。

CoinMarketCap是数字货币领域比较权威的评测网站。很多APP都是通过抓取这个网站的数据来做的,我们的数据也是从这个网站抓取的。

获取BTC数据的请求地址:

btc行情数据

https://coinmarketcap.com/currencies/bitcoin/historical-data/?start=20180426&end=20180726

获取EOS数据的请求地址:

https://coinmarketcap.com/currencies/eos/historical-data/?start=20180426&end=20180726

比较了币种/比特币和币种/eos,后半部分是数字货币的名称。参数start和end表示请求数据的开始时间和结束时间。

这样,我们就可以写一个函数来获取HTML的DOM节点:

private IHtmlDocument GetHtmlDocument(string coinName, DateTime start, DateTime end)
{
    string start1 = DateToYearMonthDay(start);
    string end1 = DateToYearMonthDay(end);
    string url = "https://coinmarketcap.com/currencies/"
                    + coinName
                    + "/historical-data/?start="
                    + start1 +
                    "&end=" + end1;
    IHtmlDocument document;
    try
    {
        document = new JumonyParser().LoadDocument(url);
    }
    catch
    {
        document = null;
    }
    return document;
}
private string DateToYearMonthDay(DateTime dt)
{
    //规范化时间的表示
    string result = dt.Year.ToString();
    result += dt.Month.ToString().PadLeft(2, '0');
    result += dt.Day.ToString().PadLeft(2, '0');
    return result;
}

得到HTML的DOM节点后,使用JQuery选择器的语法可以找到对应的标签来获取想要的数据。

btc行情数据

对于本篇的知识点,还有一点需要注意。股票数据是通过爬取新浪财经网站获得的。网址如下:

http://vip.stock.finance.sina.com.cn/corp/go.php/vMS_MarketHistory/stockid/000300/type/S.phtml?year=2018&jidu=3

这条数据的开始和结束时间是按照年份和季度来传递的。为了扩展我们的代码而不是修改代码,我们需要在 DateTime 和 year 和 jidu 之间做一个映射,这样所有代码的逻辑是完全一致的,映射函数如下:

public static void GetDateTime(int year, int jidu, out DateTime start, out DateTime end)
{
    // 给定 年份 和 季度 得到 起始时间 和  终止时间
    start = new DateTime(year, 1, 1);
    end = new DateTime(year, 3, 31);
    switch (jidu)
    {
        case 2:
            start = new DateTime(year, 4, 1);
            end = new DateTime(year, 6, 30);
            break;
        case 3:
            start = new DateTime(year, 7, 1);
            end = new DateTime(year, 9, 30);
            break;
        case 4:
            start = new DateTime(year, 10, 1);
            end = new DateTime(year, 12, 31);
            break;
    }
}

没有其他需要注意的地方。最后看一下我做的Demo:

主窗体:用于显示可视化数据并为各种功能提供导航。

主窗体

btc行情数据

数据采集表:用于从CoinMarketCap网站抓取数字货币数据。

数据采集

数据分析表:用于分析抓取到的交易数据。

数据分析

数据可视化形式:以图形方式显示数据和分析结果。主要包括蜡烛图、交易曲线图、分位数图、筹码分布图等。

蜡烛图

交易曲线图

btc行情数据

筹码分布图

这里,关于爬取数据,通过两个案例来介绍分析数据和可视化数据的整个逻辑。如果您有任何问题,请随时问我,我会回答您的问题。

关于数字货币交易所之间的套利和交易所内的三角套利,这些代码将在开学后由LSGO软件技术团队的新学员实践。我还是快点做我的工作。酒吧。

两天前我和梅华为先生共进晚餐。他的思想很开阔btc行情数据,在哲学、历史、成功等方面都知道很多。他在DreamTeach教给学生做人的道理,培养了很多优秀的学生。我很佩服他。

我的思维很微观btc行情数据,我的视角比他低很多。我会教LSGO的学生最基本的编程知识,带他们解决一些问题,并告诉他们解决这些问题需要什么。有哪些知识点,这些知识点之间的关系是什么,通过不断的解决问题,将学习到的知识点连接成一个网络,逐步形成一套解决问题的知识体系。同样培养了很多优秀的学生。

要走出去,减少在实验室编写代码的时间,多与其他教师团队交流,相互融合。也许华电在电力以外的其他领域也会做得很好。

今天就写到这里吧!再见!