金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3305|回复: 7

请问“账户权益的1%/ATR”来计算开仓手数的公式怎么表达?

[复制链接]

4602

主题

4687

帖子

4712

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2022-8-15 09:49 | 显示全部楼层 |阅读模式
请问“账户权益的1%/ATR”来计算开仓手数的公式怎么表达?
S:= TACCOUNT( 6)*0.01/(T*ATR*DYNAINFO(209));
SS:=INTPART(S); 以上的错误在哪里?谢谢
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

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

你代码里你还除了一个变量T。其他没看到什么不一致地方。此外这个取整结果,你也要看下是不是取到了0.取到0 情况下作为开仓手数 是直接满仓开的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

1

主题

5

帖子

5

积分

Rank: 1

等级: 新手上路

注册:
2022-8-15
曾用名:
发表于 2022-8-15 11:23 | 显示全部楼层
TACCOUNT( 6)和DYNAINFO(209)这两个函数,调试的时候提醒要小心,不知道什么意思?如果想你提到的取整为零的情况,我应该怎么避免呢?当手数小于1时,想取整为1,应该怎么表达。能不能麻烦你,编写一个你们标准的“账户权益的1%/ATR”计算公式?谢谢!!
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-8-15 11:24 | 显示全部楼层
因为这个是后台函数,你如果是图表策略 不能这样写的。所以你要明确下你这个用在图表程序化,还是后台程序化。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-8-15 11:28 | 显示全部楼层
如果你是图表策略:

ATR:"ATR.ATR";//调用系统的ATR
S:=INTPART(ASSET*0.01/(ATR*MULTIPLIER));
SS:if(S=0,1,S); //至少开一手


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

使用道具 举报

1

主题

5

帖子

5

积分

Rank: 1

等级: 新手上路

注册:
2022-8-15
曾用名:
发表于 2022-8-16 09:19 | 显示全部楼层
非常感谢,已经明白了。麻烦再问一个问题,在BUY(COND,V,Type,P)中,如果开仓手数想以资金的百分比进行,是怎么界定呢?比如3%,直接写成BUY(条件,3%,价格)好像不对。谢谢!
回复

使用道具 举报

1

主题

5

帖子

5

积分

Rank: 1

等级: 新手上路

注册:
2022-8-15
曾用名:
发表于 2022-8-16 09:22 | 显示全部楼层
想问的是以账户权益的百分比开仓,而不是账户可用资金的百分比。谢谢。
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-8-16 09:29 | 显示全部楼层
[PEL] 复制代码
input:zj(10000,1,1000000,1);
下单资金量:=zj;
MarginRatio:=TACCOUNT(41);//多头保证金比率. 这个要把合约信息设置里面的费率设置正确,否则函数取到的值可能是不对的。
bzj:=Close*Multiplier*MarginRatio;//一手保证金占用
ss1:=Intpart(下单资金量/(bzj));//根据资金ZJ计算的开仓手数
 
//最终结果
//ss1可能会有计算出为0 的情况,而恰好为手数参数为0在函数中是满仓开的含义。因此再次处理下,当ss1为0情况下默认按下一手处理。
ss:if(ss1>0,ss1,1);

调整:
1.资金量改成动态权益函数,图表的话就是asset

2.1的基础上乘上一个百分比就行了
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-7 05:06 , Processed in 0.156832 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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