Pharos
Market

exchange.GetTrades()

获取交易所最近的成交记录(历史交易)。

语法

python
trades = exchange.GetTrades()

返回值

返回一个列表,每个元素是一个字典,包含以下字段:

字段类型说明
Idstr成交ID
Timeint成交时间戳(毫秒)
Pricefloat成交价格
Amountfloat成交数量
Typestr成交类型(buy/sell)

示例

基础用法

python
trades = exchange.GetTrades()

Log("最近成交记录数:", len(trades))
for trade in trades[-5:]:  # 最后5条
    Log(f"时间: {trade['Time']}, 价格: {trade['Price']}, 数量: {trade['Amount']}, 类型: {trade['Type']}")

分析成交方向

python
trades = exchange.GetTrades()

buy_count = sum(1 for t in trades if t['Type'] == 'buy')
sell_count = sum(1 for t in trades if t['Type'] == 'sell')

Log(f"买入成交: {buy_count}")
Log(f"卖出成交: {sell_count}")

if buy_count > sell_count * 1.5:
    Log("主动买入较多,市场偏多")
elif sell_count > buy_count * 1.5:
    Log("主动卖出较多,市场偏空")

计算成交量加权平均价

python
trades = exchange.GetTrades()

total_volume = 0
total_value = 0

for trade in trades:
    total_volume += trade['Amount']
    total_value += trade['Price'] * trade['Amount']

vwap = total_value / total_volume if total_volume > 0 else 0
Log(f"成交量加权平均价 (VWAP): {vwap:.2f}")

检测大额成交

python
def detect_large_trades(trades, threshold=5.0):
    """检测大额成交"""
    large_trades = [t for t in trades if t['Amount'] >= threshold]
    
    if large_trades:
        Log(f"检测到 {len(large_trades)} 笔大额成交:")
        for trade in large_trades[-3:]:
            Log(f"  {trade['Type'].upper()} {trade['Amount']:.2f} @ {trade['Price']:.2f}")

trades = exchange.GetTrades()
detect_large_trades(trades, threshold=5.0)

注意事项

  1. 数据数量:通常返回最近 50-100 条成交记录
  2. 时间顺序:成交记录按时间升序排列,最新的在列表末尾
  3. 更新频率:建议至少间隔 1 秒调用一次

相关方法