设为首页收藏本站

 找回密码
 注册
查看: 3148|回复: 7
打印 上一主题 下一主题

如何把开仓bar的持仓价写入数据库并传递下去? [复制链接]

Rank: 5Rank: 5

精华
0
UID
15246
积分
704
帖子
167
主题
74
阅读权限
60
注册时间
2010-8-17
最后登录
2021-9-5
跳转到指定楼层
1#
发表于 2013-8-2 11:39:53 |只看该作者 |倒序浏览

If(condition&&GetGlobalVar(0)==0)
     {
      NewPrice=Q_AskPrice+ShiftUnit*MinMove*PriceScale;
      A_SendOrder(Enum_Buy,Enum_Entry,Lots,NewPrice);
          SetGlobalVar(0,1);
          SetGlobalVar(5,open);
     }
//--------------------------------------------------------------
if(A_TotalPosition!=0)
  {
     if (GetGlobalVar(5)==open)
       {
         SetTBProfileString(bdpKey,bdpKeylongcost,Text(A_BuyAvgPrice()));
                 mycost=Value(GetTBProfileString(bdpKey,bdpKeylongcost));
           }
           Else
           {
           mycost=mycost[1];
           }
         FileAppend("C:\\Formula.log","mycost = "+Text(mycost));
}
以这样的方式,在开仓bar能记录A_BuyAvgPrice()持仓价,但是新bar出现后,读数就变成无效值了。如何把开仓bar的持仓价写入数据库并在新bar出现后仍然能传递下去?

Rank: 7Rank: 7Rank: 7

精华
0
UID
101507
积分
3699
帖子
194
主题
25
阅读权限
80
注册时间
2012-3-1
最后登录
2016-6-4
2#
发表于 2013-8-2 12:18:51 |只看该作者
用函数直接返回开仓价格,还传递干什么

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
15246
积分
704
帖子
167
主题
74
阅读权限
60
注册时间
2010-8-17
最后登录
2021-9-5
3#
发表于 2013-8-2 13:51:17 |只看该作者
隔夜了,A_BuyAvgPrice()就不在是实际的开仓价格了

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
4#
发表于 2013-8-2 14:54:22 |只看该作者
本帖最后由 小米 于 2013-8-2 14:57 编辑
文韦 发表于 2013-8-2 13:51
隔夜了,A_BuyAvgPrice()就不在是实际的开仓价格了


同合约同方向,你只交易一笔吗?如果有加仓的操做,a_buyavgprice得到的仍是一个成交平均价,也不会是单次的成交价。

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
15246
积分
704
帖子
167
主题
74
阅读权限
60
注册时间
2010-8-17
最后登录
2021-9-5
5#
发表于 2013-8-2 14:59:47 |只看该作者
只一笔,无加仓,2至3天的周期

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
15246
积分
704
帖子
167
主题
74
阅读权限
60
注册时间
2010-8-17
最后登录
2021-9-5
6#
发表于 2013-8-5 09:02:43 |只看该作者
谁能帮忙解决这个问题么?即求隔夜前的实际开仓价格。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
7#
发表于 2013-8-5 14:45:47 |只看该作者
文韦 发表于 2013-8-5 09:02
谁能帮忙解决这个问题么?即求隔夜前的实际开仓价格。

试试这个思路。
在开仓时写入一个全局变量,赋值为0. 之后进行每tick计数加1。
当该全局变量计数达5时,再使用a_orderfilledprice(0)读取最近一次的开仓价格。(要确保5个tick内成交回报可到本地,否则可以加大tick计数量。)
并将此价格使用settbprofilestring(或是settbprofilestring2file)记录到数据文件中。
以备之后的调用。

使用道具 举报

Rank: 4

精华
0
UID
208790
积分
269
帖子
187
主题
35
阅读权限
50
注册时间
2015-5-12
最后登录
2015-9-9
8#
发表于 2015-6-28 01:23:13 |只看该作者
这是个好主意!

使用道具 举报

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

bottom

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

GMT+8, 2024-5-26 08:26

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部