Skip to content

Commit 025bf43

Browse files
committed
cleaned up streaming
1 parent de9ecd7 commit 025bf43

File tree

3 files changed

+99
-31
lines changed

3 files changed

+99
-31
lines changed

project.clj

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1-
(defproject clj-dde "0.1.0-SNAPSHOT"
2-
:description "clj-dde: for when you need to connect to a DDE (dynamic data exchange) source"
3-
:url "http://github.com/tuddman/clj-dde"
4-
:license {:name "Eclipse Public License"
5-
:url "http://www.eclipse.org/legal/epl-v10.html"}
6-
:dependencies [[org.clojure/clojure "1.5.1"]]
7-
:source-paths ["src/clojure"]
8-
:java-source-paths ["src/java"])
1+
(defproject clj-dde "0.1.0-SNAPSHOT"
2+
:description "clj-dde: for when you need to connect to a DDE (dynamic data exchange) source"
3+
:url "http://github.com/tuddman/clj-dde"
4+
:license {:name "Eclipse Public License"
5+
:url "http://www.eclipse.org/legal/epl-v10.html"}
6+
:dependencies [[org.clojure/clojure "1.5.1"]]
7+
:source-paths ["src/clojure"]
8+
:java-source-paths ["src/java"]
9+
:main src/clojure/core)
10+

src/clojure/core.clj

Lines changed: 73 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,108 @@
11
(ns clj-dde.core
2+
(:gen-class)
23
[: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]
56
[com.pretty_tools.dde ClipboardFormat]
67
[com.pretty_tools.dde DDEException]
7-
[com.pretty_tools.dde DDEMLException]
8-
[java.util Date]])
8+
[com.pretty_tools.dde DDEMLException]])
99

1010
(System/getProperty "java.library.path")
1111

12-
(Date.)
13-
1412

1513
;; instantiate a DDEClientConversation
1614

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))
1852

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)))))
2266

23-
(def mt4-conv (DDEClientConversation.))
2467

25-
(.connect mt4-conv "MT4" "BID")
2668

27-
(.startAdvice mt4-conv "EURUSD")
2869

2970
; (.setEventListener mt4-link (DDEClientEventListener))
3071

3172
; void onItemChanged(String topic, String item, String data);
3273

33-
(defn ELOnItemChanged
74+
#_(defn ELOnItemChanged
3475
[]
3576
(reify DDEClientEventListener
3677
(onItemChanged [this topic item data]
3778
(str "onItemChanged: " topic " , " item " , " data " )"))))
3879

39-
(defn ELOnDisconnect
80+
#_(defn ELOnDisconnect
4081
[]
4182
(reify DDEClientEventListener
4283
(onDisconnect [this]
4384
(str "onDisconnect called."))))
4485

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+
46103

47-
(ELOnItemChanged)
48104

49105

50-
(str "the" "string" "gets")
51106

52107

53108

src/clojure/sandbox.clj

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,17 @@
2020

2121
(.getTimeout conversation)
2222

23-
(.setTimeout conversation)
23+
(.setTimeout conversation 2000)
2424

2525
(.getEventListener conversation)
2626

2727
(.setEventListener conversation an-event-listener)
2828

29-
(.checkConversation conversation)
29+
; (.checkConversation conversation)
3030

31-
(.fireEventOnDisconnect conversation)
31+
; (.fireEventOnDisconnect conversation)
3232

33-
(.fireEventOnAdvData conversation)
33+
; (.fireEventOnAdvData conversation)
3434

3535

3636
; #(com.pretty_tools.dde.client.DDEClientConversation. %)
@@ -41,4 +41,15 @@
4141

4242
#_(defn get-a-conversation
4343
[]
44-
(DDEClientConversation. com.pretty_tools.dde.client.DDEClientConversation))
44+
(DDEClientConversation. com.pretty_tools.dde.client.DDEClientConversation))
45+
46+
;; EXCEL setup --
47+
; (def excel-conv (DDEClientConversation.))
48+
; (.connect excel-conv "excel" "sheet1")
49+
; (.request excel-conv "R1C1")
50+
; (.startAdvice excel-conv "R1C1")
51+
; (.poke conversation "R1C1", "new val")
52+
53+
54+
55+

0 commit comments

Comments
 (0)