kilroy 發表於 14-6-30 13:25

skyler 發表於 14-6-30 10:49 static/image/common/back.gif
k大您好
又來叨擾您了



按下 yes 後
之後 IB Controller 透過 IB TWS API 丟出去的單就不會再跳出警示視窗

會直接送單
這就是我們要的 XD

skyler 發表於 14-6-30 13:51

如果 TWS 重開
是不是遇到下單情況還會再問一次呢?

skyler 發表於 14-6-30 16:38

本帖最後由 skyler 於 14-6-30 16:43 編輯

kilroy 發表於 14-6-30 13:25 static/image/common/back.gif
按下 yes 後
之後 IB Controller 透過 IB TWS API 丟出去的單就不會再跳出警示視窗


如果 TWS 重開
是不是遇到下單情況還會再問一次呢?

-----
雖然IB的報價斷線
但我們是連eSignal
而且下單與IB的報價源沒關
所以應該不會影響我們下單到市場上對吧?
不知我的理解有沒錯

如果將IB TWS 上的報價資料刪除
是不是能避免這種斷線的訊息出現?




-----
在IB Controller 裡的 紅底黃色驚嘆號 ( Close all orders/positions )
點下去除了刪除掉委託單外
是不是連留倉中的單也會直接以市價平倉?

感謝大大的指導


kilroy 發表於 14-6-30 16:45

skyler 發表於 14-6-30 16:38 static/image/common/back.gif
如果 TWS 重開
是不是遇到下單情況還會再問一次呢?



當按下 yes 之後就不會再詢問了
因為在 IB TWS -> configuration -> API -> Precautions 裡

bypass Order Precautions for API Orders 會被打勾

---
用 eSignal 為報價遇到 IB TWS 的 market data farm 斷線 不影響下單

有訊號就會丟出去給 TWS

除非是伺服器斷了,才會影響

訂閱 eSignal 就是避免這個問題了

參考看看

skyler 發表於 14-6-30 16:51

kilroy 發表於 14-6-30 16:45 static/image/common/back.gif
當按下 yes 之後就不會再詢問了
因為在 IB TWS -> configuration -> API -> Precautions 裡



k 大再問一下
IB TWS
照你這麼說


這四個選項我是不是都要打勾才對呢?!

kilroy 發表於 14-6-30 17:03

skyler 發表於 14-6-30 16:51 static/image/common/back.gif
k 大再問一下
IB TWS
照你這麼說


打勾第一個就可以了

kilroy 發表於 14-6-30 17:55

skyler 發表於 14-6-30 16:38 static/image/common/back.gif
如果 TWS 重開
是不是遇到下單情況還會再問一次呢?



在IB Controller 裡的 紅底黃色驚嘆號 ( Close all orders/positions )
點下去除了刪除掉委託單外
是不是連留倉中的單也會直接以市價平倉?

感謝大大的指導

會取消所有"未成交"委託

已成交的部位會全部以市價單平倉

skyler 發表於 14-7-1 08:45

本帖最後由 skyler 於 14-7-1 09:30 編輯

k大您好
請問一下

已將 bypass Order Precautions for API Orders 打勾

但下單時我必須點選 transmit 才能真的送到市場上
這跟我目前在 paper account 測試是否有關

謝謝




kilroy 發表於 14-7-1 09:25

skyler 發表於 14-7-1 08:45 static/image/common/back.gif
k大您好
請問一下



跟 paper account 無關

跟 ibc.placeorder... 有關

if( BuyTrigger AND BuyOrderID == "" )
{
   ibc.CloseAllOpenPositions(ContractMonth);
   BuyOrderID = ibc.PlaceOrder(ContractMonth, "BUY", Shares, "MKT", 0, 0, "DAY", True);
   StaticVarSetText("BuyOrderID"+Name(),BuyOrderID,true);
}


不過上次看你的語法應該會直接送單才對


skyler 發表於 14-7-1 09:30

kilroy 發表於 14-7-1 09:25 static/image/common/back.gif
跟 paper account 無關

跟 ibc.placeorder... 有關



我剛看了一下自己的code
並回頭看了一下69樓 osdak 大寫的程式
與他發生的問題會一直下 sell 跟 buy
因為我也有發生

我大概知道問題在那了
想跟k 大您討論一下
如何改比較好

以下貼出我的程式碼
我將問題的點 MARK 起來
問題出在 ClearID 沒有set 值
因為平倉是用
ibc.CloseAllOpenPositions( ContractMonth );
來做因此並沒有像建立多單或空單的倉位
是用
BuyOrderID = ibc.PlaceOrder(ContractMonth, "BUY", Shares, "MKT", 0, 0, "DAY", True);

SellORderID = ibc.PlaceOrder(ContractMonth, "SELL", Shares, "MKT", 0, 0, "DAY", True);

由於沒有set ClearID 的值
因此
if ( ClearTrigger AND ClearID == "" )
這個判斷式會一直成立因而導致會一直送單
要解決可能要將
sell 跟 cover 各寫成一個ID
然後仿照做多做空一樣寫
不知我的想法對嗎?


