亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? eclientsocket.java

?? 網上期貨交易的外掛原碼,可實現自動交易功能,自動添加模塊
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
/* * EClientSocket.java * */package com.ib.client;import java.io.*;import java.net.*;public class EClientSocket {    // Client version history    //    // 	6 = Added parentId to orderStatus    // 	7 = The new execDetails event returned for an order filled status and reqExecDetails    //     Also market depth is available.    // 	8 = Added lastFillPrice to orderStatus() event and permId to execution details    //  9 = Added 'averageCost', 'unrealizedPNL', and 'unrealizedPNL' to updatePortfolio event    // 10 = Added 'serverId' to the 'open order' & 'order status' events.    //      We send back all the API open orders upon connection.    //      Added new methods reqAllOpenOrders, reqAutoOpenOrders()    //      Added FA support - reqExecution has filter.    //                       - reqAccountUpdates takes acct code.    // 11 = Added permId to openOrder event.    // 12 = requsting open order attributes ignoreRth, hidden, and discretionary    // 13 = added goodAfterTime    // 14 = always send size on bid/ask/last tick    // 15 = send allocation description string on openOrder    // 16 = can receive account name in account and portfolio updates, and fa params in openOrder    // 17 = can receive liquidation field in exec reports, and notAutoAvailable field in mkt data    // 18 = can receive good till date field in open order messages, and request intraday backfill    // 19 = can receive rthOnly flag in ORDER_STATUS    // 20 = expects TWS time string on connection after server version >= 20.    // 21 = can receive bond contract details.    // 22 = can receive price magnifier in version 2 contract details message    // 23 = support for scanner    // 24 = can receive volatility order parameters in open order messages    // 25 = can receive HMDS query start and end times    // 26 = can receive option vols in option market data messages    // 27 = can receive delta neutral order type and delta neutral aux price in place order version 20: API 8.85    // 28 = can receive option model computation ticks: API 8.9    // 29 = can receive trail stop limit price in open order and can place them: API 8.91    // 30 = can receive extended bond contract def, new ticks, and trade count in bars    public static final int CLIENT_VERSION = 30;    private static final int SERVER_VERSION = 1;    private static final byte[] EOL = {0};    private static final String BAG_SEC_TYPE = "BAG";    // FA msg data types    public static final int GROUPS = 1;    public static final int PROFILES = 2;    public static final int ALIASES = 3;    public static String faMsgTypeName(int faDataType) {        switch (faDataType) {            case GROUPS:                return "GROUPS";            case PROFILES:                return "PROFILES";            case ALIASES:                return "ALIASES";        }        return null;    }    // outgoing msg id's    private static final int REQ_MKT_DATA = 1;    private static final int CANCEL_MKT_DATA = 2;    private static final int PLACE_ORDER = 3;    private static final int CANCEL_ORDER = 4;    private static final int REQ_OPEN_ORDERS = 5;    private static final int REQ_ACCOUNT_DATA = 6;    private static final int REQ_EXECUTIONS = 7;    private static final int REQ_IDS = 8;    private static final int REQ_CONTRACT_DATA = 9;    private static final int REQ_MKT_DEPTH = 10;    private static final int CANCEL_MKT_DEPTH = 11;    private static final int REQ_NEWS_BULLETINS = 12;    private static final int CANCEL_NEWS_BULLETINS = 13;    private static final int SET_SERVER_LOGLEVEL = 14;    private static final int REQ_AUTO_OPEN_ORDERS = 15;    private static final int REQ_ALL_OPEN_ORDERS = 16;    private static final int REQ_MANAGED_ACCTS = 17;    private static final int REQ_FA = 18;    private static final int REPLACE_FA = 19;    private static final int REQ_HISTORICAL_DATA = 20;    private static final int EXERCISE_OPTIONS = 21;    private static final int REQ_SCANNER_SUBSCRIPTION = 22;    private static final int CANCEL_SCANNER_SUBSCRIPTION = 23;    private static final int REQ_SCANNER_PARAMETERS = 24;    private static final int CANCEL_HISTORICAL_DATA = 25;    private AnyWrapper m_anyWrapper; // msg handler    private Socket m_socket; // the socket    private DataOutputStream m_dos; // the socket output stream    private boolean m_connected; // true if we are connected    private EReader m_reader; // thread which reads msgs from socket    private int m_serverVersion = 1;    private String m_TwsTime;    public int serverVersion() {        return m_serverVersion;    }    public String TwsConnectionTime() {        return m_TwsTime;    }    public AnyWrapper wrapper() {        return m_anyWrapper;    }    public EReader reader() {        return m_reader;    }    public EClientSocket(AnyWrapper anyWrapper) {        m_anyWrapper = anyWrapper;    }    public boolean isConnected() {        return m_connected;    }    public synchronized void eConnect(String host, int port, int clientId) {        // already connected?        if (m_connected) {            m_anyWrapper.error(EClientErrors.NO_VALID_ID, EClientErrors.ALREADY_CONNECTED.code(),                               EClientErrors.ALREADY_CONNECTED.msg());            return;        }        try {            // connect            if (isNull(host)) {                host = "127.0.0.1";            }            m_socket = new Socket(host, port);            // create io streams            DataInputStream dis = new DataInputStream(m_socket.getInputStream());            m_dos = new DataOutputStream(m_socket.getOutputStream());            // set client version            send(CLIENT_VERSION);            // start reader thread            m_reader = createReader(this, dis);            // check server version            m_serverVersion = m_reader.readInt();            System.out.println("Server Version:" + m_serverVersion);            if (m_serverVersion >= 20) {                m_TwsTime = m_reader.readStr();                System.out.println("TWS Time at connection:" + m_TwsTime);            }            if (m_serverVersion < SERVER_VERSION) {                m_anyWrapper.error(EClientErrors.NO_VALID_ID, EClientErrors.UPDATE_TWS.code(),                                   EClientErrors.UPDATE_TWS.msg());                return;            }            // Send the client id            if (m_serverVersion >= 3) {                send(clientId);            }            m_reader.start();            // set connected flag            m_connected = true;        } catch (Exception e) {            m_anyWrapper.error(EClientErrors.NO_VALID_ID, EClientErrors.CONNECT_FAIL.code(),                               EClientErrors.CONNECT_FAIL.msg());            m_reader = null;        }    }    public synchronized void eDisconnect() {        // not connected?        if (!m_connected) {            return;        }        try {            // stop reader thread            if (m_reader != null) {                m_reader.interrupt();            }            // close socket            if (m_socket != null) {                m_socket.close();            }        } catch (Exception e) {        }        m_connected = false;    }    public synchronized void cancelScannerSubscription(int tickerId) {        // not connected?        if (!m_connected) {            error(EClientErrors.NO_VALID_ID, EClientErrors.NOT_CONNECTED, "");            return;        }        if (m_serverVersion < 24) {            error(EClientErrors.NO_VALID_ID, EClientErrors.UPDATE_TWS,                  "  It does not support API scanner subscription.");            return;        }        final int VERSION = 1;        // send cancel mkt data msg        try {            send(CANCEL_SCANNER_SUBSCRIPTION);            send(VERSION);            send(tickerId);        } catch (Exception e) {            error(tickerId, EClientErrors.FAIL_SEND_CANSCANNER, "" + e);            close();        }    }    public synchronized void reqScannerParameters() {        // not connected?        if (!m_connected) {            error(EClientErrors.NO_VALID_ID, EClientErrors.NOT_CONNECTED, "");            return;        }        if (m_serverVersion < 24) {            error(EClientErrors.NO_VALID_ID, EClientErrors.UPDATE_TWS,                  "  It does not support API scanner subscription.");            return;        }        final int VERSION = 1;        try {            send(REQ_SCANNER_PARAMETERS);            send(VERSION);        } catch (Exception e) {            error(EClientErrors.NO_VALID_ID, EClientErrors.FAIL_SEND_REQSCANNERPARAMETERS, "" + e);            close();        }    }    public synchronized void reqScannerSubscription(int tickerId, ScannerSubscription subscription) {        // not connected?        if (!m_connected) {            error(EClientErrors.NO_VALID_ID, EClientErrors.NOT_CONNECTED, "");            return;        }        if (m_serverVersion < 24) {            error(EClientErrors.NO_VALID_ID, EClientErrors.UPDATE_TWS,                  "  It does not support API scanner subscription.");            return;        }        final int VERSION = 3;        try {            send(REQ_SCANNER_SUBSCRIPTION);            send(VERSION);            send(tickerId);            sendMax(subscription.numberOfRows());            send(subscription.instrument());            send(subscription.locationCode());            send(subscription.scanCode());            sendMax(subscription.abovePrice());            sendMax(subscription.belowPrice());            sendMax(subscription.aboveVolume());            sendMax(subscription.marketCapAbove());            sendMax(subscription.marketCapBelow());            send(subscription.moodyRatingAbove());            send(subscription.moodyRatingBelow());            send(subscription.spRatingAbove());            send(subscription.spRatingBelow());            send(subscription.maturityDateAbove());            send(subscription.maturityDateBelow());            sendMax(subscription.couponRateAbove());            sendMax(subscription.couponRateBelow());            send(subscription.excludeConvertible());            if (m_serverVersion >= 25) {                send(subscription.averageOptionVolumeAbove());                send(subscription.scannerSettingPairs());            }            if (m_serverVersion >= 27) {                send(subscription.stockTypeFilter());            }        } catch (Exception e) {            error(tickerId, EClientErrors.FAIL_SEND_REQSCANNER, "" + e);            close();        }    }    public synchronized void reqMktData(int tickerId, Contract contract, String genericTickList) {        // not connected?        if (!m_connected) {            error(EClientErrors.NO_VALID_ID, EClientErrors.NOT_CONNECTED, "");            return;        }        final int VERSION = 6;        try {            // send req mkt data msg            send(REQ_MKT_DATA);            send(VERSION);            send(tickerId);            send(contract.m_symbol);            send(contract.m_secType);            send(contract.m_expiry);            send(contract.m_strike);            send(contract.m_right);            if (m_serverVersion >= 15) {                send(contract.m_multiplier);            }            send(contract.m_exchange);            if (m_serverVersion >= 14) {                send(contract.m_primaryExch);            }            send(contract.m_currency);            if (m_serverVersion >= 2) {                send(contract.m_localSymbol);            }            if (m_serverVersion >= 8 && BAG_SEC_TYPE.equalsIgnoreCase(contract.m_secType)) {                if (contract.m_comboLegs == null) {                    send(0);                } else {                    send(contract.m_comboLegs.size());                    ComboLeg comboLeg;                    for (int i = 0; i < contract.m_comboLegs.size(); i++) {                        comboLeg = (ComboLeg) contract.m_comboLegs.get(i);                        send(comboLeg.m_conId);                        send(comboLeg.m_ratio);                        send(comboLeg.m_action);                        send(comboLeg.m_exchange);                    }                }            }            if (m_serverVersion >= 31) {                send(genericTickList);            }        } catch (Exception e) {            error(tickerId, EClientErrors.FAIL_SEND_REQMKT, "" + e);            close();        }    }    public synchronized void cancelHistoricalData(int tickerId) {        // not connected?        if (!m_connected) {            error(EClientErrors.NO_VALID_ID, EClientErrors.NOT_CONNECTED, "");            return;        }        if (m_serverVersion < 24) {            error(EClientErrors.NO_VALID_ID, EClientErrors.UPDATE_TWS,                  "  It does not support historical data query cancellation.");            return;        }        final int VERSION = 1;        // send cancel mkt data msg        try {            send(CANCEL_HISTORICAL_DATA);            send(VERSION);            send(tickerId);        } catch (Exception e) {            error(tickerId, EClientErrors.FAIL_SEND_CANSCANNER, "" + e);            close();        }    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产网站| 91精品国产综合久久小美女| 日韩精品中文字幕在线不卡尤物| 久久久噜噜噜久噜久久综合| 亚洲黄色小说网站| 国产福利一区在线| 欧美伦理电影网| 国产精品福利影院| 韩国一区二区三区| 欧美精品乱人伦久久久久久| 亚洲精品亚洲人成人网在线播放| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲国产日韩精品| 成人高清免费观看| 精品国产一区久久| 亚洲va韩国va欧美va| 91国偷自产一区二区三区观看| 久久久久久久久久美女| 免费人成网站在线观看欧美高清| 欧美日韩一区成人| 亚洲午夜av在线| 在线精品视频小说1| 亚洲欧美日韩在线不卡| 成人av资源网站| 欧美激情资源网| 高清在线不卡av| 久久女同精品一区二区| 在线日韩国产精品| 中文字幕一区在线观看视频| 国产不卡视频在线观看| 久久久国产精品午夜一区ai换脸| 另类欧美日韩国产在线| 欧美日韩一区二区三区不卡 | 在线免费亚洲电影| 久久不见久久见免费视频7 | 久久99国产精品尤物| 亚洲精品成人a在线观看| 亚洲人成网站色在线观看| 成人动漫一区二区三区| 日本美女视频一区二区| 成人小视频免费在线观看| 日本成人在线不卡视频| 国产精品伦理在线| 欧美精品色综合| 99久久免费精品| 精品一区二区三区免费观看| 日本欧美一区二区三区| 亚洲特黄一级片| 午夜欧美一区二区三区在线播放| 美美哒免费高清在线观看视频一区二区 | 日本一区二区三级电影在线观看| 国产亚洲一区二区三区在线观看| 中文字幕第一区综合| 一区二区免费在线播放| 国内精品久久久久影院薰衣草| 国产成人丝袜美腿| 精品成人免费观看| 国产精品大尺度| 秋霞电影网一区二区| 色噜噜久久综合| 欧美国产精品中文字幕| 国产一区二区三区香蕉| 6080yy午夜一二三区久久| 自拍偷拍欧美激情| 国产精品一区二区久久不卡| 欧美午夜精品一区二区三区| 中文字幕乱码久久午夜不卡| 一区二区三区四区乱视频| 美腿丝袜在线亚洲一区| 91福利精品第一导航| 自拍偷拍国产亚洲| jlzzjlzz国产精品久久| 亚洲摸摸操操av| 色综合久久88色综合天天免费| 国产日韩欧美在线一区| 国产盗摄一区二区| 中文字幕欧美日韩一区| 欧美日韩精品一区二区三区 | 日韩欧美的一区二区| 亚洲一二三四区| 欧美福利一区二区| 日本中文字幕一区| 久久久亚洲午夜电影| 丁香天五香天堂综合| 亚洲视频一区二区在线| 欧美三电影在线| 国产美女一区二区三区| 亚洲人成网站影音先锋播放| 精品一区二区三区免费观看| 91在线观看下载| 久久av中文字幕片| 五月婷婷久久综合| 欧美日韩在线直播| 亚洲电影一区二区三区| 欧美色视频在线观看| 欧美96一区二区免费视频| 欧美亚洲动漫制服丝袜| 成人动漫一区二区| 成人免费毛片片v| 成人黄动漫网站免费app| 国产成人免费在线观看| 亚洲精品免费一二三区| 欧美激情在线一区二区| 国产精品久久一级| 一区精品在线播放| 亚洲午夜久久久久久久久电影院| 亚洲综合一区二区三区| 亚洲三级在线播放| 亚洲精品久久嫩草网站秘色| 国产精品久久久久久户外露出| 日韩免费福利电影在线观看| 色综合天天综合网国产成人综合天| 国产高清视频一区| 国产高清不卡二三区| 久久福利资源站| 久久精品国产在热久久| 99久久99久久久精品齐齐| 欧美日韩精品一区二区在线播放| 欧美三级乱人伦电影| 色哟哟一区二区三区| 成人av网在线| 色婷婷亚洲综合| 欧日韩精品视频| 日韩午夜在线影院| 日韩视频免费观看高清完整版 | 午夜电影网一区| 国产高清不卡一区二区| 99久久精品免费看国产| 欧美日韩国产另类一区| 久久一区二区三区国产精品| 国产精品久久久久桃色tv| 一区二区三区四区精品在线视频| 毛片一区二区三区| 97久久超碰精品国产| 日韩欧美激情四射| 中文字幕在线不卡| 激情图片小说一区| 老司机精品视频导航| 国产一区二区h| 国产欧美久久久精品影院| 国产呦萝稀缺另类资源| 精品国产精品网麻豆系列| 天堂蜜桃91精品| 91电影在线观看| 久久久久久久一区| 日韩1区2区日韩1区2区| 97国产精品videossex| 国产精品久久三| 成熟亚洲日本毛茸茸凸凹| 欧美一区二区日韩一区二区| 亚洲男女一区二区三区| 成人黄色av电影| 亚洲人成人一区二区在线观看| 丁香婷婷综合网| 亚洲乱码国产乱码精品精的特点 | 久久免费国产精品| 国产一区二区三区四区五区入口 | 成人黄动漫网站免费app| 丝瓜av网站精品一区二区| wwwwww.欧美系列| 欧美色图激情小说| 风间由美性色一区二区三区| 亚洲不卡一区二区三区| 国产欧美视频在线观看| 欧美一区二区在线观看| 91视频免费观看| 懂色av一区二区三区免费观看 | 91精品国产综合久久久蜜臀粉嫩 | 久久一区二区三区国产精品| av在线播放成人| 久久激情五月婷婷| 亚洲欧洲美洲综合色网| 欧美日韩国产中文| 丁香婷婷深情五月亚洲| 日本最新不卡在线| 午夜精品久久久久久不卡8050| 欧美精品一区二区三区久久久| 在线观看91视频| 免费在线观看一区二区三区| 欧美日韩中文另类| 一区二区三国产精华液| 综合久久一区二区三区| 久久久久综合网| 亚洲一区二区三区精品在线| 中文字幕一区日韩精品欧美| 久久午夜色播影院免费高清| 亚洲人吸女人奶水| 国产综合久久久久影院| 欧美亚洲免费在线一区| 国产欧美日韩在线| 老司机精品视频线观看86| 高清视频一区二区| av欧美精品.com| 欧美精品乱码久久久久久按摩| 欧美tickling网站挠脚心| 欧美高清在线一区二区| 免费看黄色91| 国产精品18久久久久久vr| 成人av在线资源网| 色综合网站在线|