|
1 | 1 | (ns clj-dde.core |
| 2 | + (:gen-class) |
2 | 3 | [:import |
3 | | - [com.pretty_tools.dde.client.DDEClientConversation] |
4 | | - [com.pretty_tools.dde.client.DDEClientEventListener] |
| 4 | + [com.pretty_tools.dde.client DDEClientConversation] |
| 5 | + [com.pretty_tools.dde.client DDEClientEventListener] |
5 | 6 | [com.pretty_tools.dde ClipboardFormat] |
6 | 7 | [com.pretty_tools.dde DDEException] |
7 | | - [com.pretty_tools.dde DDEMLException] |
8 | | - [java.util Date]]) |
| 8 | + [com.pretty_tools.dde DDEMLException]]) |
9 | 9 |
|
10 | 10 | (System/getProperty "java.library.path") |
11 | 11 |
|
12 | | -(Date.) |
13 | | - |
14 | 12 |
|
15 | 13 | ;; instantiate a DDEClientConversation |
16 | 14 |
|
17 | | -;; ** DDEClientConversation member functions: |
| 15 | +;; MetaTrader -- |
| 16 | + |
| 17 | +(def mt4-conv-bid (DDEClientConversation.)) |
| 18 | +(def mt4-conv-ask (DDEClientConversation.)) |
| 19 | + |
| 20 | +(.setTimeout mt4-conv-bid 3000) |
| 21 | +(.setTimeout mt4-conv-ask 3000) |
| 22 | + |
| 23 | +(.connect mt4-conv-bid "MT4" "BID") |
| 24 | +(.connect mt4-conv-ask "MT4" "ASK") |
| 25 | + |
| 26 | +(.startAdvice mt4-conv-bid "EURUSD") |
| 27 | +(.startAdvice mt4-conv-ask "EURUSD") |
| 28 | + |
| 29 | +; (.request mt4-conv-bid "EURUSD") |
| 30 | +; (.request mt4-conv-ask "EURUSD") |
| 31 | + |
| 32 | + |
| 33 | +(defn get-eu-bid |
| 34 | + [] |
| 35 | + (Float. (.request mt4-conv-bid "EURUSD"))) |
| 36 | + |
| 37 | + |
| 38 | +(defn get-bid |
| 39 | + [ccy] |
| 40 | + (Float. (.request mt4-conv-bid #(clojure.string/upper-case ccy)))) |
| 41 | + |
| 42 | + |
| 43 | +(def eubid (get-eu-bid)) |
| 44 | + |
| 45 | +(def eubid-now (atom 1.0)) |
| 46 | + |
| 47 | +eubid |
| 48 | + |
| 49 | +@eubid-now |
| 50 | + |
| 51 | +(compare-and-set! eubid-now @eubid-now (get-eu-bid)) |
18 | 52 |
|
19 | | -; (.connect conversation "excel" "sheet1") |
20 | | -; (.request conversation "R1C1") |
21 | | -; (.poke conversation "R1C1", "new val") |
| 53 | +@eubid-now |
| 54 | + |
| 55 | + |
| 56 | +(defn stream-pair [ccy] |
| 57 | + ()) |
| 58 | + |
| 59 | + |
| 60 | +#_(while (not= @eubid-now 1.0 ) |
| 61 | + (do |
| 62 | + (if-not (= @eubid-now (get-eu-bid) ) |
| 63 | + (do |
| 64 | + (compare-and-set! eubid-now @eubid-now (get-eu-bid)) |
| 65 | + (println @eubid-now))))) |
22 | 66 |
|
23 | | -(def mt4-conv (DDEClientConversation.)) |
24 | 67 |
|
25 | | -(.connect mt4-conv "MT4" "BID") |
26 | 68 |
|
27 | | -(.startAdvice mt4-conv "EURUSD") |
28 | 69 |
|
29 | 70 | ; (.setEventListener mt4-link (DDEClientEventListener)) |
30 | 71 |
|
31 | 72 | ; void onItemChanged(String topic, String item, String data); |
32 | 73 |
|
33 | | -(defn ELOnItemChanged |
| 74 | +#_(defn ELOnItemChanged |
34 | 75 | [] |
35 | 76 | (reify DDEClientEventListener |
36 | 77 | (onItemChanged [this topic item data] |
37 | 78 | (str "onItemChanged: " topic " , " item " , " data " )")))) |
38 | 79 |
|
39 | | -(defn ELOnDisconnect |
| 80 | +#_(defn ELOnDisconnect |
40 | 81 | [] |
41 | 82 | (reify DDEClientEventListener |
42 | 83 | (onDisconnect [this] |
43 | 84 | (str "onDisconnect called.")))) |
44 | 85 |
|
45 | | -(.setEventListener mt4-conv (ELOnItemChanged)) |
| 86 | +; (.setEventListener mt4-conv (ELOnItemChanged)) |
| 87 | + |
| 88 | +; (ELOnItemChanged) |
| 89 | + |
| 90 | + |
| 91 | +(defn -main |
| 92 | + [& args] |
| 93 | + (str "main got called.")) |
| 94 | + |
| 95 | + |
| 96 | + |
| 97 | + |
| 98 | + |
| 99 | + |
| 100 | + |
| 101 | + |
| 102 | + |
46 | 103 |
|
47 | | -(ELOnItemChanged) |
48 | 104 |
|
49 | 105 |
|
50 | | -(str "the" "string" "gets") |
51 | 106 |
|
52 | 107 |
|
53 | 108 |
|
|
0 commit comments