下载
登录/ 注册
主页
论坛
视频
热股
可转债
下载
下载

做正确的事~20241012~回归网格

24-10-11 23:07 9811次浏览
谋城
+关注
博主要求身份验证
登录用户ID:
经过一轮暴力短期牛市洗礼
10月8日开盘终于解套
收盘又归于平静
回到从前

国庆节期间心心念念找合作资金
现在找来的资金如下:
老婆转10万资金过来
表姐10万直接投入我的账户
同学提供30万账户有偿合作收益分成
表哥提供5万新开的账户我来免费操作
舅舅打过电话后准备转10万代为操作不过没有下文
自己的期货账户有两万多
一上头又开通了信用账户

凡此种种
心态有点失衡
仓位打得太满

晚上反复思考
与朋友讨论后决定
期货账户和信用账户的仓位尽快平掉并暂停使用
剩余我的普通账户、同学和表哥的账户设置条件网格单
严格按照网格交易

做正确的事
慢慢来
稳住
终会是可以慢慢变富的

共勉。
打开淘股吧APP
13
评论(850)
收藏
展开
热门 最新
谋城

24-11-16 19:32

0
kimi对最新的策略逻辑进行了点评
看起来策略还是比较不错的

不过仍然需要再优化一两个版本
慢慢来
不要着急

~~~

您的网格单策略设计考虑了多个方面,包括风险控制、资金管理、程序逻辑等。以下是对您策略的一些逻辑漏洞和可能的错误点的分析:
1.  程序与手动操作的冲突:
•  您提到了在实盘前需要关闭东方财富APP和PC端的网格单和其他条件单,这是一个好的预防措施,但实际操作中可能会忘记或者操作失误,建议增加一个自动化检查步骤,程序启动时自动检查并提示用户关闭相关条件单。
2.  模拟盘测试:
•  您提到了在模拟盘运行至少3个月,这是一个合理的测试周期。但建议在测试期间记录详细的日志,以便分析策略的表现和潜在的问题。
3.  资金和股份数限制:
•  您提到了对每只低价股的资金设置上限,这是一个风险控制的好方法。但需要确保程序能够实时监控并更新持仓情况,以避免超出限制。
4.  委托单和成交单的限制:
•  您提到了对委托单和成交单的数量限制,这有助于减少无效或重复的单子。但需要确保程序能够准确识别和计数这些单子,避免因程序错误导致的限制失效。
5.  程序实例的独立性:
•  您建议为不同的低价股开启不同的量化程序实例,这是一个减少干扰的好方法。但需要确保这些实例之间不会相互影响,特别是在资源共享(如数据库、网络连接等)的情况下。
6.  可售数量和可用资金的检查:
•  您提到了如果可售数量少于200股或可用资金不足以购买指定数量的股票,则不生成相应的单子。这是一个合理的资金管理措施,但需要确保程序能够实时准确地获取这些数据。
7.  跳空高开或低开的处理:
•  您提到了跳空高开或低开时的处理逻辑,这是一个特殊情况的处理。但需要确保程序能够准确识别跳空的情况,并及时调整网格单。
8.  暴跌又迅速拉回的处理:
•  您提到了暴跌又迅速拉回时的处理逻辑,这是一个复杂的场景。需要确保程序能够识别这种情况,并正确地进行“中和”处理,避免提交无效的买卖单。
9.  程序逻辑的具体实现:
•  您的程序逻辑中提到了使用系统的订阅消息模式来处理委托单的成交情况。这是一个有效的实时处理方法,但需要确保程序能够正确解析消息,并根据消息内容做出正确的逻辑判断。
10.  网格单的动态调整:
•  您的策略中提到了根据成交情况动态调整网格单,这是一个灵活的策略。但需要确保程序能够快速响应市场变化,并及时调整网格单。
11.  异常情况的处理:
•  您提到了每天分析异常情况,这是一个重要的风险控制措施。但需要确保程序能够记录和报告异常情况,以便进行分析。
12.  程序的健壮性:
•  需要确保程序在遇到意外情况(如网络中断、数据错误等)时能够保持稳定运行,或者至少能够恢复到安全状态。
总体而言,您的策略考虑了多个重要的方面,但需要在实际编码和测试中仔细检查这些逻辑,并确保程序能够准确无误地执行这些逻辑。同时,也需要考虑到市场的不可预测性,并为可能出现的极端情况做好准备。
谋城

24-11-16 19:24

0
那银河这个不错
不用自己折腾

谢谢。 

不过我没有开银河的账户
还是得自己研究
放飞心灵198212

24-11-16 19:13

