天天看點

okex 加密貨币自動化交易 Python量化 通過api交易的方法(三)最簡單的例子怎麼托管程式在背景自己跑

  • 最簡單的例子
    • 監聽實時價格
  • 怎麼托管程式在背景自己跑
    • crontab
    • 列印行情到檔案

最簡單的例子

監聽實時價格

從上一節我們可以看到已經實作了列印實時行情的函數,那這個時候我們就可以實作最簡單的一個自動化功能,監聽實時價格。

# coding: utf-8
import time
from client import OkexClient
client = OkexClient(None, None)
symbol = 'eos_usd'
res = client.ticker(symbol,'this_week')
print res['ticker']['sell']
           

print那個函數列印的就是實時價格,這個時候你加個if的判斷條件就相當于監聽價格啦。

怎麼托管程式在背景自己跑

crontab

通過crontab 指令,我們可以在固定的間隔時間執行指定的系統指令或 shell script腳本。時間間隔的機關可以是分鐘、小時、日、月、周及以上的任意組合。這個指令非常适合周期性的日志分析或資料備份等工作。

用法很簡單,以上述那個程式為例,我們對他做一些改造

列印行情到檔案

# coding: utf-8
import time
from client import OkexClient

client = OkexClient(None, None)

symbol = 'eos_usd'
res = client.ticker(symbol,'this_week')
print res['ticker']['sell']
#列印到eos_ticker.txt中
f = open("/root/okex/AutoTtade/client/eos_ticker.txt", "a")
f.write(str(res)+'\n')
f.close()
           

加了三行寫檔案的代碼,現在就可以把行情情況輸入到檔案中去。

然後

crontab -e

開始将腳本設為每分鐘都觸發一次

* * * * * /usr/bin/python /root/okex/AutoTtade/client/basic.py
           

等幾分鐘在打開eos_ticker.txt就能看到結果了

{u'date': u'1534126442', u'ticker': {u'sell': , u'day_low': , u'buy': , u'last': , u'contract_id': , u'vol': , u'high': , u'low': , u'unit_amount': , u'coin_vol': , u'day_high': }}
{u'date': u'1534126501', u'ticker': {u'sell': , u'day_low': , u'buy': , u'last': , u'contract_id': , u'vol': , u'high': , u'low': , u'unit_amount': , u'coin_vol': , u'day_high': }}
{u'date': u'1534126561', u'ticker': {u'sell': , u'day_low': , u'buy': , u'last': , u'contract_id': , u'vol': , u'high': , u'low': , u'unit_amount': , u'coin_vol': , u'day_high': }}
{u'date': u'1534126622', u'ticker': {u'sell': , u'day_low': , u'buy': , u'last': , u'contract_id': , u'vol': , u'high': , u'low': , u'unit_amount': , u'coin_vol': , u'day_high': }}
{u'date': u'1534126682', u'ticker': {u'sell': , u'day_low': , u'buy': , u'last': , u'contract_id': , u'vol': , u'high': , u'low': , u'unit_amount': , u'coin_vol': , u'day_high': }}
{u'date': u'1534126742', u'ticker': {u'sell': , u'day_low': , u'buy': , u'last': , u'contract_id': , u'vol': , u'high': , u'low': , u'unit_amount': , u'coin_vol': , u'day_high': }}
           

這就是最簡單的方法,我們寫入檔案也不是一個太常用的方式,建議将行情直接寫入資料庫,後續分析也可以通過SQL來搞,不需要再寫代碼進行處理了。

繼續閱讀