金字塔决策交易系统

标题: 老师看下 [打印本页]

作者: 100020061    时间: 2024-3-6 09:21
标题: 老师看下
CC:=THOLDCOUNT('');
FOR I = 1 TO CC do
BEGIN
CCDM:= THOLDINDEXLABEL(I,'');
WRITEINIFILE('D:\stock\debug.ini', CCDM ,'1',1);
end
输出是这样的:
[DQL05]
1=1.000000
[DQM05]
1=1.000000
我想让他输出每个品种的盈亏 能写出来吗?




作者: 技术009    时间: 2024-3-6 09:26
用TOPENPROFITEX( , , , ) 函数直接读取 单个品种的盈亏。
注意这是7.0新增的函数。



作者: 100020061    时间: 2024-3-6 09:50
技术009 发表于 2024-3-6 09:26
用TOPENPROFITEX( , , , ) 函数直接读取 单个品种的盈亏。
注意这是7.0新增的函数。

THOLDINDEXLABEL(I,'')  怎么判断没有持仓呢?
作者: 技术009    时间: 2024-3-6 09:51
本帖最后由 技术009 于 2024-3-6 09:53 编辑

首先,你都已经遍历到这个品种了,你还要问有没有持仓。这明显是在船上还要问下面是不是水。其次 后台函数里读持仓都是有函数的,你在函数列表里可以检索下:
https://www.weistock.com/docs/PE ... 7%E4%B9%B0%E6%8C%81  

作者: 100020061    时间: 2024-3-6 09:57
技术009 发表于 2024-3-6 09:51
首先,你都已经遍历到这个品种了,你还要问有没有持仓。这明显是在船上还要问下面是不是水。其次 后台函数 ...

因为是这样的 我在遍历有持仓的情况下,进行了平仓,平仓以后他会把上次的记录进行写盘的保留,那我要判断这个写盘有数据的情况下,又没有持仓的情况,目的是去进行一个平仓的累加写盘···不进行判断就会把上次的数据覆盖掉
作者: 技术009    时间: 2024-3-6 10:11
本帖最后由 技术009 于 2024-3-6 10:12 编辑

你一个品种至少需要2个字段,才能实现累加每次平仓盈亏的效果。一个字段记录之前累计的,一个只记录最新的。

如果某次遍历时候需要进行平仓了,那更新第一个字段,其他情况下是不可以动这个字段的值。还有个很不好解决的问题,如果你这个品种是有多空同时持仓的,就不好处理。

作者: 100020061    时间: 2024-3-6 10:16
技术009 发表于 2024-3-6 10:11
你一个品种至少需要2个字段,才能实现累加每次平仓盈亏的效果。一个字段记录之前累计的,一个只记录最新的 ...

是这个意思,记录最新的这个会在平仓以后进行数据的保留,所以要判断平仓以后去获取这个保留下来的盈亏,拿去叠加前面记录的盈亏数据,这个好像要判断当前没有持仓了,但是记录最新的有数据才行 不知道老师有没有办法
作者: 技术009    时间: 2024-3-6 10:30
本帖最后由 技术009 于 2024-3-6 10:37 编辑

做不了得。  你又没办法在图表上直接平仓。这个操作是要和对实际账户得平仓绑定在一起才好处理得。
即在平仓时候,用最新得值+历史值 来更新下历史累加值这个字段得。 否则只要你平仓了没持仓了,实际你这个遍历就已经无法遍历到这个品种了。






作者: 100020061    时间: 2024-3-6 10:39
技术009 发表于 2024-3-6 10:30
做不了得。  你又没办法在图表上直接平仓。这个操作是要和对实际账户得平仓绑定在一起才好处理得。
即在平 ...

那刚才那个循环的方式能获取到市价和账户栏的盈亏率吗??没看到函数
作者: 技术009    时间: 2024-3-6 10:45
首先,你遍历得时候已经有了品种代码了?有品种代码了,品种最新价,品种盈亏不都是可以直接调用获取得了吗。

价格调用,这个不用说了,callstock就行了。盈亏率你品种持仓均价和最新价都有了,直接算就行了。  你多看看后台得函数吧,这些都是现场得函数。

作者: 100020061    时间: 2024-3-6 11:20
技术009 发表于 2024-3-6 10:45
首先,你遍历得时候已经有了品种代码了?有品种代码了,品种最新价,品种盈亏不都是可以直接调用获取得了吗 ...

GETINIFILE('D:\stock\debug.ini', 持仓品种 ,'实时盈亏:');
持仓品种 这个是有持仓才能被获取到品种代码。
如果平仓了,写盘文件保留了平仓前的数据,我用什么办法获取到写盘里面的  持仓品种 以外的代码 这样就可以去叠加了··
作者: 技术009    时间: 2024-3-6 11:23
获取不了。这个就是难点所在。



作者: 100020061    时间: 2024-3-6 11:42
技术009 发表于 2024-3-6 11:23
获取不了。这个就是难点所在。

那就这样,轮询有持仓的时候把品种加到指定板块,平仓以后用持仓状态把对应的品种加到平仓板块,再获取平仓板块的代码 进行读取平仓状态。添加删除板块都可以搞定,怎么获取板块品种代码呢?
作者: 技术009    时间: 2024-3-6 13:01
STKCOUNT( )
STKFROMBLK( , )

这2个函数。
作者: 100020061    时间: 2024-3-6 13:56
技术009 发表于 2024-3-6 13:01
STKCOUNT( )
STKFROMBLK( , )

还真可以取到平仓品种的数据,还要细化一下累加的问题了,。另外我计算了剩余交易日,比如一个月总共有20个交易日,那当月第一天是20,最后一天是1,那我想按月,做盈亏统计,在1的当天要把写盘
累加,这个操作怎么好弄呢?因为每个月交易日不等的,或者就是用类似全局变量的方式,每天收盘把前面的累加加上当日的盈亏进行写盘,不知道好不好弄




欢迎光临 金字塔决策交易系统 (https://www.weistock.com/bbs/) Powered by Discuz! X3.4