Python编程股票自动交易实现盈利30% ChatGPT + TradingView + PineScript交易自动化

前言

貌似油管上使用ChatGPT制定交易策略及编程,从而实现股票交易自动化并获得盈利的视频很火爆。今天看到的这款视频采用ChatGPT+TradingView+PineScript编程模拟交易并评估盈利状况。本文简单介绍该视频内容后,详细介绍如何用Python实现并改进该视频中的策略,用特斯拉股票分时数据来模拟股票交易并获得盈利30%。

目录

ChatGPT+TradingView+PineScript股票交易自动化

Python编程股票自动交易实现盈利30%

名词解释

VWAP成交量加权平均价格(Volume Weighted Average Price)

RSI相对强弱指数(Relative Strength Index)

Trading View

ChatGPT+TradingView+PineScript股票交易自动化

视频:ChatGPT AI Made Me A $100,000 TRADING STRATEGY, Humbled Trader, 关注人数:102万人,视频播放量:61万次。

网址:https://www.youtube.com/watch?v=Jh5rJskkEkU

主要交易工具:

Trading View + Pine script programming language

Thinkorswim by TDAmeritrade

Trading strategy: VWAP and volumn 交易策略:VWAP 和 交易量

- sell the long when position increased 3%, close the short when position also increased 3% 当位置增加3%时卖出多头,当位置同样增加3%时平仓空头 → 关于这个策略作者有疑问!!!

- buy when the price crosses over VWAP, short when the price crosses below VWAP 当价格穿过 VWAP 时买入,当价格跌破 VWAP 时卖出(买入时机就是所谓的golden cross 金叉!)

- ChatGPT to create entries and exits on Trading View Pine script 用 ChatGPT生成Trading View的Pine Script程序,在其中包含了卖出和买入的点

Python编程股票自动交易实现盈利30%

Source: ChatGPT Trading Strategy Fully Backtested with Python, Lachezar Haralampiev, MSc, Quant Factory https://medium.com/quant-factory/chatgpt-trading-strategy-fully-backtested-with-python-70e6769ab550

使用特斯拉股票分时数据,用VWAP及RSI来判断应该卖出还是买进。基本策略是基于上一章介绍的油管视频,加上了RSI作为判断材料。加上RSI之前模拟结果为年亏损-52.6%,加上RSI后模拟结果为年盈利30.7%。

加上RSI之前年亏损-52.6%:

图片

图片

加上RSI作为判断材料后年盈利30.7%:

图片

图片

图片

特斯拉分时数据免费下载网址:

https://www.quantfactory.ai/p/tesla-hourly-data

Python程序(加入RSI之前和之后):

# Load the packages we would need for the whole project.

import datetime as dt

import pandas as pd

import numpy as np

import pandas_ta

tsla_prices_df = pd.read_csv(‘tsla_1h_prices.csv’)

# Calculate VWAP indicator and then first strategy signal.

tsla_prices_df[‘typical_price’] = (tsla_prices_df[‘high’]+tsla_prices_df[‘low’]+tsla_prices_df[‘close’])/3

tsla_prices_df[‘typical_price_volume’] = tsla_prices_df[‘typical_price’]*tsla_prices_df[‘volume’]

# 在一个名为tsla_prices_df的DataFrame中创建了一个新的列cumm_price_volume

# 这个新的列的值是由typical_price_volume列的滚动20行的总和计算而来(rolling(20).sum()函数)

tsla_prices_df[‘cumm_price_volume’] = tsla_prices_df[‘typical_price_volume’].rolling(20).sum()

tsla_prices_df[‘cumm_volume’] = tsla_prices_df[‘volume’].rolling(20).sum()

tsla_prices_df[‘vwap’] = tsla_prices_df[‘cumm_price_volume’]/tsla_prices_df[‘cumm_volume’]

tsla_prices_df

# Close/VWAP crossover signal.

# shift()函数在名为tsla_prices_df的DataFrame中创建了一个新的列close_lag_1

# 这个新列的值是上一行的close列的值

tsla_prices_df[‘close_lag_1’] = tsla_prices_df[‘close’].shift()

tsla_prices_df[‘vwap_lag_1’] = tsla_prices_df[‘vwap’].shift()