0
这种网格银河就有的,就是成交驱动型的,提前挂单买卖各一笔,一个成交后,另一个就撤单了重新双向挂单,缺点就是占用资金。
谋城

24-11-16 18:46

0
第二版策略


昨晚想到要开发量化
实现低价股提前挂单的网格交易
东方财富证券目前可以支持掘金量化接口
模拟盘的话没有资金限制
实盘呢需要300万开通
我目前想从模拟盘入手

刚才也仔细思考了具体的实现逻辑
在纸上写了过程
现在形成文字
方便查阅和修改

总体原则是
实现低价持仓股的提前挂网格单以及成交后自动挂反向买卖单功能。

总保险,为了防止程序出错造成的困扰:
0、如果量化程序上实盘,记得在东方财富的APP与PC段关闭该低价标的的网格单,
最好也关闭其它条件单,以免造成困扰与混乱,
同时如果盘中想手动操作,请先关闭量化程序
1、模拟盘的低价持仓股模拟运行至少3个月
每天分析是否出现异常情况,后续才考虑上实盘。
2、每只低价股的资金设置上限
比如电信总持仓股份数不超过10万股之类
3、某只股票如电信,每天程序产生的委托单和成交单也做限制,以免产生过多的无效或重复的单子
比如委托单总数大于8笔、成交单大于5笔时,
量化程序当天不再操作电信
但大秦如果没有触及这些限制,仍然可以继续;
4、为了尽量简化程序开发,建议不同的低价股开启不同的量化程序实例。
即可能是一套代码,但是分成2个策略,方便控制,减少互相干扰。

一些小保险:
5、如果某只股票当天可售数量<200股
则当天不再生成该股票的卖单;
6、如果当前可用资金 < 标的股价 * 数量
则不生成此笔买单

特殊情况:
7、如果当天开盘后跳空高开或低开
多笔买卖单成交,则按挂牌价生成多笔对应的反向单;
8、如果当天开盘或盘中极短时间出现暴跌又迅速拉回
则可能在3秒内同时成交了买卖单,
系统扫描时可能根据成交的卖单如6.70元卖出成交,生成了6.6元的买单
同时根据成交的买单6.50元生成了6.6的卖单
那么再提交之前需要先进行合并,做“中和”处理,实际上两个6.6的买卖单都不提交

~~~

量化程序具体逻辑,以中国电信为例。
为方便输入,以下660实际指6.60
假设中枢价位 660 ,单位5000股,价差0.10元。

1、开盘前运行掘金量化客户端,挂初始单
手动指定中枢价位,中枢价位上方一个档位挂670卖单,下方一个档位650挂买单。

2、开盘后(盘中)处理逻辑,

首先使用系统的订阅消息的模式,如果某笔委托单部分或全部成交,就会发出一则消息。
该消息中已经包含了足够的信息来判断委托单的状态,是否已经全部成交。

现在就针对卖单成交与卖单成交分别处理。

A、卖单成交,成交价 670 元,成交数量5000股,即收到消息中指示完全成交才继续,否则视为未完全成交,不用继续。
那么计划挂 680 卖单, 660 买单;
扫描(已提交但)待成交的电信的单子
如果发现里面有680卖单则不提交680卖单,否则提交;
如果有660买单则不提交660买单,否则提交;

B、买单成交,成交价 650 元,数量 5000 股,即完全成交。
那么计划挂 660 卖单,挂 640 买单
扫描(已提交但)待成交的电信的单子
如果发现里面有660卖单则不提交660卖单,否则提交;
如果有640买单则不提交640买单,否则提交。
谋城

24-11-16 17:36

0
好的,我来帮你润色一下这段话,保持口语化的风格:

那上面那个逻辑嘛,其实它有个预挂单的功能,我在里面挂了下面两个的买单和上面两个的卖单。不过我后来一想,这其实是把事情搞得有点太复杂了。其实按照基准价,在上面挂个卖单,下面挂个买单就足够了。至于第二个想法,原本我是打算直接扫描成交记录的,比如说排在第二的成交记录。但是这样做有个缺点,就是扫描完之后你还得对成交记录做个排序,然后还得判断这笔交易是不是已经完全成交了,这就显得挺麻烦的。要是改成消息通知的方式,也就是采取订阅消息的模式,那就会简单很多。这样一来,只要不断接收这些订阅的消息,当某个消息显示某笔委托单已经完整成交,就可以根据基准价生成新的买单和卖单,同时检查是否已经有重复的单子存在,确认没问题后就能提交新的订单了。

