设为首页收藏本站

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

为了计算当天的结算单 [复制链接]

Rank: 5Rank: 5

精华
0
UID
15934
积分
681
帖子
188
主题
70
阅读权限
60
注册时间
2010-9-9
最后登录
2021-9-1
跳转到指定楼层
1#
发表于 2013-4-26 14:10:59 |只看该作者 |倒序浏览
Vars
Numeric nCount0;
Numeric i0;
Numeric nEntryFlag0;
Numeric nbuyFlag0;
Numeric nbuyexitlot0;

Numeric mycapital0;

Numeric yingkuiprice;
Numeric todaycapitalnun;
Begin
If(BarStatus==2)
{
    nCount0 = Data0.A_GetOrderCount();
    If(nCount0>=1)
        {
          For i0 = 0 To nCount0
      {
        nEntryFlag0 = A_OrderEntryOrExit(i0);
                nbuyFlag0 = A_OrderBuyOrSell(i0);
        If(nEntryFlag0 == Enum_Exit() && nbuyFlag0 == Enum_Buy)
        {
            nbuyexitlot0 = A_OrderFilledLot;
                        if(Data0.A_BuyPosition>Data0.A_SellPosition) mycapital0=(Data0.Q_PreSettlePrice-Data0.A_OrderFilledPrice)*Data0.ContractUnit*nbuyexitlot0+(Data0.Q_AvgPrice-Data0.Q_PreSettlePrice)*Data0.ContractUnit*(Data0.A_BuyPosition-Data0.A_SellPosition-nbuyexitlot0);
            If(Data0.A_SellPosition>=Data0.A_BuyPosition) mycapital0=(Data0.Q_PreSettlePrice-Data0.A_OrderFilledPrice)*Data0.ContractUnit*nbuyexitlot0+(Data0.Q_PreSettlePrice-Data0.Q_AvgPrice)*Data0.ContractUnit*(Data0.A_SellPosition-Data0.A_BuyPosition-nbuyexitlot0);
        }Else If(nEntryFlag0 == Enum_Exit() && nbuyFlag0 == Enum_sell)
        {
            nbuyexitlot0 = A_OrderFilledLot;
                        if(Data0.A_BuyPosition>Data0.A_SellPosition) mycapital0=(Data0.A_OrderFilledPrice-Data0.Q_PreSettlePrice)*Data0.ContractUnit*nbuyexitlot0+(Data0.Q_AvgPrice-Data0.Q_PreSettlePrice)*Data0.ContractUnit*(Data0.A_BuyPosition-Data0.A_SellPosition-nbuyexitlot0);
            If(Data0.A_SellPosition>=Data0.A_BuyPosition) mycapital0=(Data0.A_OrderFilledPrice-Data0.Q_PreSettlePrice)*Data0.ContractUnit*nbuyexitlot0+(Data0.Q_PreSettlePrice-Data0.Q_AvgPrice)*Data0.ContractUnit*(Data0.A_SellPosition-Data0.A_BuyPosition-nbuyexitlot0);
        }
          }
       
          If(Data0.A_TodayBuyPosition>0 Or Data0. A_TodaySellPosition>0)
          {
                if(Data0.A_BuyPosition>Data0.A_SellPosition) mycapital0=(Data0.Q_AvgPrice-Data0.A_OrderFilledPrice)*Data0.ContractUnit*Data0.A_todayBuyPosition+(Data0.Q_AvgPrice-Data0.Q_PreSettlePrice)*Data0.ContractUnit*(Data0.A_BuyPosition-Data0.A_SellPosition-Data0.A_todayBuyPosition);
                If(Data0.A_SellPosition>Data0.A_BuyPosition) mycapital0=(Data0.A_OrderFilledPrice-Data0.Q_AvgPrice)*Data0.ContractUnit*Data0.A_todaySellPosition+(Data0.Q_PreSettlePrice-Data0.Q_AvgPrice)*Data0.ContractUnit*(Data0.A_SellPosition-Data0.A_BuyPosition-Data0.A_todaySellPosition);
          }
        }Else If(Data0.A_BuyPosition>0 Or Data0.A_SellPosition>0)
        {
                if(Data0.A_BuyPosition>Data0.A_SellPosition) mycapital0=(Data0.Q_AvgPrice-Data0.Q_PreSettlePrice)*Data0.ContractUnit*(Data0.A_BuyPosition-Data0.A_SellPosition);
                If(Data0.A_SellPosition>Data0.A_BuyPosition) mycapital0=(Data0.Q_PreSettlePrice-Data0.Q_AvgPrice)*Data0.ContractUnit*(Data0.A_SellPosition-Data0.A_BuyPosition);
        }
   

       
    yingkuiprice=mycapital0;
    todaycapitalnun=A_PreviousEquity+A_TodayDeposit-A_TodayDrawing+yingkuiprice;
    FileDelete("E:\\兴业日结单核对文档.txt");
    FileAppend("E:\\兴业日结单核对文档.txt", "商品名称"+" "+"当日盈亏"+" "+"今开仓价"+" "+"今天结算价"+" "+"昨天结算价"+" "+"合约单位"+" "+"多仓"+" "+"空仓"+" "+"昨日结存"+" "+"当日入金"+" "+"当日出金"+" "+"当日盈亏"+" "+"当日结存"+" "+"总计");
    FileAppend("E:\\兴业日结单核对文档.txt", Data0.SymbolName+" "+Text(mycapital0)+" "+Text(Data0.A_OrderFilledPrice)+" "+Text(Data0.Q_AvgPrice)+" "+Text(Data0.Q_PreSettlePrice)+" "+Text(Data0.ContractUnit)+" "+Text(Data0.A_Buyposition)+" "+Text(Data0.A_sellposition)+" "+Text(A_PreviousEquity)+" "+Text(A_TodayDeposit)+" "+Text(A_TodayDrawing)+" "+Text(yingkuiprice)+" "+Text(todaycapitalnun));
}

