分析家公式网,提供股票公式,股票软件用户登录  |  用户 注册
下单组件挂价发出委托,3秒不成交的话撤单,以对价再发出委托 源码[文华财经公式]
  • 软件大小:0 Bytes
  • 推荐星级:
  • 更新时间:2013-03-16 02:12:33
  • 软件类别: 国产软件 / 文华公式
  • 软件语言:简体中文
  • 授权方式: 共享软件
  • 联系方式:暂无联系方式
  • 官方主页: Home Page
  • 点击大图:  【一键转帖到论坛】
  • 插件情况:
  • 运行环境:Win2000/WinXP/Win2003/WinVista
  • 相关Tags:文华财经公式  
  • (0)0%
    (0)0%

软件介绍

  • 下面这个下单组件,目的是实现“挂价发出委托,3秒不成交的话撤单,以对价再发出委托”,半年前我曾经发过到论坛,经过一个多星期的讨论和更新,最后文华员工的答复是软件存在BUG,没法实现~

    现在不知道能不能实现,上星期再次测试,结果是模型可以发出开、平仓信号,但是没有发出任何具体委托。

    因为,我这个下单组件,估计80%用文华实盘的人都会用到,到时候正常使用的话可以写到文华下单组件的示范里面供更多人使用~

    源码如下:

    VAR Price,M,N;
    VAR BKID,SKID,BPID,SPID,SPKID1,BPKID1,SPKID2,BPKID2;//定义BKID,SKID,BPID,SPID
    VAR LastWithDrawFinsh;
    VAR LastState;
    VAR KNALL;//目标总开仓数
    VOID MAIN() //
    {
    //KPN设为按照模型信号
     M=0;//发出信号时,0为挂价委托,1为对价委托,>=2为超价委托
     N=1;//再委托的委托价参数,0为挂价委托,1为对价委托,>=2为超价委托
     Price=Price(F_DealCode());//
     BKID=ReadGlobalStr("BKID");
     SKID=ReadGlobalStr("SKID");
     BPID=ReadGlobalStr("BPID");
     SPID=ReadGlobalStr("SPID");
     BPKID1=ReadGlobalStr("BPKID1");
     SPKID1=ReadGlobalStr("SPKID1");
     BPKID2=ReadGlobalStr("BPKID2");
     SPKID2=ReadGlobalStr("SPKID2");
     KNALL=ReadGlobal("KNALL");
     //下面是3秒没有成交,撤单。
     LastWithDrawFinsh=ReadGlobal("LASTWITHDRAW");
     IF(T_IsNoOrder()!=1 ) //有挂单的情况
     {
     //查询挂单然后进行撤单
      IF(CurrentTime()-LastOrderTime()==3 && LastWithDrawFinsh==1) //如果3秒有委托未成交,全撤,下次进入会重新下委托
      {
       IF(F_Sig()==BK) //如果取出的信号为BP
       {
        IF(T_IsNoOrder()==0)
        {
         MessageOut("BK撤单到了!");
         T_DeleteOrder(BKID);
         LastState=0;
        //
        }
       }
       IF(F_Sig()==SK) //如果取出的信号为SP
       {
        IF(T_IsNoOrder()==0)
        {
         MessageOut("SK撤单到了!");
         T_DeleteOrder(SKID);
         LastState=0;
        }
       }
       IF(F_Sig()==BP) //如果取出的信号为BP
       {
        IF(T_SellPosition(F_DealCode())>0&&T_IsNoOrder()==0)
        {
         MessageOut("BP撤单到了!");
         T_DeleteOrder(BPID);
         LastState=0;
        //
        }
       }
       IF(F_Sig()==SP) //如果取出的信号为SP
       {
        IF(T_BuyPosition(F_DealCode())>0&&T_IsNoOrder()==0)
        {
         MessageOut("SP撤单到了!");
         T_DeleteOrder(SPID);
         LastState=0;
        }
       }


       IF(F_Sig()==SPK) //如果取出的信号为SP
       {
        IF(T_IsNoOrder()==0)
        {
         MessageOut("SPK撤单到了!");
         T_DeleteOrder(SPKID1);
         T_DeleteOrder(SPKID2);
         LastState=0;
        }
       }
       IF(F_Sig()==BPK) //如果取出的信号为BP
       {
        IF(T_IsNoOrder()==0)
        {
         MessageOut("BPK撤单到了!");
         T_DeleteOrder(BPKID1);
         T_DeleteOrder(BPKID2);
         LastState=0;
        //
        }
       }

       LastWithDrawFinsh=0;
      }
     WriteGlobal("LASTWITHDRAW", LastWithDrawFinsh);
     RETURN;
     }
     LastWithDrawFinsh=1;
     IF(F_FreshSig()==1)//刷新现有的信号,有新信号
     {
      SEND();
     }
     ELSE IF(F_FreshSig()==0)//如果是处理过的信号
     {
      IF((T_OrderState(BKID)==2||T_OrderState(SKID)==2||T_OrderState(BPID)==2||T_OrderState(SPID)==2||T_OrderState(BPKID1)==2||T_OrderState(SPKID1)==2||T_OrderState(BPKID2)==2||T_OrderState(SPKID2)==2||T_OrderState(BKID)==3||T_OrderState(SKID)==3||T_OrderState(BPID)==3||T_OrderState(SPID)==3||T_OrderState(BPKID1)==3||T_OrderState(SPKID1)==3||T_OrderState(BPKID2)==3||T_OrderState(SPKID2)==3)&&LastState==0)//如果委托撤单
      {
       RESEND();
       LastState=1; 
      }
     }
     WriteGlobalStr("BKID",BKID);
     WriteGlobalStr("SKID",SKID);
     WriteGlobalStr("BPID",BPID);
     WriteGlobalStr("SPID",SPID);
     WriteGlobalStr("BPKID1",BPKID1);
     WriteGlobalStr("SPKID1",SPKID1);
     WriteGlobalStr("BPKID2",BPKID2);
     WriteGlobalStr("SPKID2",SPKID2);
     WriteGlobal("LASTSTATE", LastState);
     WriteGlobal("LASTWITHDRAW", LastWithDrawFinsh);
     WriteGlobal("KNALL",KNALL);

    }

    VOID SEND()
    {
    IF(F_Sig()==BPK && F_SigValid()==1) //如果取出的信号为BPK 且信号不是消失状态
     {
      IF(F_SellPosition()!=0)
      {
       MessageOut("信号BPK生效,平掉所有卖仓");
       BPKID1=T_ReduceSellOpiTo(F_DealCode(), Offers(F_DealCode(),"bid1")+MinPrice(F_DealCode())*M,0); //平掉所有空头持仓
      }
      IF(F_BuyPosition()>=0)//
      {
       MessageOut("信号BPK生效,开仓");
                      KNALL=F_SigVol()+F_BuyPosition();
       BPKID2=T_AddBuyOpiTo(F_DealCode(), Offers(F_DealCode(),"bid1")+MinPrice(F_DealCode())*M,F_SigVol()+F_BuyPosition()); //补充持仓
                     
      }
     }
    IF(F_Sig()==SPK && F_SigValid()==1) //如果取出的信号为SPK 且信号不是消失状态
     {
      IF(F_BuyPosition()!=0)
      {
       SPKID1=T_ReduceBuyOpiTo(F_DealCode(), Offers(F_DealCode(),"ask1")-MinPrice(F_DealCode())*M,0); //平掉所有多头持仓
      }
      IF(F_SellPosition()>=0) //如果买仓为0,不存在止赢止损问题,直接开仓
      {
          &n

软件评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论

说明

* 使用方法:点击上面蓝色块,打开新页面按照提示进行

* 本网站提供的各种股票软件,例如大智慧软件,通达信软件,同花顺软件,东方财富通等等,和各种股票公式指标,例如大智慧公式,通达信公式,同花顺公式,文华公式,博易大师公式,股票价格计算公式等等公式指标等,都来源网上公开来源收集

本网提供的公式文件说明:
* alg格式飞狐股票公式,可以用飞狐交易师或者交易师软件导入;
* fnc格式大智慧新一代公式指标,可以用大智慧股票软件使用,少部分可以用分析家股票软件引入使用;
* exp格式大智慧经典版股票公式,仅可以用大智慧经典版股票软件引入使用;
* tni和tnc格式通达信股票公式,仅可以用通达信新引入使用,例如可以用通达信股票软件引入使用;
* tne,tn6格式通达信公式,可以用通达信公式编辑器5.0版导入,推荐通达信金融终端版本;
* hxf格式同花顺股票公式,仅可以用同花顺股票软件引入使用。
以上的各种软件都可以在本网股票软件栏目找到!

* 关于股票公式时间限制,如果在引入大智慧公式,交易师公式或者飞狐公式的时候,发现公式名称栏是空白的,这时候调整电脑时间到1997年,又能出现公式名称,并且能正常显示,可能是公式使用期限已过。
* 关于还原公式源码如果你忘记了自己编写的大智慧公式,通达信公式,同花顺公式,操盘手公式,飞狐公式,博易大师公式,金字塔公式,文华公式和交易师公式等等公式的密码,本网可帮恢复源码,有.偿.服.务无意勿扰,点击在线咨询联系我。

* 关于股票公式源码编辑
本网提供的源码,一般都可以编辑成公式,如果不明白公式的编辑,在本页右侧教程录像可参考,或者找公式教程资料学习,请搜索:教程

* 如果您发现软件内容或者链接错误,请点击报告错误谢谢!
* 站内提供的所有软件包含源码均是由网上搜集,若侵犯了你的版权利益,请联系通知我们!

关于本站 | 网站帮助 | 广告合作 | 声明 | 友情连接 | 网站地图 |
分析家公式网声明:本站所有股票公式软件资料均网上公开收集,如侵权请联系删帖。站内所有广告,均与本站无关!
Copyright © 2003-2024 70822.Com. All Rights Reserved .
页面执行时间:25,437.50000 毫秒