用python写一个量化交易脚本
时间: 2024-05-17 16:12:34 浏览: 271
基于Python的量化交易系统的设计与实现+详细文档+全部资料(高分毕业设计).zip
5星 · 资源好评率100%
好的,我可以为您提供一个简单的量化交易脚本的框架,您可以在此基础上进行修改和完善。
首先,您需要导入一些必要的库,例如:
```python
import ccxt
import pandas as pd
import numpy as np
import talib
```
接下来,您需要设置一些参数,例如交易所和交易对:
```python
exchange = ccxt.binance({
'apiKey': 'YOUR_API_KEY',
'secret': 'YOUR_SECRET',
'enableRateLimit': True,
})
symbol = 'BTC/USDT'
```
然后,您需要编写一些函数来获取历史K线数据和实时K线数据:
```python
def get_historical_data(symbol, timeframe, limit):
ohlcv = exchange.fetch_ohlcv(symbol, timeframe=timeframe, limit=limit)
df = pd.DataFrame(ohlcv, columns=['timestamp', 'open', 'high', 'low', 'close', 'volume'])
df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms')
df.set_index('timestamp', inplace=True)
return df
def get_realtime_data(symbol, timeframe):
ohlcv = exchange.fetch_ohlcv(symbol, timeframe=timeframe, limit=1)
df = pd.DataFrame(ohlcv, columns=['timestamp', 'open', 'high', 'low', 'close', 'volume'])
df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms')
df.set_index('timestamp', inplace=True)
return df
```
接下来,您可以编写一些函数来进行技术分析,例如计算移动平均线和RSI指标:
```python
def calculate_ma(df, n):
ma = talib.SMA(df['close'].values, timeperiod=n)
return ma
def calculate_rsi(df, n):
rsi = talib.RSI(df['close'].values, timeperiod=n)
return rsi
```
然后,您可以编写一个函数来进行交易决策,例如在金叉时买入,死叉时卖出:
```python
def trading_strategy(df):
ma5 = calculate_ma(df, 5)
ma20 = calculate_ma(df, 20)
rsi = calculate_rsi(df, 14)
if ma5[-1] > ma20[-1] and ma5[-2] <= ma20[-2] and rsi[-1] < 50:
return 'buy'
elif ma5[-1] < ma20[-1] and ma5[-2] >= ma20[-2] and rsi[-1] > 50:
return 'sell'
else:
return 'hold'
```
最后,您可以编写一个主函数来进行交易,例如:
```python
def main():
while True:
df = get_realtime_data(symbol, '5m')
decision = trading_strategy(df)
if decision == 'buy':
exchange.create_market_buy_order(symbol, 0.001)
print('Bought 0.001 BTC')
elif decision == 'sell':
exchange.create_market_sell_order(symbol, 0.001)
print('Sold 0.001 BTC')
else:
print('Holding...')
```
请注意,此脚本仅作为参考,并且需要进行测试和优化才能在实际交易中使用。在编写量化交易脚本时,请务必小心谨慎,了解风险并遵守当地法律法规。
阅读全文