Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/JacobHanouna/ccxt into Ja…
Browse files Browse the repository at this point in the history
…cobHanouna-master
  • Loading branch information
kroitor committed Jun 1, 2018
2 parents 39e1dd9 + 051f789 commit 487243f
Show file tree
Hide file tree
Showing 2 changed files with 161 additions and 1 deletion.
80 changes: 80 additions & 0 deletions js/bit2c.js
Expand Up @@ -17,6 +17,7 @@ module.exports = class bit2c extends Exchange {
'has': {
'CORS': false,
'fetchOpenOrders': true,
'fetchMyTrades': true,
},
'urls': {
'logo': 'https://user-images.githubusercontent.com/1294454/27766119-3593220e-5ece-11e7-8b3a-5a041f6bcc3f.jpg',
Expand Down Expand Up @@ -252,4 +253,83 @@ module.exports = class bit2c extends Exchange {
'info': order,
};
}

async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) {
await this.loadMarkets ();
let market = undefined;
let method = 'privateGetOrderOrderhistory';
//toTime = datetime.datetime.now()
//fromTime = datetime.datetime.fromtimestamp(since)
let request = {};
request['take'] = limit;
if (typeof since !== 'undefined') {
//request['toTime'] = toTime.strftime('%m.%d.%Y')
//request['fromTime'] = fromTime.strftime('%m.%d.%Y')
}
if (typeof symbol !== 'undefined') {
market = this.market (symbol);
request['pair'] = market['id'];
}
let response = await this[method] (this.extend (request, params));
return this.parseTrades (response, market, since, limit);
}

parseTrade (trade, market = undefined) {
let timestamp = undefined;
let id = undefined;
let price = undefined;
let amount = undefined;
let orderId = undefined;
let feeCost = undefined;
let side = undefined;
let symbol = undefined;
if (typeof market !== 'undefined')
symbol = market['symbol'];
if('reference' in trade){ // this.safeFloat (ticker, 'high')
// Private Trade
timestamp = this.safeInteger (trade, 'ticks') * 1000;
price = this.safeFloat (trade, 'price');
amount = this.safeFloat (trade, 'firstAmount');
//if(symbol is None):
// marketId = self.safe_string(trade, 'pair')
// symbol = [self.markets[market]['symbol'] for market in self.markets if self.markets[market]['id'] == marketId][0]
reference = this.safeString (trade, 'reference').split('|'); // reference contain: 'pair|orderId|tradeId'
orderId = reference[1];
id = reference[2];
action = this.safeInteger (trade, 'action');
if (action == 0) {
side = 'buy';
}
else if (action == 1) {
side = 'sell';
}
feeCost = this.safeFloat (trade, 'feeAmount');
} else {
// Public Trade
timestamp = this.safeInteger (trade, 'date') * 1000;
id = this.safeInteger (trade, 'tid');
price = this.safeFloat (trade, 'price');
amount = this.safeFloat (trade, 'amount');
}
return {
'info': trade,
'id': id,
'timestamp': timestamp,
'datetime': this.iso8601 (timestamp),
'symbol': symbol,
'order': orderId,
'type': undefined,
'side': side,
'takerOrMaker': undefined,
'price': price,
'amount': amount,
'cost': price * amount,
'fee': {
'cost': feeCost,
'currency': 'NIS',
'rate': undefined,
},
};
}
};

82 changes: 81 additions & 1 deletion python/ccxt/bit2c.py
Expand Up @@ -6,7 +6,7 @@
from ccxt.base.exchange import Exchange
import hashlib
from ccxt.base.errors import ExchangeError

import datetime

class bit2c (Exchange):

Expand All @@ -19,6 +19,7 @@ def describe(self):
'has': {
'CORS': False,
'fetchOpenOrders': True,
'fetchMyTrades': True,
},
'urls': {
'logo': 'https://user-images.githubusercontent.com/1294454/27766119-3593220e-5ece-11e7-8b3a-5a041f6bcc3f.jpg',
Expand Down Expand Up @@ -238,3 +239,82 @@ def parse_order(self, order, market=None):
'fee': None,
'info': order,
}

def fetch_my_trades(self, symbol=None, since=None, limit=None, params={}):
self.load_markets()
market = None

method = 'privateGetOrderOrderhistory'
toTime = datetime.datetime.now()
fromTime = datetime.datetime.fromtimestamp(since)

request = {}
request['take'] = limit
if since is not None:
request['toTime'] = toTime.strftime('%m.%d.%Y')
request['fromTime'] = fromTime.strftime('%m.%d.%Y')

if symbol is not None:
market = self.market(symbol)
request['pair'] = market['id']

response = getattr(self, method)(self.extend(request, params))
return self.parse_trades(response, market, since, limit)

def parse_trade(self, trade, market=None):
timestamp = None
id = None
price = None
amount = None
orderId = None
feeCost = None
side = None
symbol = market['symbol'] if market is not None else None

# Private Trade
if('reference' in trade):
timestamp = self.safe_integer(trade, 'ticks') * 1000
price = self.safe_float(trade, 'price')
amount = self.safe_float(trade, 'firstAmount')
if(symbol is None):
marketId = self.safe_string(trade, 'pair')
symbol = [self.markets[market]['symbol'] for market in self.markets if self.markets[market]['id'] == marketId][0]

reference = self.safe_string(trade, 'reference').split('|') # reference contain: 'pair|orderId|tradeId'
orderId = reference[1]
id = reference[2]

action = self.safe_integer(trade, 'action')
if action == 0:
side = 'buy'
elif action == 1:
side = 'sell'

feeCost = self.safe_float(trade, 'feeAmount')

# Public Trade
else:
timestamp = self.safe_integer(trade, 'date') * 1000
id = self.safe_integer(trade, 'tid')
price = self.safe_float(trade, 'price')
amount = self.safe_float(trade, 'amount')

return {
'info': trade,
'id': id,
'timestamp': timestamp,
'datetime': self.iso8601(timestamp),
'symbol': symbol,
'order': orderId,
'type': None,
'side': side,
'takerOrMaker': None,
'price': price,
'amount': amount,
'cost': price * amount,
'fee': {
'cost': feeCost,
'currency': 'NIS',
'rate': None,
},
}

0 comments on commit 487243f

Please sign in to comment.