搞钱——Binance平台抢现货新币的经历

798 阅读6分钟

昨天binance上线PIXEL现货交易,鉴于新币上线,一般都会暴涨十几倍以上,于是就有了写一个抢币程序的想法。

为什么要自己写抢币程序,aicoin不就有这个工具吗?

  1. aicoin的抢币程序没办法个性化定制。
  2. aicoin的抢币程序供大量用户使用,开发过程序的人都知道,aicoin要同时启动大量的线程去抢,必然会出现一些用户的账号买在高位的情况。
  3. binance对IP是有限制的,aicoin为了节省成本和运维管理方便,不可能会给你的抢币程序单独提供独立的IP,所以你的抢币程序会有一些API数量的限制。

购买策略:

新币开盘时间,自动启动购买程序,执行100遍循环程序,不断获取当前价格,转换为购买数量,执行市价购买程序。如果购买价格超过预期的水平,进行下一轮抢币,直到100次结束。

买入成功后,每隔3秒获取一次当前交易对的价格,如果超过一定的利润,执行卖出。

开发工具、开发语言、使用到的库:

  • 开发工具:vscode
  • 开发语言:python
  • 使用到的库:python-binance

开发过程

1、启动日志

tool.setlogger(BASECONFIG['c3news']['logfile'])
tool.log('启动打新程序')

2、定时启动

# 指定要执行的时间
target_time = datetime.datetime(2024, 2, 19, 18, 0, 0)

# 计算当前时间与目标时间的时间间隔
time_difference = target_time - datetime.datetime.now()

# 如果时间间隔为负数,则表示目标时间已经过去
if time_difference.total_seconds() > 0:
    # 将时间间隔转换为秒,并暂停程序
    tool.log(f'暂停{time_difference.total_seconds()}秒')
    time.sleep(time_difference.total_seconds())
    

3、循环执行买入

def cycle_buy(self,fdusdnum=1000):
        """尝试购买symbol

        Args:
            fdusdnum(int, optional): 购买的数量. Defaults to '1000'.

        Returns:
            bool: 是否购买成功
            float: 购买的数量
            json: 购买的订单
            float: 购买的价格
        """        
        for i in range(100):
            if_canbuy,buyquantity,price = self.can_buy(fdusdnum)
            if not if_canbuy:
                continue
            # 这里的0.8是我的最高价位预期
            elif price>0.4: 
                continue
            
            try:
                order = self.client.order_market_buy(
                    symbol = self.symbol,
                    quantity = buyquantity
                )
                return True,buyquantity,order,price
            except Exception as e:
                tool.log(e)

        return False,None,None,0

测试的结果

在同一台服务器上,我同时开启了两个抢币的程序,各放了1500FDUSD,其中一个户是0.4的价格抢到,另外一个户是0.4521的价格抢到,相差还是蛮大的。

下面是0.4521元买入那个户的日志:

2024-02-19 17:19:07,057 - INFO - 启动打新程序
2024-02-19 17:19:07,057 - INFO - 暂停2452.9423692024-02-19 18:00:00,228 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:00,361 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:00,473 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:00,595 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:00,706 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:00,824 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:00,942 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:01,057 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:01,199 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:01,336 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:01,465 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:01,599 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:01,736 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:01,908 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:02,046 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:02,176 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:02,311 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:02,434 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:02,567 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:02,691 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:02,813 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:02,937 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:03,057 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:03,172 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:03,292 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:03,413 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:03,536 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:03,668 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:03,795 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:03,918 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:04,043 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:04,159 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:04,277 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:04,402 - INFO - APIError(code=-1013): Filter failure: LOT_SIZE
2024-02-19 18:00:04,514 - INFO - 购买成功,购买价格=0.4521,购买数量=2211.9,购买时间=2024-02-19 18:00:04
2024-02-19 18:00:04,514 - INFO - {'symbol': 'PIXELFDUSD', 'orderId': 1433, 'orderListId': -1, 'clientOrderId': '68zfY1tdm9ejd72LxA35Q9', 'transactTime': 1708336804484, 'price': '0.00000000', 'origQty': '2211.90000000', 'executedQty': '2211.90000000', 'cummulativeQuoteQty': '977.43861000', 'status': 'FILLED', 'timeInForce': 'GTC', 'type': 'MARKET', 'side': 'BUY', 'workingTime': 1708336804484, 'fills': [{'price': '0.44190000', 'qty': '2211.90000000', 'commission': '2.21190000', 'commissionAsset': 'PIXEL', 'tradeId': 539}], 'selfTradePreventionMode': 'EXPIRE_MAKER'}

最终两个户涨了大约5%卖出去了。

反思

这次抢币感觉不算成功,下次尝试测试和改进的方向:

  1. 提前1秒开始抢。
  2. 把服务器部署到亚马逊美国区,原因如图。

image.png

image.png

欢迎有兴趣的朋友联系我,沟通交流。