示例#1
0
def get_coin_info():
    korbit_machine = KorbitMachine()
    coiner = Coiner(korbit_machine)
    result_etc = coiner.get_filled_orders(coin_type="etc_krw")
    result_eth = coiner.get_filled_orders(coin_type="eth_krw")
    result_btc = coiner.get_filled_orders(coin_type="btc_krw")
    result_xrp = coiner.get_filled_orders(coin_type="xrp_krw")
    result_bch = coiner.get_filled_orders(coin_type="bch_krw")
    mongodb = mongodb_handler.MongoDbHandler("local", "coiner", "price_info")
    result_list = result_etc + result_eth + result_btc + result_xrp + result_bch
    ids = mongodb.insert_items(result_list)
class KorbitMachineTestCase(unittest.TestCase):
    def setUp(self):
        self.korbit_machine = KorbitMachine()

    def tearDown(self):
        pass

    def test_set_token(self):
        print(inspect.stack()[0][3])
        expire, access_token, refresh_token = self.korbit_machine.set_token(
            grant_type="client_credentials")
        assert access_token
        print("Expire: %s, Access_token: %s, Refresh_token: %s" %
              (expire, access_token, refresh_token))

    def test_get_token(self):
        print(inspect.stack()[0][3])
        self.korbit_machine.set_token(grant_type="client_credentials")
        access_token = self.korbit_machine.get_token()
        assert access_token
        print("Access_token: " + access_token)
def get_currency_info():
    """셀러리(Celery)에 등록되는 task로 
    코빗 거래소에서 최근 1분간 화폐정보를 가져오기 위한 task입니다. 
    가져온 데이터는 MongoDBHandler를 이용해 Mongodb에 넣습니다.
    """
    korbit = KorbitMachine()
    result_etc = korbit.get_filled_orders(currency_type="etc_krw")
    result_eth = korbit.get_filled_orders(currency_type="eth_krw")
    result_btc = korbit.get_filled_orders(currency_type="btc_krw")
    result_xrp = korbit.get_filled_orders(currency_type="xrp_krw")
    result_bch = korbit.get_filled_orders(currency_type="bch_krw")
    result_btg = korbit.get_filled_orders(currency_type="btg_krw")
    result_btg = korbit.get_filled_orders(currency_type="ltc_krw")
    mongodb = MongoDBHandler("local", "coiner", "price_info")
    result_list = result_etc + result_eth + result_btc + result_xrp + result_bch + result_btg
    if len(result_list) != 0:
        for item in result_list:
            d = datetime.fromtimestamp(item["timestamp"]/1000)
            item["year"] = d.year
            item["month"] = d.month
            item["day"] = d.day
            item["hour"] = d.hour
            item["minute"] = d.minute
            item["second"] = d.second
            item["amount"] = float(item["amount"])
            item["timestamp"] = item["timestamp"]/1000
            item.pop("tid")
        ids = mongodb.insert_items(result_list)
示例#4
0
    def check_my_order(self):
        self.check_buy_ordered()
        self.check_buy_completed()
        self.check_sell_ordered()
        self.check_sell_completed()
        self.check_keep_ordered()

    def run(self):
        if self.params["is_active"] == "active":
            self.check_my_order()
            self.scenario()
        else:
            logger.info("inactive")


if __name__ == "__main__":
    mongodb = MongoDBHandler(mode="local",
                             db_name="coiner",
                             collection_name="price_info")
    korbit_machine = KorbitMachine()
    pusher = PushSlack()

    if len(sys.argv) > 0:
        trader = StepTrade(machine=korbit_machine,
                           db_handler=mongodb,
                           strategy=sys.argv[1],
                           currency_type=sys.argv[2],
                           pusher=pusher)
        trader.run()
示例#5
0
from celery import Celery, Task
from autotrading.db.mongodb import MongoDbHandler
from autotrading.machine.korbit_machine import KorbitMachine
from autotrading.pusher.slack import PushSlack

