求助:想实现两个功能

Discussion in 'AmiBroker' started by Stanwell, Jan 2, 2012.

  1. sunny的帖子很红火,该我求助了:)

    我用tipstertrendline(blog.tipster.ca),半自动通过AB向Interactive Brokers下单。想实现如下两个功能:
    1. 下单键按下后,弹出一个子窗口,提示交易计划的最核心步骤,证实后再传到IB;目的是避免冲动交易;
    2. 自动截取下单时的图表,包括开仓和平仓。这是为了记录用。

    我和作者Brian交流过这些想法,他很同意,不过两个月过去了,没动静。所以在这里求助,看看能否得以解决。因为版权问题,我不能把tipstertrendline全部代码放上,不过其中button的功能是公开的,可以分享。
     
  2. 提供一点点思路吧 :)

    #1,不知道是否理解对了你的问题。我觉得这个不应该通过编程来提醒。只要养成一个习惯即可,比如最简单的方法,写个醒目的checklist放在桌上,把一些关键要素列在那里,比如止损,出场目标,头寸计算,必须遵守的原则....,下单之前逐个对一遍。其实这么操作一阵子之后,不用看那个列表你也养成习惯了。如果一定要但弹出窗口的话,就用PopupWindow()。

    #2,amibroker似乎没有内部函数可以实现,但是AFL里面可以执行VBscript,所以理论上可以使用VBscript做截屏。帮你找了一个链接(但是我没有亲自实验过):
    Print Screen in VBScript
    http://www.visualbasicscript.com/Print-Screen-in-VBScript-m53752.aspx
    AFL Scripting Host
    http://www.amibroker.com/guide/a_script.html
     
  3. Stanwell兄想要怎么个自动法呢?

    单纯截屏,自动保存到某个时刻的文件名里面,AutoIt3很方便。
    几行语句。

    要从Script里面触发这个截屏事件,可以用AFL里面的ShellExecute。
    http://www.amibroker.com/guide/afl/shellexecute.html
     
  4. 呵呵,谢谢二位,一下子有思路了。

    to cdf,
    我的打算是当点击下单的button时,把order传到IB后就自动截图,按日期和symbol以及order类型形成文件名存盘。当平仓的指令发出后,再截图存盘一次。这样就有了完整的记录,为以后复盘用。

    要好好研究一下,实现后贴上来共享。
     
  5. 學習學習
     
  6. 自動產生 LOG 檔記錄每筆交易, 給你參考。 需要的話自己修改,不要問我如何做。

    //-------------------------------------- Trade log file -------------------------------
    if( tradelog){
    filename= "d:\\twstradelog\\"+"Tradelog_"+ticker;
    fh = fopen( filename+".txt","a");
    if(fh) {
    Value= LastValue(Oqty*C) ;
    Oldvalue= StaticVarGet( "oldvalue"+varid);
    type="";
    if (trade_log_state=="*BUY") {
    StaticVarSet( "oldvalue"+varid,Value);
    type="-Buy" ;
    }
    else if (trade_log_state=="*SELL") {
    StaticVarSet( "oldvalue"+varid,Null) ;
    type="Sell" ;
    }
    profit= Nz(Value-Oldvalue) ;
    text1 = ""+Now()+" , "+ type+" , "+ "OrderID:"+" , "+orderid +" , "+"Params:"+Params +" , "+ "Qty:"+" , "+Oqty+ " $ "+
    NumToStr(VALUE/OQTY,1.2) + " , "+ "Value: "+ NumToStr(Value,1.2) +" , " + "Profit: "+" , "+ NumToStr(profit,1.2);
    fputs(text1, fh);
    fputs( "\n", fh );
    fclose(fh);
    }
    }
     
  7. 正是所需之物:),非常感谢...