金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3544|回复: 8

全局变量如何在日内交易结束时清空?

[复制链接]

20

主题

48

帖子

48

积分

Rank: 1

等级: 新手上路

注册:
2021-6-29
曾用名:
发表于 2021-7-28 11:39 | 显示全部楼层 |阅读模式
你好!请问全局变量 用VARIABLE声明并初始化零后,为何不为零?如何在日内交易结束时清空声明的全局变量?
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-7-28 13:05 | 显示全部楼层
if  time=CLOSETIME(0) then 全局变量:=0;
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

20

主题

48

帖子

48

积分

Rank: 1

等级: 新手上路

注册:
2021-6-29
曾用名:
 楼主| 发表于 2021-7-28 14:34 | 显示全部楼层
EMAN:EMA(CLOSE,21),PRECISION4,COLORBLACK;
EMAK:EMA(CLOSE,55),PRECISION4,COLORBLUE;

STICKLINE(CROSS(EMAN,EMAK),OPEN,CLOSE,8,0,COLORRED);

Variable:DKC=0; //开仓次数

KDTJDN:BARSLAST(CROSS(EMAN,EMAK)),PRECISION0,NODRAW;
DKC:=REF(CLOSE,KDTJDN)*10000,PRECISION0,NODRAW;
KDKC:DKC,NODRAW;

IF TIME=CLOSETIME(0) THEN DKC:=0;


--------------------------------------------------------------------------请问为何隔日了,全局变量DKC重新归零后,在当日还是延续了昨日的数值,没有归零?
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-7-28 14:39 | 显示全部楼层
截图证明下你说的情况。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

20

主题

48

帖子

48

积分

Rank: 1

等级: 新手上路

注册:
2021-6-29
曾用名:
 楼主| 发表于 2021-7-28 14:48 | 显示全部楼层
7-27日收盘前DKC是425
7-28日开盘后DKC还是425
微信图片_20210728144714.jpg
微信图片_20210728144721.jpg
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-7-28 14:58 | 显示全部楼层
截图202107281456445762..png

因为你看到的是还没有被重置为0时候的全局变量。你输出全局变量的位置在 全局变量重置之前。而到了第二天,你这里的赋值语句又执行了,所以导致你永远也看不到KDKC是0的情况。

你这里用这个全局变量感觉没啥意义,因为你每个K都给全局变量进行重新赋值操作。

金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

20

主题

48

帖子

48

积分

Rank: 1

等级: 新手上路

注册:
2021-6-29
曾用名:
 楼主| 发表于 2021-7-28 15:35 | 显示全部楼层
我要统计每次试错的盈亏,添加到下次仓位的计算中。举例:比如当日目标赚1000元,第一次符合开仓条件,开仓10手,但不幸止损了,亏损200元;第二次符合开仓条件了,目标就是赚1200元,开仓手数就可能是12手,这个当日的每次盈亏必须要用到全局变量?请问怎么实现?谢谢!
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-7-28 15:41 | 显示全部楼层
以赚100点为例:
VARIABLE:profit:=0;//统计盈亏的点数
goal:=100;



if  holding>0 and 平多条件 then
begin
sell(1,holding,market);
profit:=profit+(EXITPRICE-ENTERPRICE);
end

if holding<0 and 平空条件 then
begin
sellshort(1,holding,market);
profit:=profit+(ENTERPRICE-EXITPRICE);
end

newgoal:goal-(profit);//新的盈利目标

然后再根据新的盈利目标计算开仓手数,这个手数也得用全局变量。否则无法传递到下一次开仓位置。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-7-28 15:42 | 显示全部楼层
如果要用实际盈亏的数值
profit:=profit+(ENTERPRICE-EXITPRICE);

那么这里累加时候就累加上次平仓盈亏就行了。用NUMPROFIT(1)  替换后面算价差的部分就行了。

总体上思路就是 在每次平仓时候用对全局变量进行重现赋值操作就行了。

金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 12:00 , Processed in 0.177538 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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