ラズパイでPythonコード用いてFX情報取得

公開:2020/12/13
更新:2020/12/13
3 min読了の目安(約3500字TECH技術記事
  1. やりたいこと
    Oanda JapanをいじってみたでAPIを叩いて情報取ってくるPythonコードを書いた。
    (将来的には情報取ってくるだけじゃなくて売買したいのでそれは並行してやるとして、) 他に将来やりたいこととしてはPythonコードをLinuxサーバで動かすこと。
    ということで、上記記事のPythonコードをまずは練習でラズパイに移動して走らせる。

  2. やったこと

    1. scpで送信
      文字コードがないと怒られる。
    2. oanda.pyコードの先頭に文字コードの指定を追加
      oanda.py
      # coding=utf-8
      
      # ライブラリインポート
      from oandapyV20 import API
      import oandapyV20.endpoints.accounts as accounts
      
      #自分のアカウントID、トークンをセット
      accountID = "101-009-xxxxxxxx-xxx" # MT4 demo
      access_token = 'xxxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxx'
      api = API(access_token=access_token, environment="practice")
      
      # 通貨ペアを指定して情報取得
      params = { "instruments": "EUR_USD,EUR_JPY,USD_JPY" }
      r = accounts.AccountInstruments(accountID=accountID, params=params)
      api.request(r)
      data = r.response
      print(data)
      
    3. 返り値ゲット
      {'instruments': [{'name': 'EUR_USD', 'type': 'CURRENCY', 'displayName': 'EUR/USD', 'pipLocation': -4, 'displayPrecision': 5, 'tradeUnitsPrecision': 0, 'minimumTradeSize': '1', 'maximumTrailingStopDistance': '1.00000', 'minimumTrailingStopDistance': '0.00050', 
      'maximumPositionSize': '0', 'maximumOrderUnits': '100000000', 'marginRate': '0.04', 'guaranteedStopLossOrderMode': 'DISABLED', 'tags': [{'type': 'ASSET_CLASS', 'name': 'CURRENCY'}], 'financing': {'longRate': '-0.0366', 'shortRate': '-0.0058', 'financingDaysOfWeek': [{'dayOfWeek': 'MONDAY', 'daysCharged': 1}, {'dayOfWeek': 'TUESDAY', 'daysCharged': 1}, {'dayOfWeek': 'WEDNESDAY', 'daysCharged': 1}, {'dayOfWeek': 'THURSDAY', 'daysCharged': 1}, {'dayOfWeek': 'FRIDAY', 'daysCharged': 1}, {'dayOfWeek': 'SATURDAY', 'daysCharged': 0}, {'dayOfWeek': 'SUNDAY', 'daysCharged': 0}]}}, {'name': 'EUR_JPY', 'type': 'CURRENCY', 'displayName': 'EUR/JPY', 'pipLocation': -2, 'displayPrecision': 3, 'tradeUnitsPrecision': 0, 'minimumTradeSize': '1', 'maximumTrailingStopDistance': '100.000', 
      'minimumTrailingStopDistance': '0.050', 'maximumPositionSize': '0', 'maximumOrderUnits': '100000000', 'marginRate': '0.04', 'guaranteedStopLossOrderMode': 'DISABLED', 'tags': [{'type': 'ASSET_CLASS', 'name': 'CURRENCY'}], 'financing': {'longRate': '-0.0278', 'shortRate': '-0.0116', 'financingDaysOfWeek': [{'dayOfWeek': 'MONDAY', 'daysCharged': 1}, {'dayOfWeek': 'TUESDAY', 'daysCharged': 
      1}, {'dayOfWeek': 'WEDNESDAY', 'daysCharged': 1}, {'dayOfWeek': 'THURSDAY', 'daysCharged': 1}, {'dayOfWeek': 'FRIDAY', 'daysCharged': 1}, {'dayOfWeek': 'SATURDAY', 'daysCharged': 0}, {'dayOfWeek': 'SUNDAY', 'daysCharged': 0}]}}, {'name': 'USD_JPY', 'type': 'CURRENCY', 'displayName': 'USD/JPY', 'pipLocation': -2, 'displayPrecision': 3, 'tradeUnitsPrecision': 0, 'minimumTradeSize': '1', 'maximumTrailingStopDistance': '100.000', 'minimumTrailingStopDistance': '0.050', 'maximumPositionSize': '0', 'maximumOrderUnits': '100000000', 'marginRate': '0.04', 'guaranteedStopLossOrderMode': 'DISABLED', 'tags': [{'type': 'ASSET_CLASS', 'name': 'CURRENCY'}], 'financing': {'longRate': '-0.0087', 'shortRate': '-0.0233', 'financingDaysOfWeek': [{'dayOfWeek': 'MONDAY', 'daysCharged': 1}, 
      {'dayOfWeek': 'TUESDAY', 'daysCharged': 1}, {'dayOfWeek': 'WEDNESDAY', 'daysCharged': 1}, {'dayOfWeek': 'THURSDAY', 'daysCharged': 1}, {'dayOfWeek': 'FRIDAY', 'daysCharged': 1}, {'dayOfWeek': 'SATURDAY', 'daysCharged': 0}, {'dayOfWeek': 'SUNDAY', 'daysCharged': 0}]}}], 'lastTransactionID': '53'}