📜  python autotrader web - Python (1)

📅  最后修改于: 2023-12-03 15:33:58.228000             🧑  作者: Mango

Python Autotrader Web

Python Autotrader Web是一个基于Python的自动交易系统,旨在帮助交易员进行自动化交易,减少手动交易的时间和精力消耗。

功能特性
  • 支持多种交易所,包括Binance,Huobi等。
  • 支持自定义交易策略,用户可以根据自己的需求编写交易策略。
  • 提供多种技术指标计算方法,包括移动平均线,RSI等。
  • 支持自定义告警规则,用户可以在价格达到一定阈值时收到告警邮件或短信。
  • 提供交易记录和资产分析报告功能,用户可以方便地查看交易记录和资产分布状况。
安装使用
环境要求
  • Python 3.6及以上版本
  • 对应交易所的API Key和Secret Key
安装依赖

在安装之前需要先安装所需的依赖库,可以通过以下命令安装:

pip install -r requirements.txt
配置文件

在使用之前需要先配置好相应的信息,包括交易所的API Key和Secret Key,以及自定义的交易策略和告警规则等。配置文件为config.ini,具体如下:

[exchange]
name = binance

[api]
key = xxx
secret = xxx

[strategy]
name = my_strategy.py

[alert]
enable = True
type = email
email_to = xxx@xxx.com
运行程序

配置好之后可以直接运行程序进行自动交易。使用以下命令启动:

python autotrader.py
交易策略编写示例

通过编写自定义的交易策略可以实现更加灵活的交易规则。下面是一个简单的交易策略示例,当价格下跌5%时买入BTC,当涨幅达到10%时卖出。

import math
from autotrader.indicators import *
from autotrader.trading import *

def my_strategy(exchange, symbol):
    # 获取历史K线数据
    klines = exchange.get_klines(symbol, '4h')
    # 计算移动平均线
    close_prices = [float(kline[4]) for kline in klines]
    ma = sma(close_prices, 3)

    # 判断买入卖出条件
    last_kline = klines[-1]
    last_close = float(last_kline[4])
    if last_close < ma[-1] * 0.95:
        amount = math.floor(exchange.get_balance(symbol[:-3]) / last_close)
        if amount > 0:
            exchange.buy_limit(symbol, last_close, amount)
    elif last_close > ma[-1] * 1.1:
        positions = exchange.get_positions(symbol)
        if len(positions) > 0:
            exchange.sell_limit(symbol, last_close, positions[0]['amount'])
总结

Python Autotrader Web是一个非常实用的自动交易系统,既有丰富的功能,又比较容易上手。当然,自动交易存在一定的风险,需要用户自行考虑。