app = Celery('get_coin_info', backend='redis://localhost:6379/0', broker='redis://localhost:6379/0')

config = configparser.ConfigParser()
config.read('conf/config.ini')
client_id = config['KORBIT']['client_id']
client_secret = config['KORBIT']['client_secret']
username = config['KORBIT']['username']
password = config['KORBIT']['password']
machine = KorbitMachine(mode="Prod",
                        client_id=client_id,
                        client_secret=client_secret,
                        username=username,
                        password=password)
db_handler_local = MongoDbHandler("local", "coiner", "price_info")
db_handler_remote = MongoDbHandler("remote", "coiner", "price_info")

pusher = PushSlack()

app.conf.beat_schedule = {
    'add-every-1-min': {
        'task': 'scheduler.trader.trader',
        'schedule': 60.0,
        'args':(),
    },
}
 def setUp(self):
     self.korbit_machine = KorbitMachine()
     self.korbit_machine.set_token()
class KorbitMachineTestCase(unittest.TestCase):

    def setUp(self):
        self.korbit_machine = KorbitMachine()
        self.korbit_machine.set_token()
        
    def test_set_token(self):
        print(inspect.stack()[0][3])
        expire, access_token, refresh_token = self.korbit_machine.set_token(grant_type="password")
        assert expire and access_token and refresh_token
        print("Expire:", expire, "Access_token:", access_token, "Refresh_token:", refresh_token)

    def test_get_token(self):
        print(inspect.stack()[0][3])
        self.korbit_machine.set_token(grant_type="password")
        access_token = self.korbit_machine.get_token()
        assert access_token
        print(access_token)
        
    def test_get_ticker(self):
        print(inspect.stack()[0][3])
        ticker = self.korbit_machine.get_ticker("etc_krw")
        assert ticker
        print(ticker)

    def test_get_filled_orders(self):
        print(inspect.stack()[0][3])
        order_book = self.korbit_machine.get_filled_orders(currency_type="btc_krw")
        assert order_book
        print(order_book)

    def test_get_constants(self):
        print(inspect.stack()[0][3])
        constants = self.korbit_machine.get_constants()
        assert constants
        print(constants)

    def test_get_wallet_status(self):
        print(inspect.stack()[0][3])
        wallet_status = self.korbit_machine.get_wallet_status()
        assert wallet_status
        print(wallet_status)
        #print("balance:"+wallet_status["krw"]["avail"])

    def test_get_list_my_orders(self):
        print(inspect.stack()[0][3])
        my_orders = self.korbit_machine.get_list_my_orders("etc_krw")
        assert my_orders
        print(my_orders)

    def test_get_my_order_status(self):
        print(inspect.stack()[0][3])
        my_order = self.korbit_machine.get_my_order_status("etc_krw", "8100321")
        assert my_order
        print(my_order)

    def test_cacnel_order(self):
        print(inspect.stack()[0][3])
        cancel_order = self.korbit_machine.cancel_order(currency_type="etc_krw", order_id="5064611")
        assert cancel_order
        print(cancel_order)

    def test_buy_order(self):
        print(inspect.stack()[0][3])
        buy_order = self.korbit_machine.buy_order(currency_type="etc_krw", price="15000", qty="1", order_type="limit")
        assert buy_order
        print(buy_order)
        
    def test_sell_order(self):
        print(inspect.stack()[0][3])
        sell_order = self.korbit_machine.sell_order(currency_type="etc_krw", price="40000", qty="1", order_type="limit")
        assert sell_order
        print(sell_order)

    def test_get_nonce(self):
        print(inspect.stack()[0][3])
        nonce = self.korbit_machine.get_nonce()
        assert nonce
        print(nonce)
        
    def tearDown(self):
        pass
 def setUp(self):
     self.korbit_machine = KorbitMachine()
示例#9
0
 def setUp(self):
     print("setUp")
     korbit_machine = KorbitMachine()
     self.coiner = Coiner(korbit_machine)