请教 sql 如何编写股票函数,例如:EMA(n,close)

l1275 2010-08-17 05:05:10
我现在正在研究如何用sql编写股票的函数问题,不太知道怎么处理,

我有一些函数公式如:
指数平均值 EMA(当日收盘价,N)= n 日平滑系数 × (当日收盘价-昨日 EMA ) + 昨日 EMA  
 n 日平滑系数 =2÷ ( n+1 )
我自己每日搜集了股票信息库,比如8月16日的股票信息 表为:S816, 8月13日 表为:S813, 对于周末的股票信息是没有相应表的,我的想法是用exits()可以判断是否有此表,没有就跳过去,

对于这种指数平均值的函数应该怎么编写才好呢? 麻烦各位高手不吝赐教,谢谢!
...全文
795 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
幸运的意外 2010-08-27
  • 打赏
  • 举报
回复
搞定了去炒股,咱也炒成千万富豪
l1275 2010-08-27
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 sqlcenter 的回复:]
#3已经提醒过你了,股票数据每日一个表是非常低级的一种方式。

象这个EMA需求,如果有1000日的数据,1000个表你都要扫一次,这是求某日的EMA,求1000日的EMA要扫多少次表,你自己算吧。

应该每只股票一个表,求什么EMA/MA,都是一条SQL语句搞定的事。
[/Quote]


不是的,你不明白我的意思,我这1800只股票每日是一张表(收盘表),ema(20日)的,也不过20张表,所以还是要求EMA函数不知道如何设计
SQLCenter 2010-08-26
  • 打赏
  • 举报
回复
#3已经提醒过你了,股票数据每日一个表是非常低级的一种方式。

象这个EMA需求,如果有1000日的数据,1000个表你都要扫一次,这是求某日的EMA,求1000日的EMA要扫多少次表,你自己算吧。

应该每只股票一个表,求什么EMA/MA,都是一条SQL语句搞定的事。
ohfox 2010-08-26
  • 打赏
  • 举报
回复
sql读取到的数据很难是实时的吧,可能是收盘后的文件里面的数据
那这种分析的意义就不是很大啊^_^
l1275 2010-08-26
  • 打赏
  • 举报
回复
偶得上网条件比较艰苦,只有sql ,股票软件不可以安装,所以想自制一个系统,没有办法了.
以下编了几个函数,实在编不下去了,请各位高手赐教.

n日平滑系数函数如下:
CREATE FUNCTION dbo.phxs(@n float )
RETURNS float
AS
BEGIN
declare @phxsk float
set @phxsk= 2/(@n+1)
return @phxsk
END

股票数据来源8月23日的来源为s822,8月20日的股票数据表为s820,周六日没有表判断为不存在跳过,此函数为




CREATE FUNCTION dbo.source(@current int)
RETURNS varchar (10)
AS
BEGIN
declare @source1 varchar(10)
winloop:
set @source1='s'+cast(@current as varchar(10))

if not exists (select name from sysobjects
where name=@source1 and xtype='U')
begin
set @current=@current-1
goto winloop
end
return @source1
end


指数平均值 EMA(当日收盘价,N)= n 日平滑系数 × (当日收盘价-昨日 EMA ) + 昨日 EMA  
我就不知道怎么编写了 怎么能够编写这种嵌套的函数??

当日收盘价如下表达
Declare @aa nvarchar(10)
set @aa='select 收盘价 from '+dbo.source(@current)
exec(@aa)

总之嵌套函数我不会编写,尤其是返回一个表,请教各位了,谢谢!不胜感激!


l1275 2010-08-26
  • 打赏
  • 举报
回复
不好意思,偶是没办法而为之,
王向飞 2010-08-20
  • 打赏
  • 举报
回复
这些数据网上有的是,你还不如直接去取呢
个人开发这个实在是。。。
l1275 2010-08-17
  • 打赏
  • 举报
回复
我只搜集了每日的所有股票信息 字段如下:(code,股票名,最高价,最低价,昨收,收盘价,换手率,量比)这些就基本够了,
SQLCenter 2010-08-17
  • 打赏
  • 举报
回复
如果纯粹是为研究,请继续。

如果你想凭电脑帮你炒股赚钱,我劝你及早取消这个念头。

--职业投机者
SQLCenter 2010-08-17
  • 打赏
  • 举报
回复
数据每日分表很难处理的,每个股票一个表,这好处理很多。
billpu 2010-08-17
  • 打赏
  • 举报
回复
同上同上,另外问下你的股票信息库能共享吗 哈哈
dawugui 2010-08-17
  • 打赏
  • 举报
回复
这个?我也想知道,帮顶。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