tsla_prices_df[‘signal_1’] = tsla_prices_df.apply(lambda x: 1

​ if (x[‘close_lag_1’]<x[‘vwap_lag_1’])&(x[‘close’]>x[‘vwap’])

​ else (-1 if (x[‘close_lag_1’]>x[‘vwap_lag_1’])&

​ (x[‘close’]<x[‘vwap’]) else np.nan),

​ axis=1)

#加入RSI作为判断指标

# Improve the strategy by adding RSI crossover condition — above/below 50.

# RSI Above/Below 50 crossover signal.

# 使用pandas_ta库(一个为pandas库增加技术分析功能的库)来计算相对强弱指数(Relative Strength Index, RSI)

tsla_prices_df[‘rsi’] = pandas_ta.rsi(close=tsla_prices_df[‘close’],

​ length=20)

tsla_prices_df[‘rsi_lag_1’] = tsla_prices_df[‘rsi’].shift()

tsla_prices_df[‘signal_2’] = tsla_prices_df.apply(lambda x: 1

​ if (x[‘rsi’]>50) & (x[‘rsi_lag_1’]<50)

​ else (-1 if (x[‘rsi’]<50) & (x[‘rsi_lag_1’]>50) else np.nan),

​ axis=1)

tsla_prices_df[[‘close’, ‘vwap’]].plot(figsize=(16,4), lw=2)

tsla_prices_df.apply(lambda x: x[‘open’]

​ if (x[‘signal_1’]==1)&(x[‘signal_2’]==1)

​ else np.nan, axis=1).plot(marker=‘^’,

​ color=‘green’,

​ ms=10)

tsla_prices_df.apply(lambda x: x[‘close’]

​ if (x[‘signal_1’]-1)*(x[‘signal_2’]-1)

​ else np.nan, axis=1).plot(marker=‘v’,

​ color=‘red’,

​ ms=10)

plt.title(‘TSLA Stock Price’)

plt.show()

名词解释

VWAP成交量加权平均价格(Volume Weighted Average Price)

图片

RSI相对强弱指数(Relative Strength Index)

图片

Trading View交易软件

图片

-END-


学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习、自动化测试带你从零基础系统性的学好Python!

👉[CSDN大礼包:《python安装工具&全套学习资料》免费分享]安全链接,放心点击

👉Python学习大礼包👈

在这里插入图片描述

👉Python学习路线汇总👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)
在这里插入图片描述

👉Python必备开发工具👈

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python书籍和视频合集👈

观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

👉Python面试刷题👈

👉Python副业兼职路线👈

在这里插入图片描述
在这里插入图片描述
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以点击链接免费领取或者保存图片到wx扫描二v码免费领取保证100%免费