所以,如果想要简化一些的话,可以按刚才说的这个思路来操作,就是在开盘的时候手动指定一个中枢价位,在这个价位上下各挂一个单。如果其中一个单子成交了,成交的价格就变成了新的基准价,然后在这个新基准价的基础上上下各生成一个单子并提交出去,同时记得把之前没有成交的单子撤掉,避免后面出现重复下单的情况,这样整个流程会非常清晰明了。

A、这个方法的核心在于,只要某个价格成交成为了新的基准价,就要立刻撤掉另一个单子,并且同时生成新的上下单子。对,就是每次都要这么操作。即使下一次又有单子成交,也一样要撤掉现在所有的单子,然后再生成一组新的买卖单。这样做的话,每次只要有单子成交,系统里就只会剩下这单子上下的一组买卖单,其他所有的委托单都会被撤掉。

这样的好处是逻辑特别清楚,但坏处就是那些比较低价位的买单或者高价位的卖单可能会不断地被提交又撤销,如果市场突然发生大的波动,可能我的单子来不及成交。不过我觉得这还能接受,毕竟这也相当于提前挂单了,只是有些旧单子可能会被取消而已。

B、当然了,我们也可以稍微改进一下,就是在准备提交新的单子前,先看看有没有相同价位的委托单。如果已经有了,那这次生成的买单或卖单就不用提交了。

我个人更倾向于选择B方案,因为它的逻辑同样不复杂,而且还可以尽量避免因为其他原因造成的重复提交委托单的问题。也就是说,即使是用A方案,理论上来说也应该用B的方法来检查一遍,确保没有重复下单的情况。
谋城

24-11-16 17:03

0
那我想问一下,我上面的程序(文字需求描述)有没有很明显的逻辑方面的漏洞?

~~~

kimi 回复
看起来不错

根据您提供的程序逻辑描述,以下是一些可能的逻辑漏洞和需要进一步明确的点:
1.  资金和持仓检查:
•  在您的逻辑中,提到了每只股票的资金设置上限和持仓股份数上限。但是,在生成委托单之前,您需要确保程序能够检查当前的可用资金和持仓数量,以避免超出限制。您的描述中没有明确如何实时检查和更新这些信息。
2.  委托单和成交单的限制:
•  您提到了对委托单和成交单的数量限制,但是没有提到如何跟踪和存储这些信息。在实际实现中,您需要一个机制来记录每只股票的委托单和成交单数量,并在每次操作后更新这些计数。
3.  中和处理:
•  您提到了在特殊情况下,可能需要进行中和处理,但是没有具体说明如何检测这种情况以及如何执行中和操作。这需要一个明确的算法来识别和处理这些特殊情况。
4.  并发操作:
•  如果您的量化程序可能会同时处理多个股票,那么需要考虑到并发操作的问题。您的逻辑需要确保在多只股票之间正确地分配资金和处理委托单,避免因为并发操作导致的数据不一致。
5.  异常处理:
•  您的逻辑中提到了模拟运行和异常情况的检查,但是没有具体说明如何处理这些异常。在实际的交易程序中,异常处理是非常重要的,需要有明确的策略来应对可能的错误和异常情况。
6.  程序关闭和手动操作:
•  您提到了在程序运行时需要关闭东方财富的网格单和其他条件单,以及在手动操作时需要关闭量化程序。这需要一个机制来确保程序和手动操作之间的同步,避免冲突。
7.  程序实例的管理:
•  您建议为不同的低价股开启不同的量化程序实例。这需要一个管理机制来确保不同实例之间的协调和数据共享,以及如何优雅地启动和关闭这些实例。
8.  开盘前挂单逻辑:
•  您提供了两种开盘前挂单的方法,但是没有明确说明如何决定使用哪种方法,以及如何实现这些挂单操作。
9.  成交后的处理逻辑:
•  您的逻辑中提到了成交后的挂单操作,但是没有详细说明如何确保这些操作不会与现有的委托单冲突,以及如何处理可能的重复挂单。
10.  代码实现:
•  您提供的是一个逻辑描述,而不是实际的代码。在将逻辑转换为代码时,需要确保所有的逻辑步骤都被正确实现,并且所有的条件判断和循环逻辑都是准确的。
综上所述,您的逻辑描述中确实存在一些需要进一步明确和完善的地方。在实际编写代码之前,建议您详细规划这些逻辑,并进行充分的测试,以确保程序的健壮性和可靠性。
谋城

24-11-16 16:42

1
问了给你几个帮接口调用或者消息通知的,回答还是很让人满意的。

