设为首页收藏本站

 找回密码
 注册
查看: 1845|回复: 8

求助小米,关于CurrentContracts的疑惑。 [复制链接]

Rank: 2

精华
0
UID
257848
积分
114
帖子
49
主题
19
阅读权限
30
注册时间
2017-10-17
最后登录
2022-2-15
发表于 2018-1-10 11:47:22 |显示全部楼层
本帖最后由 vip0745 于 2018-1-10 11:48 编辑

代码如下:
  1. CanOpen = 固定手数 Or 根据资金计算

  2. // 空头平仓
  3. If(CurrentContracts < 0 AND BarsSinceEntry >= 1 And PC_Short_Cond){
  4.         BuyToCover(Abs(CurrentContracts), 0);
  5. }

  6. // 多头平仓
  7. If(CurrentContracts > 0 AND BarsSinceEntry >= 1 And PC_Long_Cond){
  8.         Sell(CurrentContracts, 0);
  9. }

  10. // 开仓做多
  11. //////////////////////////////////////////
  12. if (BuyCond And DistanceValid)
  13. {
  14.         Buy(CanOpen, 0);
  15. }

  16. // 开仓做空
  17. if (SellShortCond And DistanceValid)
  18. {
  19.         SellShort(CanOpen, 0);
  20. }
复制代码
问题是:当我CanOpen使用固定手数比如1或10的时候,开平仓都没问题。一但换成了通过资金计算就出了问题,开仓99手,平仓却只平45手,不知道是什么原因。

固定手数的时候正常:


通过资金计算就不正常了,有平仓信号也只平掉一部分

附件: 你需要登录才可以下载或查看附件。没有帐号?注册

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
发表于 2018-1-10 13:31:18 |显示全部楼层
currentcontracts在不同的K线上计算的结果可能不相同。。
如果不是分步平仓,就直接使用0做为平仓手数吧。

使用道具 举报

Rank: 2

精华
0
UID
257848
积分
114
帖子
49
主题
19
阅读权限
30
注册时间
2017-10-17
最后登录
2022-2-15
发表于 2018-1-10 13:38:52 |显示全部楼层
本帖最后由 vip0745 于 2018-1-10 13:49 编辑
小米 发表于 2018-1-10 13:31
currentcontracts在不同的K线上计算的结果可能不相同。。
如果不是分步平仓,就直接使用0做为平仓手数吧。 ...


设置后,并没有将对应的仓位都平掉。但是固定的就可以,我也搞糊涂了怎么回事呢,是不是只有用A_xxx那一套函数解决?

附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
发表于 2018-1-10 13:55:42 |显示全部楼层
vip0745 发表于 2018-1-10 13:38
设置后,并没有将对应的仓位都平掉。但是固定的就可以,我也搞糊涂了怎么回事呢,是不是只有用A_xxx那一 ...

代码怎么写的?图表上的信号截个图看看

使用道具 举报

Rank: 2

精华
0
UID
257848
积分
114
帖子
49
主题
19
阅读权限
30
注册时间
2017-10-17
最后登录
2022-2-15
发表于 2018-1-10 14:10:42 |显示全部楼层
本帖最后由 vip0745 于 2018-1-10 14:13 编辑
小米 发表于 2018-1-10 13:55
代码怎么写的?图表上的信号截个图看看








代码:
  1.         TotalEquity = A_FreeMargin();
  2.         If(TotalEquity != InvalidNumeric){
  3.                 SetGlobalVar2("UsableMoney", TotalEquity);
  4.         }
  5.         CanOpen = RoundDown((GetGlobalVar2("UsableMoney") * 0.1) / (Open * 1.3), 0);

  6.         // 平仓
  7.         /////////////////////////////////////////////////////
  8.         If(CurrentContracts < 0 AND BarsSinceEntry >= 1 And PC_Short_Cond){
  9.                 BuyToCover(0, 0);
  10.         }
  11.        
  12.         If(CurrentContracts > 0 AND BarsSinceEntry >= 1 And PC_Long_Cond){
  13.                 Sell(0, 0);
  14.         }

  15.         // 开仓
  16.         //////////////////////////////////////////
  17.         if (BuyCDT1 And DistanceValid)
  18.         {
  19.                 Buy(CanOpen, 0);
  20.         }

  21.         // 开仓做空
  22.         if (SellShortCDT1 And DistanceValid)
  23.         {
  24.                 SellShort(CanOpen, 0);
  25.         }
复制代码
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
发表于 2018-1-10 14:15:31 |显示全部楼层
vip0745 发表于 2018-1-10 14:10
代码:

信号在哪?为啥图上没有?

使用道具 举报

Rank: 2

精华
0
UID
257848
积分
114
帖子
49
主题
19
阅读权限
30
注册时间
2017-10-17
最后登录
2022-2-15
发表于 2018-1-10 14:28:39 |显示全部楼层
小米 发表于 2018-1-10 14:15
信号在哪?为啥图上没有?

卖出平仓的信号在tick的确是有的,这是10秒的K线,测试用的

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
发表于 2018-1-10 14:47:52 |显示全部楼层
vip0745 发表于 2018-1-10 14:28
卖出平仓的信号在tick的确是有的,这是10秒的K线,测试用的

无论什么线,信号总得有吧?
不要将a_xxx函数与buy,sell混用。。将a_freemargin换成图表函数或是其它的变量再试一下吧。

使用道具 举报

Rank: 2

精华
0
UID
257848
积分
114
帖子
49
主题
19
阅读权限
30
注册时间
2017-10-17
最后登录
2022-2-15
发表于 2018-1-10 14:58:15 |显示全部楼层
小米 发表于 2018-1-10 14:47
无论什么线,信号总得有吧?
不要将a_xxx函数与buy,sell混用。。将a_freemargin换成图表函数或是其它的变 ...

谢谢

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-3-28 16:26

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部