👉[CSDN大礼包:《python安装工具&全套学习资料》免费分享]安全链接,放心点击

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
★★1.编译注意事项 使用VC6打开工作区StkUI.dsw 然后可以按照以下顺序依次编译各个工程 GuiLib、profuisdll、XPFace、StkLib、StkNet、StkUI、Tools 其中工程StkUI是软件的主界面程序,Tools 是注册机以及一些简单的工具,其他 都是动态连接库。 ★★2.工程profuisdll介绍 profuisdll是一套比较专业的Windows界面库,是俄国人做的,还不错,本软件 改正了它的几个bug。在ProfUIS\Modified.txt文件中有说明。 本软件3.0版仅使用了该界面库的颜色选择对话框。 ★★3.工程GuiLib介绍 GuiLib是另一套Windows界面库,本软件改正了它的几个bug。在GuiLib\Modified.txt 文件中有说明。 本软件3.0版使用了该界面库的界面框架、菜单条、工具条。 ★★4.工程XPFace介绍 主要是本软件的一些界面美化的类,放在了这个DLL里面。 ★★5.工程StkLib介绍 这个工程是实现股票数据结构、技术指标计算的动态连接库,代码与平台无关。 其中比较重要的几个文件如下: Database.h 读取数据文件接口定义 QianLong.h 钱龙格式数据文件接口定义 SelfDB.h 自有格式数据文件接口定义,除了除权数据和行情数据外, 其他与钱龙一样 Stock.h 股票数据结构定义 Technique.h 技术指标类定义 Container.h 股票信息数据CStockInfo的数组类 Express.h 股票列表视图的列变量定义,以及自定义列的表达式计算 Strategy.h 策略定义 Profile.h 记录软件的用户配置并保存 BaseData.cpp 基本资料数据结构类实现 Database.cpp 数据文件读实现 DRData.cpp 除权数据结构数组类实现 KData.cpp K线数据结构数组类实现 Report.cpp 行情数据结构数组类实现 Minute.cpp 行情分时数据结构数组类实现 Outline.cpp 行情额外数据结构数组类实现 QianLong.cpp 钱龙数据文件读实现 SelfDB.cpp 自有格式数据文件读实现 Stock.cpp 股票数据结构实现 StStore.cpp 数据文件读实现 TechCL.cpp 自有技术指标 TechEnergy.cpp 能量类技术指标 TechKLine.cpp K线叠加类技术指标 Technique.cpp 技术指标基类 TechSwing.cpp 摆动类技术指标 TechTrend.cpp 趋势类技术指标 TechOther.cpp 其它类技术指标 Container.cpp 股票信息数据CStockInfo的数组类实现 Express.cpp 股票列表视图的列变量定义,以及自定义列的表达式计算实现 Strategy.cpp 策略定义实现 Profile.cpp 记录软件的用户配置并保存 有关详细的说明,参看源文件中的注释。 工程StkLib的几个全局静态变量: g_stockcontainer:AfxGetStockContainer()可以得到该变量的引用,该 变量记录所有股票的行情信息和基本信息,CStockInfo的数组。 g_domaincontainer:AfxGetDomainContainer()可以得到该变量的引用, 该变量记录所有板块的信息。 g_groupcontainer:AfxGetGroupContainer()可以得到该变量的引用,该 变量记录所有分组的信息。 g_stdatabase:AfxGetDB()可以得到该变量的引用,该变量实现了本软件的 数据文件接口。 g_stprofile:AfxGetProfile()可以得到该变量的引用,该变量记录当前软 件的一些设置。 ★★6.工程StkNet介绍 这个工程是实现网络数据自动下载功能的动态连接库。其中比较重要的几个文 件如下: NetDB.h 一些数据下载,安装的接口 HttpClt.h HTTP协议客户端类 InfoZip.h 压缩/解压缩Zip文件 Markup.h XML解析 XMLDoc.h XML辅助 secret.h 主要包括一些注册机的加密算法和读取硬盘序列号的类。 NetDB.cpp 一些数据下载,安装的接口实现 HttpClt.cpp HTTP协议客户端类实现 InfoZip.cpp 压缩/解压缩 Markup.cpp XML解析实现 Secret.cpp 加密文件,读取硬盘系列号等 XMLDoc.cpp XML辅助实现 secret.cpp 主要包括一些注册机的加密算法和读取硬盘序列号的类实现。 其中工程中的Tongshi Files为支持通视卡行情的实现程序 其中工程中的Yongxin Files为支持清华永新卡行情的实现程序 其中工程中的Receiver Files为本软件的行情接收的实现程序,其中将通视卡和清 华永新卡的数据结构转换成本软件内的通用数据结构,报价(REPORT)、分时(MINUTE)、 额外(OUTLINE)、K线(KDATA)、除权信息(DRDATA) 工程StkNet的全局静态变量: g_sview:AfxGetSView()可以得到该变量的引用,该变量记录注册信息。 ★★7.工程StkUI介绍 该工程生成最终可执行文件,主要是软件的界面。主要几个文件如下: BaseView.cpp 基本资料视图 ChildFrm.cpp 子窗口框架 MainFrm.cpp 主框架,响应菜单命令 StkUI.cpp 应用程序类,主程序初始化,初始数据读取等 StaticDoc.cpp 文档类 WizardView.cpp 向导视图 SimuView.cpp 策略视图 MarketView.cpp 实时行情视图 SListView.cpp 股票列表视图 StockGraph.cpp 技术指标视图画图类 DrawTech.cpp 画具体技术指标的函数,属于CGraphView类的方法 GraphView.cpp 技术指标视图 StrategyView.cpp 策略树视图 GroupView.cpp 股票分组树视图 TechsView.cpp 技术指标树视图 ★★8.工程Tools介绍 该工程包含以下几个模块: 注册机,利用了StkNet工程导出的AfxGetSView()。 从txt基本资料文件中提取财务数据的小工具。 修改文件时间的小工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值