11import poloniex
2+ from .tools import getDatabase , getLogger , TA
23
4+ logger = getLogger (__name__ )
35
4- class Poloniex (poloniex .Poloniex ):
6+
7+ class Poloniex (poloniex .PoloniexSocketed ):
58 def __init__ (self , * args , ** kwargs ):
69 super (Poloniex , self ).__init__ (* args , ** kwargs )
10+ self .db = getDatabase ('poloniex' )
711 # holds stop orders
812 self .stopOrders = {}
913 # holds ticker data
@@ -33,17 +37,16 @@ def on_ticker(self, msg):
3337 'low24hr' : data [9 ]
3438 }
3539 # check stop orders
36- mkt = self .channels [str (data [0 ])]['name' ]
40+ mkt = self .channels [str (int ( data [0 ]) )]['name' ]
3741 la = data [2 ]
3842 hb = data [3 ]
3943 for id in self .stopOrders :
4044 # market matches and the order hasnt triggered yet
41- if str (self .stopOrders [id ]. market ) == str (mkt ) and not self .stopOrders [id ]['order' ]:
42- self .logger .debug ('%s lowAsk=%s highBid=%s' , mkt , str (la ), str (hb ))
45+ if str (self .stopOrders [id ][ ' market' ] ) == str (mkt ) and not self .stopOrders [id ]['order' ]:
46+ self .logger .info ('%s lowAsk=%s highBid=%s' , mkt , str (la ), str (hb ))
4347 self ._check_stop (id , la , hb )
4448
4549
46-
4750 def _check_stop (self , id , lowAsk , highBid ):
4851 amount = self .stopOrders [id ]['amount' ]
4952 stop = self .stopOrders [id ]['stop' ]
@@ -64,7 +67,7 @@ def _check_stop(self, id, lowAsk, highBid):
6467 self .stopOrders [id ]['market' ],
6568 str (stop ))
6669 if self .stopOrders [id ]['callback' ]:
67- self .stopOrders [id ]['callback' ](** self . stopOrders [ id ] )
70+ self .stopOrders [id ]['callback' ](id )
6871
6972 # buy
7073 if amount > 0 and stop <= float (lowAsk ):
@@ -82,7 +85,7 @@ def _check_stop(self, id, lowAsk, highBid):
8285 self .stopOrders [id ]['market' ],
8386 str (stop ))
8487 if self .stopOrders [id ]['callback' ]:
85- self .stopOrders [id ]['callback' ](** self . stopOrders [ id ] )
88+ self .stopOrders [id ]['callback' ](id )
8689
8790
8891 def addStopLimit (self , market , amount , stop , limit , callback = None , test = False ):
@@ -94,25 +97,30 @@ def addStopLimit(self, market, amount, stop, limit, callback=None, test=False):
9497 'test' : test ,
9598 'order' : False
9699 }
97- self .logger .debug ('%s stop limit set: [Amount]%.8f [Stop]%.8f [Limit]%.8f' ,
100+ self .logger .info ('%s stop limit set: [Amount]%.8f [Stop]%.8f [Limit]%.8f' ,
98101 market , amount , stop , limit )
99102
100103 def ticker (self , market = None ):
101104 """
102105 Returns ticker data saved from websocket. Returns a logger error
103- and REST ticker data if the socket isnt running or subscribed to the
104- ticker.
106+ and REST ticker data if the socket isnt running. Auto-subscribes to
107+ ticker if the socket is running and not subscribed .
105108 """
106- if not self ._t or not self ._running or self .channels ['1002' ]['sub' ]:
107- self .logger .error ("Websocket isn't running or not subscribed to ticker!" )
108- return self .returnTicker ()
109+ if not self .channels ['1002' ]['sub' ]:
110+ if not self ._t or not self ._running :
111+ self .logger .error ("Websocket isn't running!" )
112+ return self .returnTicker ()
113+ else :
114+ self .logger .error ("Not subscribed to ticker! Subscribing..." )
115+ self .subscribe ('1002' )
116+ return self .returnTicker ()
109117 if market :
110118 return self .tick [self ._ids [market ]]
111119 return self .tick
112120
113121
114- def stopCallback ( ** kwargs ):
122+ def cbck ( self , id ):
115123 """
116124 Example callback for stop orders
117125 """
118- print (kwargs )
126+ print (self . stopOrders [ id ] )
0 commit comments