변경 - 업무 : Java - 관심 : Python 2. 회사에 Python을 전파하고자 하였으나 실패 3. 그냥 혼자 Python 프로젝트를 만들자 4. 암호화폐 Boom 5. 은행이율보다 높은 수익을 내는 뭔가를 만들자 - 연이율10% ?? / 월이율 1% ?? 6. 2017년 추석 연휴
것이다. 2. 거래소 폐쇄 또는 암호화폐 거래 금지 등 ➡ 약간의 리스크는 있지만 현재 세계적인 추세로는 폐쇄나 금지가 발생하지 않을 것이다. 3. 매수한 암호화폐가 가격이 떨어지기만 한 후 영원히 혹은 몇년간 상승하지 않거나 사라진다. ➡ 신뢰할 수 있는 종류만 매매하도록 한다.
not is_buy_timing(data): # analysis data from api data = api.analysis() buy_order = api.make_buy_order() while not buy_order.is_completed(): current_price = api.get_current_price() if current_price > buy_order.price * 1.01: api.cancel_order(buy_order) if api.get_balance() > 0: break else: return 0 # profit is zero sell_order = api.make_sell_order() while not sell_order.is_completed(): current_price = api.get_current_price() if current_price < sell_order.price * 0.9: if has_budget(): api.cancel_order(sell_order) buy_order_2 = api.make_buy_order() while not buy_order_2.is_completed(): ... profit = sell_order.funds - buy_order.funds return profit
- 분석담당 Worker(Waiting) - 매수담당 Worker(Buying) - 매도담당 Worker(Selling) - Worker는 공통적으로 work라는 행동을 하는데 각자의 work방식은 고유하다. - Worker는 일할때 필요한 api(인터페이스)가 반드시 필요하다. - 일할 때 필요한 각종 데이터도 가지고 일한다.(budget, market, orders 등)
if latest_order.status == OrderStatus.WAIT: if self.budget != EMPTY and self._is_additional_buy_timing(): self.cancel_order(latest_order) else: # cancel or done if wait_orders := self.orders.get_wait_orders(): for o in wait_orders: self.cancel_order(o) else: if self.balance > 0: order = self.buy_order(self.next_price) self.status = WorkerStatus.BUYING self.orders.append(order) else: self.revenue = self.orders.get_sell_funds - self.orders.get_buy_funds self.status = WorkerStatus.END