Subversion Repositories Integrator Subversion

Rev

Rev 796 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 796 Rev 797
Line 16... Line 16...
16
    }
16
    }
17
17
18
    public void iniciar() {
18
    public void iniciar() {
19
19
20
        System.out.println("Conectando ao TWS...");
20
        System.out.println("Conectando ao TWS...");
21
        client.eConnect("127.0.0.1", 7496, 2); // 7496 = live, 7497 = paper
-
 
22
21
-
 
22
        // ➜ MESMOS PARAMETROS QUE DERAM isConnected = true
-
 
23
        client.eConnect("127.0.0.1", 7497, 2);
-
 
24
-
 
25
        // espera um pouco pra conexão estabilizar
-
 
26
        try { Thread.sleep(2000); } catch (Exception ignored) {}
-
 
27
-
 
28
        System.out.println("isConnected = " + client.isConnected());
23
        if (!client.isConnected()) {
29
        if (!client.isConnected()) {
24
            System.err.println("Falha ao conectar!");
-
 
-
 
30
            System.err.println("Ainda não conectado ao TWS. Saindo.");
25
            return;
31
            return;
26
        }      
-
 
-
 
32
        }
27
33
28
        // tipo de market data: 1 = realtime (se assinado), 3 = delayed
34
        // tipo de market data: 1 = realtime (se assinado), 3 = delayed
29
        client.reqMarketDataType(1);
35
        client.reqMarketDataType(1);
30
36
31
        // Cria o EReader que vai processar as mensagens da IBKR
-
 
-
 
37
        // Cria o EReader somente DEPOIS da conexão estar ok
32
        reader = new EReader(client, signal);
38
        reader = new EReader(client, signal);
33
        reader.start();
39
        reader.start();
34
40
35
        // Thread que fica processando as mensagens
41
        // Thread que fica processando as mensagens
36
        new Thread(() -> {
42
        new Thread(() -> {
Line 38... Line 44...
38
                try {
44
                try {
39
                    signal.waitForSignal();
45
                    signal.waitForSignal();
40
                    reader.processMsgs();
46
                    reader.processMsgs();
41
                } catch (Exception e) {
47
                } catch (Exception e) {
42
                    e.printStackTrace();
48
                    e.printStackTrace();
-
 
49
                    break;
43
                }
50
                }
44
            }
51
            }
45
        }, "IBKR-Reader-Thread").start();
52
        }, "IBKR-Reader-Thread").start();
46
53
47
        try { Thread.sleep(1000); } catch (Exception ignored) {}
-
 
48
-
 
49
        // --------------------------------------
-
 
50
        // CONTRATO DO MINI ÍNDICE (ajuste se precisar)
-
 
51
        // --------------------------------------
-
 
-
 
54
        // --------- CONTRATO PARA TESTE: AAPL (mais garantido) ----------
52
        Contract c = new Contract();
55
        Contract c = new Contract();
53
        c.symbol("PETR4");                          // símbolo na IB
-
 
54
        c.secType("FUT");
-
 
55
        c.exchange("B3");                         // teste "BMF" ou "BVMF" se der erro 200
-
 
56
        c.currency("BRL");
-
 
57
        c.lastTradeDateOrContractMonth("202512"); // Z25 = Dez/2025
-
 
58
        // --------------------------------------
-
 
-
 
56
        c.symbol("AAPL");
-
 
57
        c.secType("STK");
-
 
58
        c.currency("USD");
-
 
59
        c.exchange("SMART");
-
 
60
//        c.primaryExch("NASDAQ");
-
 
61
       
-
 
62
        // ---------------------------------------------------------------
59
63
60
        System.out.println("Solicitando market data tick-by-tick...");
64
        System.out.println("Solicitando market data tick-by-tick...");
61
        client.reqTickByTickData(reqId, c, "Last", 0, true);
65
        client.reqTickByTickData(reqId, c, "Last", 0, true);
62
    }
66
    }
63
67