Sync the stock portofolio in IBKR to MoneyForward ME.
IBKR MF Syncer is a Python script that synchronizes a stock portfolio from Interactive Brokers (IBKR) with MoneyForward ME. The script fetches reports in XML format generated by IBKR Flex Queries and reflects the information to MoneyForward ME.
IBKR MF Syncerは、Interactive Brokers (IBKR)の株式のポートフォリオをMoneyForward MEに同期するPythonスクリプトです。このスクリプトは、IBKRからFlex Queriesで生成されたxml形式のレポートを取得し、その情報をMoneyForward MEに反映します。
- Cash残高と現物株式のみに対応しています。他の商品(債権、投信、先物、CFD、オプション等)には(まだ)対応していません。※手伝ってくれる方募集中です。
- yahoo finance から取得した為替情報を使用して円換算をしているが、あまり正確ではなく、参考程度に。
- Interactive Brokers (IBKR)のFlex web serviceのTokenはいつまでも有効ではないです。有効期間が1年間です。失効したら新に設定が必要です。ご注意を。
- IB証券側の準備:
- IB証券の口座設定でFlex web serviceを有効化しておくこと。
- 有効にしたら、Current Tokenをメモること。
- 1つActivity Flex queryを作成しておくこと。セクション(Sections)は、以下(1)と(2)の2つを選択しておくこと。他のセクションを選択しないこと。
- (1)オープン・ポジション(Open Position)
- オプションは「サマリー」のみ選択。
- 項目は全項目を選択(SELECT ALL)。
- (2)キャッシュ・レポート(Cash Report)
- オプションは何も選択しない。
- 項目は全項目を選択(SELECT ALL)。
- 他の設定は全てデフォルトのままにすること。
- クエリ名はなんでも良い。
- 作成後、そのクエリーIDをメモっておくこと。
- (1)オープン・ポジション(Open Position)
- MoneyForward ME側の設定:
- MoneyForward MEで「IB証券」を(自動取得に対応していない)金融機関(証券)として手動登録しておくこと。
- ここから登録できます。「金融機関名」はなんでも良いです。 e.g: IBKR
- 登録したら、【口座】→【登録済み金融機関】→「手元の現金・資産」のセクションに「IBKR」があるはずです。それをクリック後、URLをメモっておくこと。
- まず、準備でメモったものを全て
config.ini
に反映し、保存する。 - 次に、スクリプトを実行します。
python main.py
以下のライブラリが必要です。
- configparser
- playwright
- ibflex
- pandas
- BeautifulSoup
- yfinance
以下のコマンドでインストールできます。
pip install configparser playwright ibflex pandas beautifulsoup4 yfinance