首页 文章 精选 留言 我的

精选列表

搜索[多步执行],共10000篇文章
优秀的个人博客,低调大师

CNNdroid:在 Android 上利用 GPU 加速执行 CNN (卷积神经网络)

摘要 智能设备和可穿戴设备都将受益于深度学习算法(比如CNN)的准确性和可扩展性。然而,性能和能耗等现实的问题使得在移动端设备上这类密集计算的算法变得非常受限。我们开发了CNNdroid这个GPU加速库,可以在Android设备上实现CNN网络的训练。通过实验,CNNdroid在移动设备上实现了60倍速的提升,以及130倍速的节能。CNNdroid这个库已经开源在Github上,可以从Github项目页面下载。 关键词 Deep Learning, Deep Convolutional Neural Network (CNN), Mobile GPU, Performance Optimization, Low Energy Con- sumption, Open Source Software, Android, RenderScri

优秀的个人博客,低调大师

日内拐点卖出原理:从拐点识别到卖出执行的完整链路

前天介绍了完整的拐点交易算法的分析,今天详细的介绍一下里面的子模块,挂点卖出,先看简单的原理图,这个是固定的,更改起点会变成连续动态的分析通过基准价与涨幅比例计算涨幅阈值价p1,当最新价突破p1后,以突破后的最高价p2与回调比例计算回调阈值价p3,当最新价突破p3后,如果P3>P1则以(价格策略—价格偏移*最小价差)挂单卖出 ![](https://developer.qcloudimg.com/http-save/audit-12698924/b326ebc6eddbd6c95286269135520da4.webp) 最高价说明:当涨幅比例阈值p1满足后,开始记录最高价p2,此时的最高价p2会根据行情的更新而随时变化,p2取到的是从p1满足起开始到当前时间内的最高价 **一、原理:捕捉“冲高回落”的动能衰竭点** 该算法的核心原理是:识别一个上涨趋势在经历“加速赶顶”后的“动能衰竭”信号,并以此作为卖点。它认为,一个健康的上涨趋势转为危险的下跌趋势,通常会经历两个阶段: 加速上涨阶段:价格快速拉升,突破某个关键位置(P1),这证明多头力量达到顶峰。 高位回落阶段:价格在创出新高后,无法维持,开始显著回落。这个“回落”动作本身就是多头力量衰竭、空头开始反扑的直接证据。策略捕捉的正是这个“从最高点回落”的拐点。 **二、核心交易思路:一个带有“门控”的两阶段确认模型** 这个算法的思路非常严谨,可以概括为一个 “门控式”的两阶段确认模型。 第一阶段:上涨趋势的“入场券”——突破P1,作用:P1是基准价上方的一个“门槛”。价格必须向上突破这个门槛,才被纳入监控范围。思路:这起到了一个趋势强度过滤器的作用。如果价格连P1都无法突破,说明上涨动能不足,不值得启动“高位回落”监控。这避免了在横盘震荡行情中频繁产生无效信号。 第二阶段:动能衰竭的“确认键”——跌破P3 作用:一旦价格突破P1,策略便开始寻找这个上涨波段中的最高点(P2),并计算出从P2回落的“警戒线”P3。当价格从高点回落到P3以下时,触发卖出。思路:这个阶段是本策略的精髓。它不预测顶部,而是等待顶部出现(P2)并从顶部显著回落(跌破P3)后才行动,是一种典型的“右侧交易”思维。它牺牲了顶部的一小部分利润,来换取趋势可能反转的更高确定性。 最关键的约束条件:P3 > P1 代码体现:if p_3>p_1:思路:这是整个策略逻辑中最精妙、最关键的一环。它要求“回调警戒线P3”必须高于“上涨启动线P1”。这保证了触发卖出时,股价仍然高于最初确认上涨趋势的位置。 深层含义:如果 P3 0: position=position[position['持仓量']>=10] if position.shape[0]>0: hold_list=position['证券代码'].tolist() av_amount_dict=dict(zip(position['证券代码'],position['可用数量'])) else: hold_list=[] av_amount_dict={} else: hold_list=[] av_amount_dict={} if check_is_trader_date_1(c): df=get_trader_stock(c) if df.shape[0]>0: for stock,name in zip(df['证券代码'],df['名称']): try: now_date=int(''.join(str(datetime.now())[:10].split('-'))) date_time=int(''.join(str(datetime.now()).split('.')[0][-8:].split(':'))) log=check_trader_log(c) price=get_price(c,stock) price=round(price,3) if log.shape[0]>0: log=log[['证券代码','名称',"拐点类型",'交易模式', '交易方向','交易值','交易价格','交易时间','交易日']] log=log.sort_values(by='交易时间',ascending=True) log['交易日']=log['交易日'].astype(int) log=log[log['交易日']==now_date] else: log=pd.DataFrame() #获取开始的基础价格 if log.shape[0]>0: log_stock=log[log['证券代码']==stock] if log_stock.shape[0]>0: base_price=log_stock['交易价格'].tolist()[-1] last_time=log_stock['交易时间'].tolist()[-1] stats=True else: base_price=get_base_price(c,stock) last_time=93000 stats=False else: base_price=get_base_price(c,stock) last_time=93000 stats=False if stats==True: tick=get_stock_lx_tick(c,stock,date=str(now_date)) tick=tick[tick['time']>=last_time] else: tick=get_stock_lx_tick(c,stock,date=str(now_date)) if tick.shape[0]>0: lastClose_list=tick['lastPrice'].tolist() #最新值 last_price=lastClose_list[-1] #最大值 max_value=max(lastClose_list) #p1值 p_1=base_price*(1+up_ratio/100) p_1=round(p_1,3) #目前涨跌幅 last_zdf=((last_price-base_price)/base_price)*100 last_zdf=round(last_zdf,2) #最高点涨跌幅 last_max_zdf=((max_value-base_price)/base_price)*100 last_max_zdf=round(last_max_zdf,2) #p2最大价 p_2=max_value p_2=round(p_2,3) #回调比例计算p3 p_3=p_2*(1-down_ratio/100) p_3=round(p_3,3) #目前回调比例 last_ht_ratio=((last_price-p_2)/p_2)*100 last_ht_ratio=round(last_ht_ratio,2) #最新价大于P1,开始监控 if last_price>=p_1: #回调没有跌破p1 if p_3>p_1: #最新价跌破回调值 if last_price=amount: amount=amount else: amount=av_amount if check_is_sell(c,c.account,c.account_type,stock=stock,amount=amount): maker='{},拐点卖出,{},{},{},{}'.format(c.st_name,stock,'sell',amount,price) passorder(c.sell_code, 1101,c.account, stock, c.sell_price_code, 0, amount, maker,1,maker,c) trader_log=pd.DataFrame() trader_log['证券代码']=[stock] trader_log['名称']=[name] trader_log['拐点类型']=['拐点卖出'] trader_log['交易模式']=[trader_type] trader_log['交易方向']=['sell'] trader_log['交易值']=[value] trader_log['交易价格']=[price] trader_log['交易时间']=[int(date_time)] trader_log['交易日']=[int(now_date)] #第一次循环运行卖出不记录 if a.sell_flg==0: print(stock,'第一次循环运行卖出不记录********') a.sell_flg=1 else: log=pd.concat([log,trader_log],ignore_index=True) if log.shape[0]>0: log['证券代码']=log['证券代码'].apply(lambda x: '0'*(6-len(str(x)))+str(x)) else: log=log log.to_excel(r'{}'.format(path)) print(maker) else: print(stock,'卖出失败可能没有持股') else: print('没有触发拐点卖出,会调没有跌破P3,时间:{},股票:{},名称:{},基准价:{},p1值:{},p2值:{},p3:值{},最新价:{},目前涨跌幅:{},最高涨跌幅:{},目前回调比例:{} '.format(str(datetime.now())[:-7:], stock,name,base_price,p_1,p_2,p_3,last_price, last_zdf,last_max_zdf,last_ht_ratio)) else: print('没有触发拐点卖出,P3小于P1,时间:{},股票:{},名称:{},基准价:{},p1值:{},p2值:{},p3:值{},最新价:{},目前涨跌幅:{},最高涨跌幅:{},目前回调比例:{} '.format(str(datetime.now())[:-7:], stock,name,base_price,p_1,p_2,p_3,last_price, last_zdf,last_max_zdf,last_ht_ratio)) else: print('没有触发拐点卖出,最新加没有突破P1,时间:{},股票:{},名称:{},基准价:{},p1值:{},p2值:{},p3:值{},最新价:{},目前涨跌幅:{},最高涨跌幅:{},目前回调比例:{} '.format(str(datetime.now())[:-7:], stock,name,base_price,p_1,p_2,p_3,last_price, last_zdf,last_max_zdf,last_ht_ratio)) else: print(str(datetime.now())[:-7],stock,'拐点卖出,拐点触发后的时间没有数据,拐点触发交易时间大于15:00') except Exception as e: print(e,stock,'拐点卖出有问题*********') else: print('拐点买入没有自定义交易股票池*********') else: print('{}拐点卖出目前不是交易时间*********'.format(datetime.now())) ``` ### 原理图 ![](https://developer.qcloudimg.com/http-save/audit-12698924/0ca06ebfc16592791b8b5f1fdaef6af7.webp) ### 流程图 ![](https://developer.qcloudimg.com/http-save/audit-12698924/3f562a7f2924bfc9a06a7686532da375.png)

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册