CurvaMind可能是有史以来最适合散户使用的AI量化炒股神器!极简!老奶奶一分钟都能学会。
不用编程,说出策略,直接选股和回测分析,快速验证模式!一秒进入AI时代!
类别 | 功能说明 |
---|---|
🤖 AI能力 | 接入DeepSeek等顶尖大模型;也支持本地部署AI大模型与向量模型、向量数据库。 |
🔍 选股系统 | 自然语言选股、JS编写选股代码,可指定区间,快速选出每一天符合要求的股票 |
📈 回测系统 | 自然语言策略、JS编写策略代码,自动生成回测报告,资金曲线,Excel数据文件导出 |
📊 数据支持 | A股35年CSV格式日线数据、每日自动更新 |
👥 社群福利 | 免费功能升级、交流群共创、二次开发 |
💰 原价998 首批用户仅需299元,以支持我们的全职开发工作,即可获得:
Q:支持Mac吗?
A:当前为Windows版本,暂不支持Mac
Q:不懂编程也能用吗?
A:当然可以,使用AI大模型自动编写选股/回测策略。
Q:能否进行二次开发,能否分享转售?
A:个人使用可以进行二次开发,但不能进行分享和转售。
CurvaMind软件(174MB)
推荐从QQ策略群文件中下载,请在注册成为会员后,申请加入QQ策略群: 1045856335
35年日线数据(380MB)
推荐从QQ策略群文件中下载
(下载后解压缩到软件目录下面的 curvamind/data/day/ 目录下方,注意是年份文件夹放在一起即可)
登录
启动CurvaMind软件后,使用在muouai.cn网站注册的用户名登录,成功后软件会记住用户,下次自动登录
自然语言回测
策略输入:登录后输入想要回测的策略,尽量简洁、准确,可先用简单策略测试软件使用,例如“5日30日均线金叉买入,死叉卖出”等类似策略。
结果验证:当软件输出回测结果时,建议在股票软件中对比前几笔完整买卖,以及最后几笔完整买卖数据,以确认回测的成交结果是否符合策略预期,因为AI大模型可能未完全理解策略或策略描述模糊。
积分消耗:使用自然语言回测可能会消耗AI积分。正常使用的话,3000积分预计可生成100-300次策略。可以使用免费的在线AI如Kimi、豆包、DeepSeek来生成策略。大大节省积分使用。
JS脚本回测
代码标记:直接使用JS代码进行回测时不消耗任何AI积分,但需要在代码前面加上{js}标记。
代码结构:
options:代码内部可包含一个options,用于指定回测的条件,例如起止日期等。
买入信号函数:需要包含一个判断是否买入信号的函数function isBuySignal(c,k,i),其中c是股票代码,k是k线数组,i是当前索引。k线数组结构为[[day, open, high, low, close, preclose,volume, amount]]。
卖出信号函数:还需要包含一个判断是否卖出信号的函数function isSellSignal(c,k,i)。
辅助函数
可使用getUpLimit(code,i) 函数获取涨停价,用getDownLimit(code,i) 函数获取跌停价,比较涨跌停价时应使用.toFixed(2)将其转为2位精度字符串对比。
可使用findKlineIndex(k,day) 函数获取指定日期的索引值。
实例:例如我们回测反包板打板买入,次日尾盘未涨停的话就卖出。可直接输入下面的JS:
{js} let options={conditions:`反包板打板,低开则收盘卖出,高开则直接卖出`, date_start:20220701}; function isBuySignal(c,k,i){ if(i<2)return 0; var p2=k[i-2][4],p1=k[i-1][4],o1=k[i-1][1],h=k[i][2],up=getUpLimit(c,i); return p2===getUpLimit(c,i-2)&&(p1-o1)/o1<=-0.05&&h===up?h:0; } function isSellSignal(c,k,i){ const close=k[i][4].toFixed(2); const up=getUpLimit(c,i).toFixed(2); return close!=up?k[i][4]:0; }
使用免费AI生成JS回测代码
我们可使用强大的免费AI来生成JS回测代码,大大节省AI积分使用。使用下面的JSON提示词,修改最后面strategy策略文字,将引号中的文字替换为你的策略描述,须包含完整清晰的买入卖出条件。避免模糊不清的描述词。然后将JSON发给AI就可以了。
{ "title": "JS量化交易函数生成", "description": "根据用户给定的策略描述,生成 JavaScript 格式的交易信号函数。", "task": "生成两个用于交易信号判断的函数:isBuySignal(c,k,i) 和 isSellSignal(c,k,i)", "functions": [ "isBuySignal(c, k, i)", "isSellSignal(c, k, i)" ], "params": { "c": "股票代码(string)", "k": "历史K线数组,结构为 [[day(yyyyMMdd), open, high, low, close, preclose, volume, amount]],按日期升序排列", "i": "当前索引位置,表示以第i根K线为参考点生成信号" }, "returns": { "true": "返回具体的交易价格(如 close[i])", "false": "返回 0,表示无信号" }, "constraints": [ "所有技术指标必须通过函数实现", "若技术指标无明确参数要求,则使用默认参数", "代码需极简(最短变量名),且结构清晰", "涨跌停价必须使用提供的函数 getUpLimit(code, i) 和 getDownLimit(code, i)", "策略模糊、缺失或无效时,应返回 false 函数(函数返回 0)", "不能使用未来数据(即 i 之后的数据)", "不允许外部依赖库", "不使用任何异步代码" ], "available": { "variables": [ "c", "k", "i" ], "functions": [ "getUpLimit(code, index)", "getDownLimit(code, index)" ] }, "output_rules": [ "只能输出两个函数:isBuySignal(c,k,i) 和 isSellSignal(c,k,i)", "所需的指标函数请嵌套在主函数内部,不允许单独定义在外部", "每个函数应为纯函数,逻辑自洽,禁止输出任何其他函数、注释或说明文字" ], "output_format": [ "function isBuySignal(c, k, i) { ... }", "function isSellSignal(c, k, i) { ... }" ], "strategy": "(此处由用户输入策略描述)" }
options目前支持的选项
markets:指定市场代码开头。例如只做主板的话:markets:["00","60"]。如果只做创业板,可指定:markets:["3"] 。实际上也可使用该选项指定股票池,例如markets:["600111","600749"] 表示只回测这两只股票
date_start: 回测开始日期,格式是年月日:20250101
date_end: 回测结束日期,不设定的话会回测至当前日期
max_stocks: 每日最多持股数,默认最多买五只,资金平分
slippage: 百分比滑点,买卖都要扣一次,默认万五
take_profit: 百分比止盈点,例如设置为0.05的话,就是直接在赚5%位置挂单卖出
stop_loss:0 百分比止损点,必须为负值。例如设置为 -0.05的话,就是亏损5%时自动卖出
max_holding_days: 最多持仓天数,超时自动卖出
conditions: 策略买卖条件描述
let btoptions={ markets:[], stock_codes:[], province:[], industry:[], date_start:20250101, date_end:0, max_stocks:5, slippage:0.05, take_profit:0, stop_loss:0, max_holding_days:0, conditions: "", }
扫码购买 CurvaMind AI炒股系统