End

为了计算当天的结算单
为何编译能通过,但不能输出文档
请管理员或高手帮忙修改一下!谢谢

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
2#
发表于 2013-4-26 15:57:54 |只看该作者
我复制公式在自己的机器上运行,就一直是无响应。貌似是一个死循环跳不出来。

使用道具 举报

高级操盘手

你不理财,财不理你

Rank: 10Rank: 10Rank: 10

精华
0
UID
116980
积分
37674
帖子
416
主题
12
阅读权限
200
注册时间
2013-3-17
最后登录
2021-5-12
3#
发表于 2013-4-26 16:03:32 |只看该作者
应该是有逻辑错误

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
15934
积分
681
帖子
188
主题
70
阅读权限
60
注册时间
2010-9-9
最后登录
2021-9-1
4#
发表于 2013-4-27 06:22:12 |只看该作者
nCount0 = Data0.A_GetOrderCount();
    If(nCount0>=1)
        {
          For i0 = 0 To nCount0
      {
        nEntryFlag0 = A_OrderEntryOrExit(i0);
                nbuyFlag0 = A_OrderBuyOrSell(i0);
        If(nEntryFlag0 == Enum_Exit() && nbuyFlag0 == Enum_Buy)
        {
            nbuyexitlot0 = A_OrderFilledLot;
错误应该在这些语句,就是不知这样修改?请大家一起想想办法,如果成功,以后就不用每天去花大量时间核对结算单了。

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
15934
积分
681
帖子
188
主题
70
阅读权限
60
注册时间
2010-9-9
最后登录
2021-9-1
5#
发表于 2013-4-27 06:28:23 |只看该作者
if(Data0.A_BuyPosition>Data0.A_SellPosition) mycapital0=(Data0.A_OrderFilledPrice-Data0.Q_PreSettlePrice)*Data0.ContractUnit*nbuyexitlot0+(Data0.Q_AvgPrice-Data0.Q_PreSettlePrice)*Data0.ContractUnit*(Data0.A_BuyPosition-Data0.A_SellPosition-nbuyexitlot0);
            If(Data0.A_SellPosition>=Data0.A_BuyPosition) mycapital0=(Data0.A_OrderFilledPrice-Data0.Q_PreSettlePrice)*Data0.ContractUnit*nbuyexitlot0+(Data0.Q_PreSettlePrice-Data0.Q_AvgPrice)*Data0.ContractUnit*(Data0.A_SellPosition-Data0.A_BuyPosition-nbuyexitlot0);
        }
          }
        
          If(Data0.A_TodayBuyPosition>0 Or Data0. A_TodaySellPosition>0)
          {
                if(Data0.A_BuyPosition>Data0.A_SellPosition) mycapital0=(Data0.Q_AvgPrice-Data0.A_OrderFilledPrice)*Data0.ContractUnit*Data0.A_todayBuyPosition+(Data0.Q_AvgPrice-Data0.Q_PreSettlePrice)*Data0.ContractUnit*(Data0.A_BuyPosition-Data0.A_SellPosition-Data0.A_todayBuyPosition);
                If(Data0.A_SellPosition>Data0.A_BuyPosition) mycapital0=(Data0.A_OrderFilledPrice-Data0.Q_AvgPrice)*Data0.ContractUnit*Data0.A_todaySellPosition+(Data0.Q_PreSettlePrice-Data0.Q_AvgPrice)*Data0.ContractUnit*(Data0.A_SellPosition-Data0.A_BuyPosition-Data0.A_todaySellPosition);
          }
        }Else If(Data0.A_BuyPosition>0 Or Data0.A_SellPosition>0)
        {
                if(Data0.A_BuyPosition>Data0.A_SellPosition) mycapital0=(Data0.Q_AvgPrice-Data0.Q_PreSettlePrice)*Data0.ContractUnit*(Data0.A_BuyPosition-Data0.A_SellPosition);
                If(Data0.A_SellPosition>Data0.A_BuyPosition) mycapital0=(Data0.Q_PreSettlePrice-Data0.Q_AvgPrice)*Data0.ContractUnit*(Data0.A_SellPosition-Data0.A_BuyPosition);
        }

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
15934
积分
681
帖子
188
主题
70
阅读权限
60
注册时间
2010-9-9
最后登录
2021-9-1
6#
发表于 2013-4-27 06:32:54 |只看该作者
小米老师:如果当天没有平仓,上面代码可以正确取到当天的记录。如果有关于当天买平仓和卖平仓的函数就好了,就可以不用编写关于平仓的代码了。不知能否增加该函数?

使用道具 举报

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

bottom

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

GMT+8, 2024-4-29 01:48

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部