期货全自动交易系统标准版编程指南(1)

Discussion in '强者博弈证券期货自动交易系统' started by yzwyq, Aug 9, 2006.

  1. 期货全自动交易系统标准版编程指南

    本指南将在一个自动交易画面上绘制一个简单文字对象开始,建立一个简单的全自动交易系统框架,在其中我们将简单讲述本程序语言的语法.

    正如大多数程序一样,大多数用户能用到的功能占程序全部功能30%就算很不错了,所以在下面的指南中,只讲述用户可能用到的功能或函数.
     
  2. >

    第一步:画面准备

    在标准版中,点"系统菜单",进入系统菜单画面,点"自动交易",进入自动交易画面

    如下图
     
  3. >

    原图
     
  4. >

    用"编辑-->特性编辑",改变文字和文字字体大小,并用"编辑-->图符牵引"改变文字对象的顶点位置,使文字对象大小和位置确当一些,最后用"编辑-->保存"保存该画面文件

    如下图:
     
  5. >

    第二步,建立问讯式按钮程序框架

    在画面空白处点出鼠标右键下拉菜单,进入"编辑-->特性编辑",推出特性编辑对话框,点"语言编辑"按钮,进入程序在线编辑调试对话框.

    看图
     
  6. >

    自动执行框架程序(已查错)

    Code:
    dobj.textcolor=0xffffff;//对象前景颜色
    dobj.execstep=1000;//程序执行速度参数
    var m_path=GetExecPath();//安装文件路径
    var m_target_name.strVal=ThisDocName;//当前画面文件名
    var m_start_flug=0;//自动交易启动标记
    var m_mpu_change_flug=0;//画面动态保存标记
    //
    var m_tab_str=appstr_tab();//制表符
    var m_return_str=appstr_enter();//回车换行
    //
    var m_pz_name="cu0610";//交易品种名称
    var m_pz_no=-1;//交易品种序号
    var m_str0000=m_pz_name;
    //查交易品种序号
    m_str0000=MakeLowerStr(m_str0000);//字串变为小写
    m_str0000=TrimLeftStr(m_str0000);//字串左边去空
    m_str0000=TrimRightStr(m_str0000);//字串右边去空
    for(var kk=0;kk<24;kk++)
    {
    	if(m_str0000==GetPzName(kk))
    	{
    		m_pz_no=kk;
    		break;
    	}
    }
    //交易品种序号为-1,表示无该品种
    //系统变量定义区
    
    //系统变量定义区
    
    //建立系统循环
    while(TRUE)
    {
    	var m_return=Wait(0x80|0x10|0x20|0x40,100,0);//等待各种希望捕捉的事件
    	//事件处理
    	if((m_return&0x10)==0x10)
    	{
    		//有鼠标双击事件
    		if(m_start_flug==1)
    		{
    			SetAskItem="询问:";
    			SetAskText="自动交易过程可能未能完成,如关请仔细检查,
    真的关闭自动交易?";
    			if(QueryMessage==1)
    			{
    				m_start_flug=0;//置启动标记
    				dobj.text="沪铜自动交易系统";
    				dobj.textcolor=0xffffff;
    			}
    		}
    		else
    		{
    			SetAskItem="询问:";
    			SetAskText="真的打开自动交易?";
    			if(QueryMessage==1)
    			{
    				m_start_flug=1;//置启动标记
    				dobj.text="沪铜自动交易系统启动";
    				dobj.textcolor=0x2099e0;//启动后改变文字颜色
    				SetAutoExecFlug=1;//置自动交易标记,当用户关闭该画面时将出现提示对话框
    			}
    		}
    	}
    	if((m_return&0x20)==0x20)
    	{
    		//有鼠标移入事件
    		if(m_start_flug==0)
    			dobj.textcolor=0x2099e0;
    	}
    	if((m_return&0x40)==0x40)
    	{
    		//有鼠标移出事件
    		if(m_start_flug==0)
    			dobj.textcolor=0xffffff;
    	}
    	if((m_return&0x80)==0x80)
    	{
    		//有其他对象发来的消息,则处理
    	}
    	if(m_start_flug==1)
    	{
    		if(m_pz_no<0) m_start_flug=0;//无该品种则清启动标记
    		//自动交易已经启动
    		//这里编制策略程序
    		
    		//这里编制策略程序
    	}
    	//程序有没有被动态修改,有则保存
    	if(m_mpu_change_flug==1)
    	{
    		SaveDocToFile=1;//保存当前画面
    		m_mpu_change_flug=0;
    	}		
    }
     
  7. >

    上面这段程序执行的功能:

    a.鼠标双击,推出提示"启动询问"对话框,确认后置启动标记,并改文字对象的内容和颜色
    b.启动执行后鼠标双击,推出提示"关闭询问"对话框,确认后关闭自动执行.
    c.自动交易策略编制在程序的位置标出,可在相应位置编程.

    大家可以试试这个文字对象,灵不灵?

    *****查看这段程序执行的情况:

    a.先按"编辑-->取消选择",然后再按"编辑-->正常显示",最后"编辑-->保存"保存该画面
    b.画面正常显示后,按鼠标右键下拉菜单"选项-->script调试",即可查看画面上任何对象程序执行情况
     
  8. >

    在线查看,若想程序在某行停下并推script调试对话框,只要在该位置插入

    startdebug=1;即可

    script调试对话框: