1.tushare/米筐/akshare 以pandas为工具的量化量化金融量化分析入门级教程(附python源码)
2.TFlite 源码分析(一) 转换与量化
3.通达信量化擒龙先手!主附图/选股指标源码分享
4.文华财经软件指标公式赢顺云指标公式启航DK捕猎者智能量化系统指标源码
5.PTQ(Post Training Quantization)源码阅读四
6.手把手教你搭建自己的源码源码量化分析数据库
tushare/米筐/akshare 以pandas为工具的金融量化分析入门级教程(附python源码)
安装平台是一个相对简单的过程,因为tushare、教程教程讲解米筐和akshare这些平台不需要使用pip install来安装(米筐除外,视频但不是量化量化必需操作)。首先,源码源码删留言软件源码需要注册账户,教程教程讲解尤其是视频对于学生群体,按照流程申请免费试用资格和一定积分。量化量化然后,源码源码打开编译器,教程教程讲解比如使用anaconda的视频jupyter。
基本操作中,量化量化导入tushare和米筐时,源码源码通常使用ts和rq作为别名,教程教程讲解这会影响到之后代码的缩写。例如,使用tushare获取数据的方法可以是这样的:
df = pro.monthly(ts_code='.SZ', start_date='', end_date='', fields='ts_code,trade_date,open,high,low,close,vol,amount')
这里,ts_code是要分析的股票代码,start_date和end_date是查询的开始和结束日期,fields参数指定需要获取的数据。tushare和米筐对数据查询有详细的说明和解释。
数据处理是初学者需要重点关注的部分。使用pandas进行数据的保存和处理,是这篇文章的主要内容。推荐查找pandas的详细教程,可以参考官方英文教程或中文翻译版教程,这些教程提供了丰富的学习资源。
在处理数据时,可以使用pandas进行各种操作,如数据存储、读取、筛选、排序和数据合并。例如,存储数据到csv文件的代码为:
df.to_csv("名字.csv",encoding='utf_8_sig')
从csv文件读取数据的代码为:
pd.read_csv("名字.csv")
在数据处理中,可以筛选特定条件下的数据,如选择大于岁的人的代码为:
above_ = df[df["Age"] > ]
同时,可以对数据进行排序、筛选、重命名、删除列或创建新列等操作。合并数据时,电子开发源码可以使用`pd.concat`或`pd.merge`函数,根据数据的结构和需要合并的特定标识符来实现。
这篇文章的目的是通过提供pandas数据处理的典型案例,帮助读者更好地理解和使用tushare平台。对于在校学生来说,tushare提供的免费试用和积分系统是宝贵的资源。在使用过程中遇到问题,可以在评论区留言或分享项目难题,以便进一步讨论和提供解决方案。
再次感谢tushare对大学生的支持和提供的资源。如果觉得文章内容对您有帮助,欢迎点赞以示支持。让我们在金融量化分析的道路上共同成长。
TFlite 源码分析(一) 转换与量化
TensorFlow Lite 是 Google 推出的用于设备端推断的开源深度学习框架,其主要目的是将 TensorFlow 模型部署到手机、嵌入式设备或物联网设备上。它由两部分构成:模型转换工具和模型推理引擎。
TFLite 的核心组成部分是转换(Converter)和解析(interpreter)。转换主要负责将模型转换成 TFLite 模型,并完成优化和量化的过程。解析则专注于高效执行推理,在端侧设备上进行计算。
转换部分,主要功能是通过 TFLiteConverter 接口实现。转换过程涉及确定输入数据类型,如是否为 float、int8 或 uint8。优化和转换过程主要通过 Toco 完成,包括导入模型、模型优化、转换以及输出模型。
在导入模型时,`ImportTensorFlowGraphDef` 函数负责确定输入输出节点,并检查所有算子是否支持,同时内联图的节点进行转换。量化过程则涉及计算网络中单层计算的量化公式,通常针对 UINT8(范围为 0-)或 INT8(范围为 -~)。量化功能主要通过 `CheckIsReadyForQuantization`、`Quantize` 等函数实现,确保输入输出节点的最大最小值存在。
输出模型时,根据指定的装裱小程序源码输出格式(如 TensorFlow 或 TFLite)进行。TFLite 输出主要分为数据保存和创建 TFLite 模型文件两部分。
量化过程分为选择量化参数和计算量化参数两部分。选择量化参数包括为输入和权重选择合适的量化参数,这些参数在 `MakeInitialDequantizeOperator` 中计算。计算参数则使用 `ChooseQuantizationParamsForArrayAndQuantizedDataType` 函数,该函数基于模板类模板实现。
TFLite 支持的量化操作包括 Post-training quantization 方法,实现相关功能的代码位于 `tools\optimize\quantize_model.cc`。
通达信量化擒龙先手!主附图/选股指标源码分享
通达信量化擒龙先手!主附图/选股指标源码分享
一. 指标简介:
二. 主图指标源码
MA5:MA(C,5);
MA:MA(C,);
MA:MA(C,);
MA:MA(C,);
DIF1:=EMA(CLOSE,)-EMA(CLOSE,);
DEA1:=EMA(DIF1,9);
AAA1:=(DIF1-DEA1)*2*;
AAA上:=IF(AAA1>REF(AAA1,1),AAA1,DRAWNULL);
AAA下:=IF(AAA1
买:=;
入:=AAA1-REF(AAA1,1);
正大:=CROSS(入,买);
DIF:=EMA(CLOSE,)-EMA(CLOSE,);
DEA:=EMA(DIF,);
AAA:=(DIF-DEA)*2*;
牛股:=CROSS(AAA-REF(AAA,1),);
正大牛股:=正大 AND 牛股;
HSL:=V/CAPITAL*>5;
S1:=IF(NAMELIKE('S'),0,1);
S2:=IF(NAMELIKE('*'),0,1);
Z3:=NOT(INBLOCK('近期解禁'));
Z4:=NOT(INBLOCK('拟减持'));
Z5:=NOT(INBLOCK('股东减持'));
Z6:=NOT(INBLOCK('基金减持'));
Z7:=NOT(INBLOCK('即将解禁'));
Z8:=IF(CODELIKE(''),0,1);
Z9:=IF(CODELIKE('8'),0,1);
去掉:=S1 AND S2 AND Z3 AND Z4 AND Z5 AND Z6 AND Z7 AND Z8 AND Z9;
AA:=MA(CLOSE,8);
BB:=((ATAN((AA - REF(AA,1))) * 3.) * );
均线:=MA(CLOSE,);
均线:=MA(CLOSE,);
均线:=MA(CLOSE,);
天马:=((((((OPEN <= 均线) AND ((均线 - REF(均线,1)) > 0))
AND (CLOSE > 均线)) AND (BB > 1)) AND ((CLOSE / OPEN) > 1.)));
{ 股价必涨}
AA:=IF(CLOSE/REF(CLOSE,1)>1. AND HIGH/CLOSE<1. AND IF(CLOSE>REF(CLOSE,1),,0)>0, , 0);
SS:=MA((LOW+HIGH+CLOSE)/3,5)>REF(MA((LOW+HIGH+CLOSE)/3,5),1) AND REF(MA((LOW+HIGH+CLOSE)/3,5),1)
SC:=LHHV(MA((LOW+HIGH+CLOSE)/3,5),) AND C>REF(C,1) AND C>O;
MR:=SC AND COUNT(SS,2);
BB:=MR AND NOT(REF(MR,1));
股价必涨:=AA OR BB OR 天马;
{ 抄底}
二十日换手率:=BETWEEN(SUM(HSCOL,),,);{ 意思是 日换手率介于---之间}
DFO:=(C-REF(C,1))/REF(C,1)*<-5;
AAO:=BARSLAST(DFO);
突破:=CROSS(C,REF(O,AAO));
抄底:=二十日换手率 AND 突破;
三.副图指标源码:
DIF1:=EMA(CLOSE,)-EMA(CLOSE,);
DEA1:=EMA(DIF1,9);
AAA1:=(DIF1-DEA1)*2*;
AAA上:=IF(AAA1>REF(AAA1,1),AAA1,DRAWNULL);
AAA下:=IF(AAA1
买:=;
入:=AAA1-REF(AAA1,1);
正大:=CROSS(入,买);
DIF:=EMA(CLOSE,)-EMA(CLOSE,);
DEA:=EMA(DIF,);
AAA:=(DIF-DEA)*2*;
牛股:=CROSS(AAA-REF(AAA,1),);
正大牛股:=正大 AND 牛股;
HSL:=V/CAPITAL*>5;
S1:=IF(NAMELIKE('S'),0,1);
S2:=IF(NAMELIKE('*'),0,1);
Z3:=NOT(INBLOCK('近期解禁'));
Z4:=NOT(INBLOCK('拟减持'));
Z5:=NOT(INBLOCK('股东减持'));
Z6:=NOT(INBLOCK('基金减持'));
Z7:=NOT(INBLOCK('即将解禁'));
Z8:=IF(CODELIKE(''),0,1);
Z9:=IF(CODELIKE('8'),0,1);
去掉:=S1 AND S2 AND Z3 AND Z4 AND Z5 AND Z6 AND Z7 AND Z8 AND Z9;
AA:=MA(CLOSE,8);
BB:=((ATAN((AA - REF(AA,1))) * 3.) * );
均线:=MA(CLOSE,);
均线:=MA(CLOSE,);
均线:=MA(CLOSE,);
天马:=((((((OPEN <= 均线) AND ((均线 - REF(均线,1)) > 0))
AND (CLOSE > 均线)) AND (BB > 1)) AND ((CLOSE / OPEN) > 1.)));
{ 股价必涨}
AA:=IF(CLOSE/REF(CLOSE,1)>1. AND HIGH/CLOSE<1. AND IF(CLOSE>REF(CLOSE,1),,0)>0, , 0);
SS:=MA((LOW+HIGH+CLOSE)/3,5)>REF(MA((LOW+HIGH+CLOSE)/3,5),1) AND REF(MA((LOW+HIGH+CLOSE)/3,5),1)
SC:=LHHV(MA((LOW+HIGH+CLOSE)/3,5),) AND C>REF(C,1) AND C>O;
MR:=SC AND COUNT(SS,2);
BB:=MR AND NOT(REF(MR,1));
股价必涨:=AA OR BB OR 天马;
{ 抄底}
二十日换手率:=BETWEEN(SUM(HSCOL,),,);{ 意思是 日换手率介于---之间}
DFO:=(C-REF(C,1))/REF(C,1)*<-5;
AAO:=BARSLAST(DFO);
突破:=CROSS(C,REF(O,AAO));
抄底:=二十日换手率 AND 突破;
四. 选股指标源码
指标源码内容与前文一致,仅包含主图和副图指标源码,用于量化分析股票。指标包括移动平均线、MACD、股价波动判断、换手率分析等,通过设置条件筛选出具有投资潜力的股票。使用时根据具体市场情况和策略进行调整。注意:指标的有效性需结合市场情况综合判断,不应单一依赖。
文华财经软件指标公式赢顺云指标公式启航DK捕猎者智能量化系统指标源码
在技术分析领域,文华财经软件中的指标公式提供了多种量化分析工具,帮助投资者在交易决策中获取优势。以下是一个具体示例,展示了如何构建一个智能量化系统指标源码,以实现自动化交易策略。
这个指标源码首先通过MA(移动平均)函数计算不同周期的移动平均线,包括日、日、日、日和日的移动平均线。这些平均线被视为价格趋势的重要指示器,帮助交易者识别市场方向。MA5、MA、MA、MA、MA和MA分别代表了5日、日、日、日、webcat源码怎么用日和日的简单移动平均线。
接着,通过RSV(相对强弱指数)计算公式,评估价格变动的相对强弱。RSV=(C-LLV(L,9))/(HHV(H,9)-LLV(L,9))*,其中C代表收盘价,L代表最低价,H代表最高价。RSV值的计算帮助交易者识别市场的超买或超卖状态。
进一步,通过SMA(简单移动平均)计算K、D和J值,形成KDJ指标,K=3*SMA(RSV,3,1);D=SMA(K,3,1);J=3*K-2*D。KDJ指标被广泛应用于判断市场趋势和拐点,为交易者提供买入或卖出信号。
最后,通过逻辑判断和条件计算,系统能够自动识别特定的交易信号。例如,当J值穿越一个预先设定的临界值(例如J<),同时满足X和Y的条件时(X=LLV(J,2)=LLV(J,8)且Y=IF(CROSS(J,REF(J+0.,1)) AND X AND J<,,0)),系统可能会触发一个买入或卖出信号,以指示交易者采取相应的行动。
通过这样的智能量化系统指标源码,文华财经软件能够为投资者提供高效、自动化的交易策略,帮助其在市场中获取竞争优势。这种自动化的交易策略不仅节省了人力成本,还能够减少主观判断的偏差,提高交易决策的准确性。
PTQ(Post Training Quantization)源码阅读四
PTQ(Post Training Quantization)是模型量化过程,旨在以较低精度的参数减少模型的内存消耗和计算成本,同时保持相似的性能水平。在本文中,我们探讨PTQ中如何将量化信息集成到模型中,并进行保存。
PTQ工作流程包括四个关键步骤:计算量化参数、确定阈值、保存输出阈值和包裹模拟层。在实现中,主要依赖于ImperativePTQ类,纵横筹码指标源码其中的_cal_thresholds_save_output_thresholds_wrap_simulated_layers方法承担了核心任务。
在实现过程中,关键在于找到当前层的parent和相应的attr_name,这一过程由_find_parent_layer_and_sub_name方法执行。最终,通过_wrap_simulated_layers方法,将原始层替换为QuantizedLayer,实现量化功能。
在QuantizedLayer中,我们可以配置输入参数以选择合适的实现。以QuantizedConv2D为例,其主要对输入/权重应用fake_quant操作,其余操作与Conv2D相同。_get_fake_quant_type方法用于选取相应的fake_quant实现。
fake_quant实现有五种类型,包括AbsMax和ChannelWiseAbsMax,分别应用于权重和激活函数的量化。以AbsMax为例,其量化逻辑模拟了量化和解量化的行为。在量化权重时,创建一个非可训练的_scale参数,而量化输入时,_scale为None。量化过程分为动态图和静态图两种逻辑,在动态图中,基于给定的input和属性bit_length,创建并调用_legacy_C_ops.fake_quantize_dequantize_abs_max OP。
相关实现位于paddle/Paddle/paddle/fluid/operators/fake_quantize_op.cc文件中。在forward阶段,使用QuantTensorFunctor先进行量化,随后进行四舍五入和裁剪。对于backward阶段的实现,我们参考了op的定义和kernel实现,它遵循特定的公式。
总之,PTQ的源码阅读展示了模型量化的核心步骤,以及如何将量化信息集成并保存到模型中,以实现性能与效率的优化。
手把手教你搭建自己的量化分析数据库
量化交易的分析根基在于数据,包括股票历史交易数据、上市公司基本面数据、宏观和行业数据等。面对信息流量的持续增长,掌握如何获取、查询和处理数据信息变得不可或缺。对于涉足量化交易的个体而言,对数据库操作的掌握更是基本技能。目前,MySQL、Postgresql、Mongodb、SQLite等开源数据库因其高使用量和受欢迎程度,位列-年DB-Engines排行榜前十。这几个数据库各有特点和适用场景。本文以Python操作Postgresql数据库为例,借助psycopg2和sqlalchemy实现与pandas dataframe的交互,一步步构建个人量化分析数据库。
首先,安装PostgreSQL。通过其官网下载适合操作系统的版本,按照默认设置完成安装。安装完成后,可以在安装目录中找到pgAdmin4,这是一个图形化工具,用于查看和管理PostgreSQL数据库,其最新版为Web应用程序。
接着,利用Python安装psycopg2和sqlalchemy库。psycopg2是连接PostgreSQL数据库的接口,sqlalchemy则适用于多种数据库,特别是与pandas dataframe的交互更为便捷。通过pip安装这两个库即可。
实践操作中,使用tushare获取股票行情数据并保存至本地PostgreSQL数据库。通过psycopg2和sqlalchemy接口,实现数据的存储和管理。由于数据量庞大,通常分阶段下载,比如先下载特定时间段的数据,后续不断更新。
构建数据查询和可视化函数,用于分析和展示股价变化。比如查询股价日涨幅超过9.5%或跌幅超过-9.5%的个股数据分布,结合选股策略进行数据查询和提取。此外,使用日均线策略,开发数据查询和可视化函数,对选出的股票进行日K线、日均线、成交量、买入和卖出信号的可视化分析。
数据库操作涉及众多内容,本文着重介绍使用Python与PostgreSQL数据库的交互方式,逐步搭建个人量化分析数据库。虽然文中使用的数据量仅为百万条左右,使用Excel的csv文件读写速度较快且直观,但随着数据量的增长,建立完善的量化分析系统时,数据库学习变得尤为重要。重要的是,文中所展示的选股方式和股票代码仅作为示例应用,不构成任何投资建议。
对于Python金融量化感兴趣的读者,可以关注Python金融量化领域,通过知识星球获取更多资源,包括量化投资视频资料、公众号文章源码、量化投资分析框架,与博主直接交流,结识圈内朋友。
开源大模型GGUF量化(llama.cpp)与本地部署运行(ollama)教程
llama.cpp与ollama是开源项目,旨在解决大型模型在本地部署时遇到的问题。通过llama.cpp,用户可以对模型进行量化,以解决模型在特定电脑配置下无法运行的问题。同时,ollama则提供了一个简单的方法,让量化后的模型在本地更方便地运行。
对于许多用户来说,下载开源大模型后,往往面临不会运行或硬件配置不足无法运行的困扰。本文通过介绍llama.cpp和ollama的使用,提供了一个从量化到本地运行的解决方案。
下面,我们以Llama2开源大模型为例,详细说明如何在本地使用llama.cpp进行量化GGUF模型,并通过ollama进行运行。
在开始前,如果对量化和GGUF等专业术语感到困惑,建议使用文心一言或chatGPT等AI工具进行查询以获取更多信息。
使用ollama进行运行非常简单,只需访问其官网下载安装应用即可。支持众多大模型,操作指令直接使用`ollama run`即可自动下载和运行大模型。
运行指令示例:对于llama2大模型,原本.5G的7b模型在ollama中压缩至3.8G,量化等级为Q4_0。若需导入并运行已量化的GGUF模型,只需创建一个文件并添加FROM指令,指定模型本地文件路径。
在使用ollama进行模型操作时,需注意创建模型、运行模型等步骤。若有疑问,可留言交流。
对于自行下载的模型,要实现量化成GGUF格式,就需要借助于llama.cpp项目。该项目旨在实现LLM推理,支持多种量化级别,如1.5位、2位、3位、4位、5位、6位和8位整数量化,以提高推理速度并减少内存使用。
要使用llama.cpp,首先需克隆源码并创建build目录,然后通过Cmake进行编译。推荐使用Visual Studio 进行编译。编译成功后,可在bin/release目录找到编译好的程序。
接下来,通过llama.cpp项目中的convert.py脚本将模型转换为GGUF格式。对于llama2-b模型,转换后的模型大小从.2G缩减至6.G。
量化模型后,运行时使用llama.cpp编译的main.exe或直接使用ollama进行操作。通过创建文本文件并指定模型,使用ollama run指令即可轻松运行量化后的模型。
本文通过详细示例展示了如何利用llama.cpp和ollama对大模型进行量化并实现本地运行。若需进一步了解或在操作中遇到问题,欢迎在留言区进行交流。
文华财经T8更新版量化交易策略模型源码
文华财经T8更新版量化交易策略模型源码:
此量化交易策略模型源码采用了一系列技术指标和条件,旨在通过自动化方式提升交易决策的效率和准确性。代码中定义了关键变量以支持多头和空头策略的实施。
在多头策略方面,代码通过设置多个条件来识别买入时机。若“SKLOW”超过“S”(一个计算得到的价格阈值)且“SKVOL”(成交量)大于零,且当前收盘价高于“REF(H+1*MINPRICE,BARSSK)”(过去某时段最高价),则发出买入指令(BP)。
同样地,空头策略也设置了相应的买入条件。当“BKHIGH”(一个计算得到的高点)超过“B”(基础价格)且“BKVOL”(成交量)大于零,同时满足一定条件,代码会触发卖出指令(SP)。
此外,源码中还包含了自动过滤规则(AUTOFILTER),以及设置特定价格类型(SETSIGPRICETYPE)和价格取值规则(SETOTHERPRICE),以进一步优化交易决策流程。
硬核福利量化交易神器talib中个技术指标的Python实现(附全部源码)
本文将带您深入学习纯Python、Pandas、Numpy与Math实现TALIB中的个金融技术指标,不再受限于库调用,从底层理解指标原理,提升量化交易能力。
所需核心库包括:Pandas、Numpy与Math。重要提示:若遇“ewma无法调用”错误,建议安装Pandas 0.版本,或调整调用方式。
我们逐一解析常见指标:
1. 移动平均(Moving Average)
2. 指数移动平均(Exponential Moving Average)
3. 动量(Momentum)
4. 变化率(Rate of Change)
5. 均幅指标(Average True Range)
6. 布林线(Bollinger Bands)
7. 转折、支撑、阻力点(Trend, Support & Resistance)
8. 随机振荡器(%K线)
9. 随机振荡器(%D线)
. 三重指数平滑平均线(Triple Exponential Moving Average)
. 平均定向运动指数(Average Directional Movement Index)
. MACD(Moving Average Convergence Divergence)
. 梅斯线(High-Low Trend Reversal)
. 涡旋指标(Vortex Indicator)
. KST振荡器(KST Oscillator)
. 相对强度指标(Relative Strength Index)
. 真实强度指标(True Strength Index)
. 吸筹/派发指标(Accumulation/Distribution)
. 佳庆指标(ChaiKIN Oscillator)
. 资金流量与比率指标(Money Flow & Ratio)
. 能量潮指标(Chande Momentum Oscillator)
. 强力指数指标(Force Index)
. 简易波动指标(Ease of Movement)
. 顺势指标(Directional Movement Index)
. 估波指标(Estimation Oscillator)
. 肯特纳通道(Keltner Channel)
. 终极指标(Ultimate Oscillator)
. 唐奇安通道指标(Donchian Channel)
参考资料:
乐学偶得系列笔记,开源项目ultrafinance。深入学习并应用这些指标,将大大提升您的量化交易与金融分析技能。
量化投资之工具篇:Backtrader从入门到精通(3)Cerebro代码详解
在深入理解backtrader的工具使用中,Cerebro作为核心控制器,其代码详解至关重要。它负责整个系统的协调和管理,虽然看似复杂,但实质上是将任务分发给其他组件如策略、数据源和分析器。让我们通过源代码解析来逐步揭示其工作原理。
首先,Cerebro的初始化主要设置公共属性,并接受一系列参数,这些参数在元类中统一处理,通过**kwargs传递。初始化过程中,实际上并未做太多工作,而是为后续操作准备了基础结构。
数据源的添加是通过cerebro.adddata方法,它可以处理普通数据和resample/replay数据,这个过程涉及对数据源的筛选和处理后加入到Cerebro的datas列表中。
策略的添加同样简单,只是将策略类及参数存储在strats容器中,策略会在run时实例化。
Cerebro的run函数是整个流程的驱动器,它根据传入的参数,按照时间驱动数据运行,同时协调策略、分析器和观察者等组件协同工作。run函数的代码复杂,但关键在于它如何管理和调度各个组件。
最后,Cerebro通过plot方法实现可视化输出,其自身并不直接进行绘图,而是调用plotter模块来完成。
总的来说,虽然Cerebro的代码看起来复杂,但实际上它的作用是连接各个组件,提供一个框架让策略和数据处理得以高效执行。理解Cerebro的工作原理后,后续理解其他部件如data feeds的运作就更为顺畅了。下文我们将转向数据类的解析,进一步探讨数据的管理与驱动机制。