掘金量化里面。如果。委托单有成交的,那么嗯,作为。这个程序他怎么知道呢?他是要定期去扫描呃,接口调用接口去自己去判断最近有没有成交的单子,还是说一旦有成交的单子,呃,量化系统会反过来通过消息订阅的方式,反过来通知这个量化程序客户端这边吗。

在掘金量化系统中,程序可以通过两种方式来获知委托单是否有成交:
1.  接口调用查询:程序可以定期调用接口去查询委托单的状态,查看是否有成交。这种方式需要程序主动去查询,例如通过查询日内委托数据(order_status.csv)和委托执行回报数据(execution_report.csv)来获取委托单的成交情况。
2.  消息订阅通知:掘金量化系统支持实时消息推送接口,一旦有成交的单子,量化系统会通过消息订阅的方式,实时通知量化程序客户端。这种方式不需要程序定期去查询,而是被动接收成交信息。掘金仿真提供了实时消息推送接口,委托状态变化、成交回报等消息会以实时的方式推送给程序。
因此,掘金量化系统提供了灵活的通知机制,既可以通过接口调用查询,也可以通过消息订阅来获知委托单的成交情况。

~~~

要是敬业通知的方式的话,有两个问题。第一个他。是完全成交了才发个消息过来,他就说他部分成交了,他就会发个消息,第二个问题就是如果在短时间内有两个委托单都成交了,那他是一次标记里面带这两条信息,还是说它会分开两个消息,呃,发送出来。

根据搜索结果,对于您的问题,我们可以得出以下答案:
1.  是否完全成交或部分成交都会发送消息:掘金量化系统会为每一笔成交发送消息,无论是完全成交还是部分成交。这意味着,只要委托单有成交,无论成交数量多少,系统都会通过消息订阅的方式通知量化程序客户端。
2.  短时间内多个委托单成交的消息推送方式:如果在短时间内有两个委托单都成交了,掘金量化系统会为每一笔成交分别发送消息。也就是说,它会分开两个消息发送出来,而不是将两条信息合并在一个消息中推送。
这样的设计可以确保量化程序能够实时且准确地获取到每笔成交的详细信息,便于程序进行后续的逻辑处理和决策。

~~~

对于上面,嗯,无论是部分成交还是全部成交,他都会发送消息的情况,那我。呃,他每一条消息里面会附带说这个委托单是不是全部成交吗?还是说需要我量化程序自己手动去计算,哎,是个全部都是一样。把以前类似的同一个委托单量数据累加起来,自己做判断。

根据掘金量化系统的消息通知机制,每一条消息都会附带委托单的状态信息,包括是否全部成交。具体来说:
1.  委托状态更新事件:掘金量化系统的on_order_status事件会响应委托状态的更新,无论是完全成交还是部分成交,系统都会推送消息。在这个消息中,会包含委托的状态,例如“已报”、“部成”、“全成”等,这样量化程序可以直接从消息中得知委托单是否已经全部成交。
2.  委托执行回报事件:on_execution_report事件会在委托成交或者撤单拒绝后被触发,这个事件也会提供委托的执行情况,包括成交的数量和价格等信息。
因此,量化程序不需要手动去计算委托单是否全部成交,掘金量化系统提供的消息中已经包含了足够的信息来判断委托单的状态。量化程序可以直接根据这些消息来判断委托单是否已经全部成交,而不需要自己累加历史数据进行判断。
谋城

24-11-16 16:12

0
现在下来走一走,果然心情好多了。刚才等电梯的时候还在想,股票交易本来就挺磨人的,软件开发也一样,以前没买房,眼睁睁看着房价一直涨,这也很磨人。这几件事一叠加,真的让人够呛。回想起来,我都惊讶自己当年是怎么熬过来的?现在有点玻璃心,不过我觉得自己已经算不错的了。

从最初的手动交易,到手动模拟网格交易,再到普通的条件单,然后是网格单,现在是网格条件单加上提醒,再手动微调,接下来准备尝试量化程序网格交易。这一路走来,每一步都是摸着石头过河,特别是很多问题找不到人问,只能自己上网查资料解决。每次准备大展身手的时候,总会遇到个坑,比如今天这个模拟盘在非交易时间不让下单成交,非得在交易时间才行。我还奇怪,这样怎么回测呢?不过我现在还没到那一步,所以先保持乐观态度,确保方向正确,一步步向前走。相信用不了多久,我就能成为掘金量化交易策略开发的入门者。我不需要成为这方面的专家,也不需要精通它,我只是要把自己的需求慢慢实现。我给自己定了两周到一个月的时间,先形成一个初步能运行的版本。毕竟现在资金量不大,也不急着一时,只是先做一些准备工作。很多时候我会告诉自己不要急,但有时遇到的事情确实让人心里不舒服。不过反过来想想,现在遇到的事比起健康恶化、房价下跌、降薪裁员失业来说,根本不算什么。我现在遇到的问题都是小意思,做量化策略也有它的烦恼。好不容易把其他事情处理得差不多了,现在又来搞这个,确实有点添堵,心情也会受到影响。特别是现在没有成交记录,也没有持仓股来测试自己的策略,不方便开始编写。刚开始不熟悉,每一步都要摸索着来,进度自然就会慢一些。掘金量化提供的网格策略是针对期货的,没有股票的例子,但这对我影响不大。我现在的网格交易方式虽然也是网格,但与一般意义上的标准网格有所不同,因为我要提前挂单。

