金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 2488|回复: 9

策略编写求助(后台)

[复制链接]

16

主题

50

帖子

60

积分

Rank: 2

等级: 标准版

注册:
2021-5-20
曾用名:
发表于 2021-7-15 09:33 | 显示全部楼层 |阅读模式
请教版主:

             读取账户现有持仓的累计浮动盈亏,当其最高值大于资产的5%,从高点回落20%,全部清仓;

                                                                当最高值小于资产的5%,从高点回落40%,全部清除。


                                                                     麻烦版主帮忙编写一下,谢谢啦!!
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-7-15 09:40 | 显示全部楼层
1.你这个是后台程序化 ,标准版上是无法使用的后台程序化的。
2.不考虑1 的情况下。你这里的资产是想用动态权益 还是用保证金占用?
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

16

主题

50

帖子

60

积分

Rank: 2

等级: 标准版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2021-7-15 09:47 | 显示全部楼层
动态权益
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-7-15 10:22 | 显示全部楼层
本帖最后由 技术009 于 2021-7-15 10:27 编辑

[PEL] 复制代码
浮动盈亏:TACCOUNT( 4);
动态权益:TACCOUNT( 6);
保证金占用:TACCOUNT(28);

IF  保证金占用=0 then //保证金为0时候直 接重置全局变量
begin
EXTGBDATASET('MAX_fdyk',0);//最大浮动盈亏
EXTGBDATASET('pcqy',0);//根据最大浮动盈亏计算的满足平台条件时候的浮动盈亏情况
EXTGBDATASET('isClear',0);    
end

if 浮动盈亏>EXTGBDATASET('MAX_fdyk',浮动盈亏) then 
begin 
EXTGBDATASET('MAX_fdyk',浮动盈亏);//更新最大浮动盈亏的值
if 浮动盈亏>动态权益*0.05 then EXTGBDATASET('pcqy',浮动盈亏*0.8);
if 浮动盈亏<动态权益*0.05 then 
begin
if 浮动盈亏>0  then EXTGBDATASET('pcqy',浮动盈亏*0.6);
if 浮动盈亏<0  then EXTGBDATASET('pcqy',浮动盈亏*1.4);//浮动盈亏最大值是负数情况下,回落是一个负数绝对值增加的过程
end

end



if 浮动盈亏<=EXTGBDATA('pcqy') then //回落后平仓
begin 
EXTGBDATASET('isClear',1);    //满足条件 则修改这个全局变量的值,平仓全部依靠判断这个全局变量
end

if  EXTGBDATA('isClear')=1 then //这里需要注意,之所以单独做这个全局变量是因为一旦开始平仓之后,浮动盈亏会直接变化,从而会影响整个逻辑。
begin 
//这里写平仓语句    包含多空,请自行完善
end


1.以上代码运行时候 必须单独运行,且监控账户栏全部持仓。
2.如果中间终止程序化,再次启动最好清空全局变量。一切重新开始。因为这时候的全局变量纪录的值 是缺少停止的这段时间的,已经失真了。

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

使用道具 举报

16

主题

50

帖子

60

积分

Rank: 2

等级: 标准版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2021-7-15 14:35 | 显示全部楼层
谢谢版主!还有几点疑问麻烦一下版主:
1、你提出的第二点,再次重启程序化,该如何清空全局变量啊,要全部手动清仓吗?
2、EXTGBDATA('isClear')=1这个条件可以控制,当这个子策略满足条件开始清仓时,不会因为平仓几笔之后,浮动盈亏发生变化而重新开始判断浮动盈亏的最高值吧?
3、这个子策略没有达到清仓条件时,主策略出现平仓之后,这时的浮动盈亏最高值还是按照平仓之前的计算吗?还是平仓之后重新判断呀?
4、这个子策略我是想用在盈利的情况下,所以将 ‘保证金占用=0 ’改为 ‘浮动盈亏:TACCOUNT( 4)>动态权益*0.02’,‘将浮动盈亏<0  then EXTGBDATASET('pcqy',浮动盈亏*1.4)’去掉了,这样改对吗?
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-7-15 15:06 | 显示全部楼层
1.
截图202107151502149383..png

2.“不会因为平仓几笔之后,浮动盈亏发生变化而重新开始判断浮动盈亏的最高值吧?”
EXTGBDATA('isClear') 用这个全局变量记住 就是为了处理这个问题的。就是我们已经判断满足条件了,但是为了防止平仓导致的变化,用isClear来记住我们前面的判断。

3.“这时的浮动盈亏最高值还是按照平仓之前的计算吗?还是平仓之后重新判断呀?”会根据之前记录的。
也就是说可能会因为其他地方平仓,导致这里也突然满足了平仓条件。这一点很尴尬,但是的确没有好的办法去处理。

4.只考虑盈利的话,这一句去掉就行了。 "if 浮动盈亏<0  then EXTGBDATASET('pcqy',浮动盈亏*1.4);//浮动盈亏最大值是负数情况下,回落是一个负数绝对值增加的过程"   其他地方是不需要改的。

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

使用道具 举报

16

主题

50

帖子

60

积分

Rank: 2

等级: 标准版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2021-7-15 15:51 | 显示全部楼层
那可以换种写法吗?就是从账户里去获取品种信息,这样就只要监控任意品种,当满足条件清仓;若持仓品种减少或增加时重置全局变量,这样可行吗?
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-7-15 16:05 | 显示全部楼层
“若持仓品种减少或增加时重置全局变量” 这个不知道能不能实现了,就算可以也会非常复杂,临界情况太多了。就比如平仓未成交的情况,而且是要去判断这个品种多空2个方向的。然后就是要记录账户栏品种, 账户栏的品种你还要做循环遍历一下,遍历的时候还要进行过滤。因为有的品种今仓老仓是分行显示的,一个品种可能还有多空2个方向。   
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

16

主题

50

帖子

60

积分

Rank: 2

等级: 标准版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2021-7-15 17:07 | 显示全部楼层
那还有其它的办法吗?可不可以帮我想想办法呀,拜托啦!
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-7-16 09:16 | 显示全部楼层
没办法,这个只能尝试下。但是的确不能保证可以做到。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 10:23 , Processed in 0.283104 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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