金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
楼主: 100020061

统计

[复制链接]

38

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-12-25 17:10 | 显示全部楼层
你当前平仓盈亏是190,不符合if条件是进入循环的,然后循环里面不断地加起来是可能最后0的,直到符合你这个条件才会跳出循环的
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

38

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-12-25 17:16 | 显示全部楼层
本地测试没有问题,只有开始没有平仓那里是0,后面没有出现0的情况
所以你的0很可能就是正好是0
截图202412251716137643.png
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2024-12-25 17:17 | 显示全部楼层
技术008 发表于 2024-12-25 17:10
你当前平仓盈亏是190,不符合if条件是进入循环的,然后循环里面不断地加起来是可能最后0的,直到符合你这个 ...

不是的,我重新理一下你看
if NUMPROFIT(i)>5000 and ljks>0 then break;  这样就对了,前面问你代码放的位置,跟这个也有关系。
在本次190的平仓K上面,显示的是上一次的平仓盈亏,1350,他满足了NUMPROFIT(i)>1000,所以被跳出了计算。
但这样的处理肯定是不对的,他等于平仓K和计算的K不在一个K,导致错误还是怎么的,另外我不知道在这个位置ljks是不是累加和


补充内容 (2024-12-25 17:20):
问题在那个平仓的数值和位置关系,这些导致的if NUMPROFIT(i)>5000 and ljks>0 then break;
NUMPROFIT(i) 这里要取本次的结果会不会好点,他实际取了上一次的结果,我代码放在整个代码的前面的
回复

使用道具 举报

38

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-12-25 17:20 | 显示全部楼层
这个不还是前面提到代码上下关系,判断本次平仓的代码如果在平仓代码下面那么是会统计这一次的平仓,但是如果在平仓代码的上面,那么他是不会用到下面的平仓代码的

这个逻辑建议您自己思考整理吧,我这边真的脑子糊掉了被你,上面我这边截图可以看到这个用法是没有问题的,其他一些还请您自己试试吧
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2024-12-25 17:28 | 显示全部楼层
技术008 发表于 2024-12-25 17:20
这个不还是前面提到代码上下关系,判断本次平仓的代码如果在平仓代码下面那么是会统计这一次的平仓,但是如 ...

你这样说我就没办法了,你把盈亏数据数值改变下测试吧,肯定有问题的
if NUMPROFIT(i)>5000 and ljks>0 then break;这句本身应该就是有问题的
这里计算的是本次盈亏大于1000且累加和大于0才跳出,用循环的i是否正确?不是应该用1吗?
对于这句中的 ljks 是不是累加和,我还是不太确定,因为累加在这句的下方才开始计算的
回复

使用道具 举报

38

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-12-25 17:30 | 显示全部楼层
i是循环每一次交易,这个就是累加的,循环时里面都循环的
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

38

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-12-25 17:32 | 显示全部楼层
你这个要最后啊
前面给你说了好多次,代码的顺序时非常重要的就好比小学数学
x = 5
y = x+10
这时候y时15,从上到下

y = x+10
x = 5
这种是不行的,上面的y是不能用下面的x的,代码和数学也是一样的顺序讲究需要
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2024-12-25 17:47 | 显示全部楼层
技术008 发表于 2024-12-25 17:32
你这个要最后啊
前面给你说了好多次,代码的顺序时非常重要的就好比小学数学
x = 5

ss:=0;
for i=1 to TOTALTRADE do
begin
        if NUMPROFIT(i)>1000 then break;
        ss:=ss+NUMPROFIT(i);
end
这个代码的 if NUMPROFIT(i)>1000 then break; 本次盈利1350,他累加的也就是本次的结果ss也是1350,所以满足了跳出,结果就为0了。我如果把1000改成了5000,但是本次只有1350,那他就会计算。说明问题就是这些地方
但是他不是我要的结果啊,我需要的是累加历史盈亏,只要不满足当次平仓大于1000,且历史盈亏小于0的都一直累加。你如果觉得是对的那就算了就当我没问,我再试试。

回复

使用道具 举报

38

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-12-25 17:51 | 显示全部楼层
ss:=0;
for i=2 to TOTALTRADE do
begin

        if NUMPROFIT(i)>1000 then break;
        ss:=ss+NUMPROFIT(i);
end

那就从上上次交易开始,本次平仓了那么就叫历史交易的
比如你下午时候看上午的交易,上午就是属于历史交易的,凡是过去的都是属于历史
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2024-12-25 18:01 | 显示全部楼层
技术008 发表于 2024-12-25 17:51
ss:=0;
for i=2 to TOTALTRADE do
begin

你后面这个代码我还没试,但是我试了下跳出判断不要了,他累加是对的,我在SS的结果基础上判断上次平仓结果和SS的结果,好像就对了啊,
ljks:=0;
                        for i=1 to TOTALTRADE do
                        begin

                                ljks:=ljks+NUMPROFIT(i);

                        end

累加亏损:ljks;//VALUEWHEN(holding*ref(holding,1)<=0,ljks); ;
p1:NUMPROFIT(1);
pp:if(NUMPROFIT(1)>1000 and ljks>0,0,ljks);
好像那个条件判断在循环里面捣乱了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-4-21 14:06 , Processed in 0.123809 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表