其实很多时候我在想,如果让专业的开发人员来实现这种可以提前挂单的网格策略,应该并不难。但他们可能没有动力这么做,因为这样只会让交易量略微提升。以我现在的持仓股做网格来说,只有在低价股时才会遇到这个问题,而提前挂单也有个缺点,就是挂买单会占用资金,挂卖单则可能在盘中反复操作导致卖单耗尽,需要撤单。没有哪种策略是完美的,但网格策略稍作优化就能接近我想要的效果,比如不必等到下一个价位触发再提交订单,可以在价格接近目标价位时提前触发。如果按照我的设想,这种策略应该能满足我的需求。对于波动较小且价格较低的股票,这种方法可能会更依赖于盘前挂单。还有一个隐秘的好处是,提前挂单可以锁定一部分资金和筹码,避免自己随意买卖。当资金被锁定用于买入时,即使想临时买点别的东西也可能没钱,这对于我来说是个重要好处。如果不提前挂单,账户里的资金可能闲置着,容易产生冲动消费。如果能提前触发一两档的挂单,资金消耗会更快,单子一旦提交,需要使用时必须先撤单。此外,看到委托单中有大量未成交的单子,也会提醒自己按计划交易,不随意更改。这种自我约束对我来说非常重要。
谋城

24-11-16 15:35

0
折腾了两三次,终于把掘金量化客户端里的Python环境变量给设置好了。中间最大的教训就是,千万别用Windows自带的Microsoft App Store去装Python,得自己上Python官网下载安装包,再通过正常的Windows安装程序来设置,这样基本就OK了。真是一个超级大的坑啊!看来以后做事还是得严格按照官方文档来,别想着走捷径,不然往往会有意想不到的问题。

现在我在平台上新建了个模拟账户,想往里加点股票,但由于现在是盘后时间,居然加不进去。我问了Kimi,他回了一大堆方法,但试了没一种好使的。后来我又去了个Q吧问了一下,但也没抱多大希望,毕竟做软件开发和交易的人通常都挺沉默内向的,有时候就算知道答案也可能懒得回复。不过我已经做好了心理准备。

孩子现在去图书馆看书了,我这边蒸了个玉米和一个菜包子,吃完后打算下楼散散步。每次软件开发遇到障碍时,都会让我心烦意乱的,真是太头疼了。
谋城

24-11-16 14:21

1
同学那边他愿意换个券商,后面条件单设置以及交易操作会更便利,这样就能减少半个账户的麻烦了。表哥也同意把他的资金直接转到我老婆的账户里,这样一来,又少了一个账户的烦恼,甚至更多。因为他的账户金额不多,所以在做投资操作的时候总感觉施展不开,要是把钱放到我老婆的账户里,不仅账户数量能减少,资金总量还能相对增加一些。这两个措施结合起来,差不多相当于减少了两个账户的影响。

至于孩子那边也有新进展,如果周二谈得顺利,他也能回来继续学。这样一来,我们不用再为他在国外的学环境感到焦虑,他自己回来也会更开心。同时,他回来后还可以适当参与一些交易和学,这对我来说是个大好消息。操作起来更有助力,我也就少了一些担忧。而且,随着量化交易的开始,我的工作负担还会进一步减轻。

总的来说,这样可以让我更加轻装上阵,心里的负担减轻了,整个人都会变得更简单、更纯粹。我相信接下来的交易也会更加顺畅。虽然很多人都觉得交易的成功主要取决于大盘或外部环境,我并不否认这些因素的重要性,但我个人认为,保持一个干净利索的心态,保持内心的平静,对做好交易有着更重要的影响。我的交易方式本身就不怎么依赖大盘的表现,但我还是坚信,心态的稳定是极其重要的。因此,今天对我来说就像是一个新的起点,只要方向正确,稍作努力,相信不久之后就能看到不错的成果。
刷新 首页 上一页 下一页 末页
提交