_SECTION_BEGIN( "IB Controller" );
{
    ibc = GetTradingInterface( "IB" );

    BuyTrigger = LastValue( Buy );
    SellTrigger = LastValue( Short );
    Clear = lastvalue( sell or cover );
    ClearTrigger = LastValue( Clear );
    Reset = ParamTrigger( "Reset All", "RESET" );
    PrevTN = StaticVarGet( "TimeNumber" + Name() );
    TN = LastValue( TimeNum() );
    NewBar = TN != PrevTN;
    StaticVarSet( "TimeNumber" + Name(), TN );
    BuyOrderID = StaticVarGetText( "BuyOrderID" + Name() );
    SellOrderID = StaticVarGetText( "SellOrderID" + Name() );
    ClearID = StaticVarGet( "ClearID" + Name() );
    BuyPending = ibc.IsOrderPending( BuyOrderID );
    SellPending = ibc.IsOrderPending( SellOrderID );
    ClearPending = ibc.IsOrderPending( ClearID );
      
    Shares = 1;

    if ( NewBar )
    {
      if ( NOT BuyPending )
      {
            StaticVarSetText( "BuyOrderID" + Name(), "" );
      }

      if ( NOT SellPending )
      {
            StaticVarSetText( "SellOrderID" + Name(), "" );
      }

      if ( NOT ClearPending )
      {
            StaticVarSetText( "ClearID" + Name(), "" );
      }
    }

    if ( BuyTrigger AND BuyOrderID == "" )
    {
      ibc.CloseAllOpenPositions( ContractMonth );
      BuyOrderID = ibc.PlaceOrder(ContractMonth, "BUY", Shares, "MKT", 0, 0, "DAY", True);
               
      StaticVarSetText( "BuyOrderID" + Name(), BuyOrderID, true );
    }
    else if ( SellTrigger AND SellOrderID == "" )
    {
      ibc.CloseAllOpenPositions( ContractMonth );
      SellORderID = ibc.PlaceOrder(ContractMonth, "SELL", Shares, "MKT", 0, 0, "DAY", True);
               
      StaticVarSetText( "SellOrderID" + Name(), SellOrderID, true );
    }
    else if ( ClearTrigger AND ClearID == "" )
    {
      ibc.CloseAllOpenPositions( ContractMonth );
      
      StaticVarSetText( "ClearID" + Name(), ClearID );
    }
    else if ( Reset )
    {
      StaticVarSetText( "BuyOrderID" + Name(), "" );

      if ( BuyPending )
      {
                ibc.CancelOrder( BuyOrderID );
      }

      StaticVarSetText( "SellOrderID" + Name(), "" );

      if ( SellPending )
      {
                ibc.CancelOrder( SellOrderID );
      }
    }

    //LastTWSMsg = ibc.getLastError( 0 );
}


skyler 發表於 14-7-1 09:35

kilroy 發表於 14-7-1 09:25 static/image/common/back.gif
跟 paper account 無關

跟 ibc.placeorder... 有關


如您所言
上一樓是我的程式碼
我有將參數設成 true
搞不懂那裡有問題

問一下大大 IB TWS的版本是多少嗎?


我灌的是最新的 6/3號版本

kilroy 發表於 14-7-1 09:38

skyler 發表於 14-7-1 09:30 static/image/common/back.gif
我剛看了一下自己的code
並回頭看了一下69樓 osdak 大寫的程式
與他發生的問題會一直下 sell 跟 buy


這樣的話
把 sell 和 cover 個別寫一組

或是在 clear 加上一行

   StaticVarSetText("ClearID"+Name(),ClearID,true);

kilroy 發表於 14-7-1 09:46

skyler 發表於 14-7-1 09:35 static/image/common/back.gif
如您所言
上一樓是我的程式碼
我有將參數設成 true


如果語法沒有問題
那檢查 IB Controller -> file -> unlock 是否開啟

---
今年 5/1 起 IB TWS 一定要用新版 IB TWS,才可以使用 API




skyler 發表於 14-7-1 09:51

kilroy 發表於 14-7-1 09:38 static/image/common/back.gif
這樣的話
把 sell 和 cover 個別寫一組



可是即使在 Clear 上加這行
StaticVarSetText("ClearID"+Name(),ClearID,true);

ClearID 還是等於 ""
那在下面的判斷式不是依然成立
然後會進去執行嗎?



skyler 發表於 14-7-1 09:55

本帖最後由 skyler 於 14-7-1 10:10 編輯

kilroy 發表於 14-7-1 09:46 static/image/common/back.gif
如果語法沒有問題
那檢查 IB Controller -> file -> unlock 是否開啟


難怪我剛移除Jun 3 2014 的版本
改灌 May 5 2014
登入進去後 API 居然是闗閉
原來是要用新版本
這樣是不是三不五時就要去看一下是否有新版
不然API就不能用了?!

頁: 7 8 9 10 11 12 13 14 15 16 [17] 18 19 20 21 22 23 24 25 26
查看完整版本: [分享] 用AB踏入外期程式交易