首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >我的python交易机器人计算MACD错误吗?

我的python交易机器人计算MACD错误吗?
EN

Stack Overflow用户
提问于 2020-12-12 13:49:36
回答 1查看 325关注 0票数 0

我的python交易机器人计算出MACD在开始时非常高,然后开始逐渐下降,无论什么股票或股票实际上是如何移动的。

Here is the matplotlib chart of the MACD and Signal Line (All stocks/crytocurrency's plots look very similar)

我尝试调整span值,但无济于事。这发生在我使用的任何股票/加密货币上。此代码基于计算机科学的MACD交易教程,但适用于实时交易,而不是为过去的数据和日志等内容生成图表。(另外,我还是个编程新手,所以请试着用简单的术语解释一下是怎么回事)这是代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    def algorithm(self, df):
    '''
    Generates MACD

    '''

    # Set the date(first column) to be the index of the dataframe
    df = df.set_index(df[self.time_stamp_index])
    # print(df.head())

    # Visually show the stock price
    if self.do_plotting == True:
        # print('Plotting Data')
        plt1 = px.line(df, x=self.time_stamp_index,
                       y=self.close_price_index)

    # Calculate the MACD and signal line indicators

    # Calculate the Short term EWM(for 10 minutes)
    ShortEMA = df[self.close_price_index].ewm(
        span=self.short_span, adjust=False).mean()

    # Calculate the long term exponential moving avg (1 hour)
    LongEMA = df[self.close_price_index].ewm(
        span=self.long_span, adjust=False).mean()

    # Calculate the MACD line
    MACD = ShortEMA - LongEMA

    # Calculate signal line
    signal = MACD.ewm(span=self.signal_span, adjust=False).mean()

    # Add signal line and MACD line to dataframe
    df['MACD'] = MACD
    df['Signal Line'] = signal

    # Plot the chart with the lines
    if self.do_plotting == True:
        plt2 = px.line(df, x=self.time_stamp_index, y=[
            'MACD', 'Signal Line', self.close_price_index],
            title=f'{self.symbol} STOCK DATA')
        plt2.show()

    # DEBUG
    if df['MACD'][len(df) - 1] > df['Signal Line'][len(df) - 1]:
        print('[DEBUG]: BUY SIGNAL')

    elif df['MACD'][len(df) - 1] < df['Signal Line'][len(df) - 1]:
        print('[DEBUG]: SELL SIGNAL')

    # send vals to self. so that it can be accessed from the log function.
    self.macd = df['MACD'][len(df) - 1]
    self.signal_line = df['Signal Line'][len(df) - 1]

    Buy = []
    Sell = []

    current_hold_flag = self.symbol in current_stocks

    for i in range(len(df)):
        if df['MACD'][i] > df['Signal Line'][i]:
            Sell.append(None)
            if current_hold_flag == False:
                Buy.append(df[self.close_price_index][i])
                self.flag = 1
            else:
                Buy.append(None)
        elif df['MACD'][i] < df['Signal Line'][i]:
            Buy.append(None)
            if current_hold_flag == True:
                Sell.append(df[self.close_price_index][i])
                self.flag = 0
            else:
                Sell.append(None)
        else:
            Buy.append(None)
            Sell.append(None)

    buy_sell = (Buy, Sell)

    df['Buy_Signal_Price'] = buy_sell[0]
    df['Sell Signal_Price'] = buy_sell[1] 

    if Buy[-1] != None:                             # If last trade was a buy
        self.buy_or_sell = 'buy'
        self.buy(Buy[-1])
    elif Sell[-1] != None:                          # If last trade was a sell
        self.buy_or_sell = 'sell'
        self.sell(Sell[-1])
    elif Buy[-1] == None and Sell[-1] == None:      # If no trade happened
        self.buy_or_sell = 'no trade' 
        print(f'{self.log_time}Did not trade')
        if len(current_stocks) > 0:
            print(
                f'{self.log_time}Currently holding: {",".join(current_stocks)}')
        else:

            print(f'{self.log_time}Not holding any stocks currently')
    else:
        print('ERROR')
        r = input()
        exit()
EN

回答 1

Stack Overflow用户

发布于 2021-11-23 18:49:42

如果您试图从交易密码赚钱,您可以有兴趣使用新的货币上市信息ang=nd添加新的对在最大的交易所,如果使用得当,您可以赚取约20%,每天。要获取有关加密交易所的新列表的信息,您可以使用此API:

https://rapidapi.com/Diver44/api/new-cryptocurrencies-listings/

它包括一个新上市的端点,来自最大交易所的新对,以及一个非常有用的端点,其中包含有关交易所的信息,您可以在该交易所购买特定硬币和该硬币的价格。这是有点付费的,但这是值得的!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65265653

复制
相关文章
用matplotlib和pandas绘制股票MACD指标图,并验证化交易策略
从数学角度来分析,MACD指标是根据均线的构造原理,对股票收盘价进行平滑处理,计算出算术平均值以后再进行二次计算,它是属于趋向类指标。
用户1153489
2020/05/26
4.2K0
我的交易系统
Robert Carver是一位CTA策略研究与实战领域活跃的分享者,他的书Systematic Trading清晰且系统的介绍了如何构建一套多品种多周期的CTA交易系统。知乎上有小伙伴分享了系统的读书笔记:
量化投资与机器学习微信公众号
2022/01/10
1K0
我的交易系统
Python 初学者常见错误——我有 Anaconda 了,还能单独安装 Python 吗?
在这种情况下,还能直接从 Python 官网下载安装其他版本的 Python 吗?
青南
2019/09/03
18.1K0
实战:基于技术分析的Python算法交易
本文是用 Python 做交易策略回测系列文章的第四篇。上个部分介绍了以下几个方面内容:
AI科技大本营
2019/11/14
1.6K0
实战:基于技术分析的Python算法交易
用Python可视化股票指标
但是一个量化交易可以通过回测系统建立信心然后让其一如既往的运行,以达到让钱生钱的目的,并且是自动的。
py3study
2020/01/06
3K0
用Python可视化股票指标
使用Python的错误计算器
Python 中的错误计算器是某些计算给出错误结果的计算器。在 Python 中,我们可以创建自己的计算器并使用它来进行数学计算。如果我们想创建一个有缺陷的计算器,我们需要在执行计算的函数中创建或引入错误。在本文中,我们将使用 Python 创建一个有缺陷的计算器。
很酷的站长
2023/08/11
1840
使用Python的错误计算器
freqtrade 学习笔记
以试运行(dry-run)或实时模式(使用 freqtrade trade )启动 freqtrade 将启动机器人并启动机器人迭代循环。这也将运行 bot_start() 回调。默认情况下,bot 循环每隔几秒运行一次 ( internals.process_throttle_secs ) 并执行以下操作(这个循环将一次又一次地重复,直到机器人停止):
王磊-字节跳动
2023/05/25
6.2K1
金融数据分析与挖掘具体实现方法 -2
貌似三个月没有更新博客园了,当时承诺的第二篇金融数据分析与挖掘这几天刚好又做了总结,在国内经济不景气的现在来对这个话题结个尾。
汪凡
2019/02/22
2.3K0
厉害!这还是我认识的Python吗!
Python 可用的地方非常多。无论是从入门级选手到专业级数据挖掘、科学计算、图像处理、人工智能,Python 都可以胜任。或许是因为这种万能属性,周围好更多的小伙伴都开始学习 Python。
AI科技大本营
2018/07/23
6910
厉害!这还是我认识的Python吗!
我的Python书被台湾的出版社引进版权了,书的名字也更吸引人了
我去年出了一本Python书,基于股票大数据分析的Python入门实战,在这本书里,我是用股票范例讲述Pythorn的爬虫,数据分析和机器学习知识点,如下是京东的连接。
用户1153489
2021/06/01
6730
我的Python书被台湾的出版社引进版权了,书的名字也更吸引人了
Qbot——一款可自动量化交易的AI应用
在ChatGPT引领的AI浪潮下,涌现了一大批AI应用,其背后其实蕴含着一个基本事实:AI能力得到了极大突破——大模型的能力有目共睹,未来只会变得更强。这世界唯一不变的就是变,适应变化、拥抱变化、喜欢变化,天行健君子以自强不息。我们相信未来会有越来越多的大模型出现,AI正在逐渐平民化,将来每个人都可以利用大模型轻松地做出自己的AI产品。
山行AI
2023/06/14
6.5K0
Qbot——一款可自动量化交易的AI应用
Python这么火,我可以学吗?
越来越多行业都在应用的Python,主要的应用领域有哪些呢?Python每个人都可以学吗?今天我们就来详细看一下。
老九君
2020/03/11
1.1K0
虚拟货币可靠吗 虚拟币交易可靠吗
  随着比特币市场的影响扩大,各类虚拟货币出现的越来越多,进入币圈炒币的人也越来越多。但时至今日,仍旧有不少人认为,买币就像做外汇等传统投资一样。那么,虚拟货币与外汇投资到底有什么区别呢?炒币好,还是炒汇好呢?哪类市场更安全可靠、更赚钱呢?
用户4129775
2018/12/12
2.2K0
虚拟货币可靠吗 虚拟币交易可靠吗
Python爬虫:我这有美味的汤,你喝吗
在前面的文章中已经讲过了正则表达式的使用方法了,但是如果正则表达式出现问题,那么得到的结果就不是我们想要的内容。熟悉前端的朋友肯定知道,对于一个网页来说,都有一定的特殊结构和层级关系,而且很多节点都用id和class来区分。所以可以借助网页的结构和属性来提取数据。
我被狗咬了
2021/01/13
2.4K0
Python爬虫:我这有美味的汤,你喝吗
朋友圈只有我没学python吗?
很快,刘大编就凭借985的学历和3000字的简历在一众应聘者中脱颖而出。餐馆老板很欣赏刘大编的才华和那些洗的锃亮的餐盘。不过他告诉刘大编辑,要想转正,成为一个合格的洗盘小工,刘大编还需要一项重要的技能——Python。
CAE学习笔记
2022/05/30
3890
基于股票大数据分析的Python入门实战(视频教学版)的精彩插图汇总
在我写的这本书,《基于股票大数据分析的Python入门实战(视频教学版)》里,用能吸引人的股票案例,带领大家入门Python的语法,数据分析和机器学习。
用户1153489
2021/03/02
9470
基于股票大数据分析的Python入门实战(视频教学版)的精彩插图汇总
《极限挑战》罗志祥遭套路“破产”,我们却看到了更大的危机
游戏中,急于与王迅猜拳赢得胜利的罗志祥,亲手将一个市值和利润率颇高的公司送入破产。相反,黄磊公司虽没有特别良好的市场竞争力,但得益于资深经理人的协助,他利用各种金融手段与股民建立信任机制,降低风险同时拉高公司市值。
AI科技大本营
2018/07/24
8100
《极限挑战》罗志祥遭套路“破产”,我们却看到了更大的危机
PowerBI DAX 计算客户的平均交易年龄
本文来研究客户的交易年龄。与自然年龄不同,交易年龄指的是客户在发生交易时的年龄,这在多年分析中的差异就会非常显著。
BI佐罗
2021/03/25
1.8K0
PowerBI DAX 计算客户的平均交易年龄
​浅浅试了一下Python机器人自动写作,能加入作协吗?我看行
最近贾平凹的女儿贾浅浅加入作协的事情,引起了很多的争论。部分网友吐槽这是什么‘屎尿屁’文章,而部分专家又站出来说她的作品够格,加入作协合规。究竟谁对谁错?欢迎大家在评论区讨论。
程序员晚枫
2022/08/27
4330
​浅浅试了一下Python机器人自动写作,能加入作协吗?我看行
浅浅试了一下Python机器人自动写作,能加入作协吗?我看行!
最近贾平凹的女儿贾浅浅加入作协的事情,引起了很多的争论。部分网友吐槽这是什么‘屎尿屁’文章,而部分专家又站出来说她的作品够格,加入作协合规。究竟谁对谁错?欢迎大家在评论区讨论。
程序员晚枫
2022/12/09
3850
浅浅试了一下Python机器人自动写作,能加入作协吗?我看行!

相似问题

crpto交易技术分析(MACD)

20

无法通过python pandas计算MACD

10

python交易机器人(票据交易)

12

从零开始计算python中的macd

12

电网交易机器人-自动参数计算

112
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文