エンジニアの頭の中

知識と技術で「お金稼ぎの自動化」を実現するため、日々奮闘するエンジニアのブログです。

プログラミング

PythonによるLiquid by Quoine のプライベートAPIの認証方法

先日、Liquid by Quoine(旧Quoinex)のプライベートAPIを呼び出す際の認証処理をGoで書きましたが、同様の処理をPythonでも書いたので、コードを公開しておきます。 www.hacky.xyz Pythonで書いた理由 ccxtを使用していたので、APIの認証処理を意識する必要…

作って覚える!Pythonista 3を使ったPythonプログラミングのやり方

iOSでPythonプログラミングができるPythonista 3 のアプリですが、Pythonista 3のモジュールの利用方法の調査のために、Pythonista 3 を使ってライフゲーム(Conway's Game Of Life)を書いてみました。 Pythonista 3 / omz:software Pythonista 3もPythonと…

Quoine ExchangeのPrivate APIの認証をGoから実行する

今作っているツールをGoで書いていて、Quoine ExchangeのPrivate APIを呼び出す必要があったので、API認証について調べていました。 仮想通貨の自動トレードにはPythonを使っている人が多いと思いますが、ccxtやAPIクライントのライブラリを使用している場合…

【個人的まとめ】技術書の電子書籍販売サイト

技術書を購入する際は、紙の書籍で買っているでしょうか?私は現在では、電子版が販売されていれば、電子版を優先して購入するようにしています。 今回は、私の電子書籍の購入に利用している3つのサイトについて、どんなものか記事にしてみました。 オライ…

自動トレードbotによる取引所API実行時の通信エラーと3つの対策

自作したボットを運用して仮想通貨を自動でトレードしています。現在、取引所はbitFlyerとBitMEXの二つを使用しています。 今日は、ボット運用者なら誰でも経験しているであろう外部サーバへの通信処理の際のエラーについて書きます。 ネットワークを介した…

為替(USドル、日本円)のローソク足をOANDA APIで取得する

バックテストに使用するため、為替の日々の価格データをAPI経由で取得したいと思い、データを入手する手段を探していました。 OANDAのAPIを使用すれば可能だったので、メモ残しておきます。 準備 まず、以下の3つの準備を行います。 OANDA Japan の口座を開…

【BitMEX】Maker手数料を確実に貰う|REST APIでPost-Only注文を行う方法

BitMEXで発注時にTakerになって手数料を徴収されることを防ぐため、APIからPost-Onlyオプションを指定して注文を実行する方法について説明します。コードはPythonで書きます。 目次 BitMEXのMaker手数料とTaker手数料 Maker手数料 Taker手数料 具体例 意図せ…

iPhoneやiPadでPythonプログラミングができる!iOSアプリPythonista 3を紹介

iPhone、iPadでPythonプログラミングができるアプリPythonista 3を紹介します。Python好きな人、手軽にプログラミング入門したい人、iOSアプリに興味があるPython使いな人にオススメです。 目次 Pythonista 3とは Pythonista 3の特徴 まとめ Pythonista 3と…

【プログラミング未経験者向け】なぜPythonがプログラミング入門に適しているのか?

目次 プログラミングの入門に適した言語はなにか? Pythonがプログラミングの入門にオススメな理由 Pythonをさわってみる プログラミングの入門に適した言語はなにか? プログラミング言語はたくさん存在する 世の中にはたくさんのプログラミング言語があり…

HTMLからタグを抽出!BeautifulSoupによるWebスクレイピング入門【Python】

目次 WebスクレイピングとBeautifulSoup Webスクレイピングでできること BeautifulSoupはWebスクレイピングのためのPythonライブラリ BeautifulSoupの使うための準備 BeautifulSoupをインストールする requestsをインストールする BeautifulSoupの使い方 req…

型を明示してPythonコードの品質を向上|Python 3.5で追加された型ヒント(Type Hints)

Python 3.5から追加された型ヒント(Type Hints)という機能をご存知でしょうか?もしくは、知っていても活用しているでしょうか? 型ヒントを使用することによって、コーディングがより便利に、かつ保守性を高めたり、不具合リスクを減少させることができま…

PythonとBitMEX WebSocket API によるリアルタイムトレードbotの作り方

仮想通貨の自動売買を高速で実現するためには、取引所のデータをリアルタイムに取得する必要がありwebsocketが欠かせません。 本記事では、PythonとBitMEXのWebSocket APIを使用して、仮想通貨のリアルタイムトレードを実現するbotの作り方を記載します。 Py…

PythonとCCXTを使用してbitFlyer Lightningの資産残高を取得する

はじめに bitFlyer Lightningのみでトレードしているうちは、bitFlyer LightningのWEBシステムにログインすれば、現在の資産残高や損益の推移は見ることができるため、今まではそこの情報の取得について、特に自動化は行っていなかったのですが、最近は複数…

CryptowatchのAPIでbitFlyerのローソク足を取得する

CryptowatchのAPIを使って、bitFlyerのビットコインFXのローソク足を取得します。 目次 Cryptowatchについて 使用するライブラリ bitFlyerのローソク足を取得するコード 実行結果 まとめ Cryptowatchについて ボットを使用して仮想通貨の自動売買を行うにあ…

Python3とCCXTを使用して仮想通貨の自動売買botを作る

Python 3と仮想通貨の自動売買ライブラリであるCCXTを使用して、仮想通貨の自動売買botを作成します。 この記事では、CCXTのインストール方法と、bitFlyerのAPI操作を例にしたPythonによるCCXTの使用方法について記載します。 Pythonのバージョンは、3.6.2を…

SQLAlchemyでMySQLのINSERT .. DUPLICATE ON KEY UPDATE (UPSERT)を使用する

最近、PythonでMySQLデータベースへ接続するコードを書いていたのですが、直接SQLを書くのが嫌になりSQLAlchemyを使用することにしました。 既存のMySQLへの接続処理をSQLAlchemyを使用するコードへと置き換えていたのですが、その際に、MySQLへのレコード登…

【Python】mysqlclientインストール時の問題と解決方法

Python 3からMySQLを使用するためにpipでmysqlclientをインストールした際に、OSError: mysql_config not foundやIndexError: string index out of rangeというエラーが出て苦戦しました。 この問題の解決方法のメモを残しておきます。 結論から先に述べると…

プログラマなら絶対読んだ方が良い本「UNIXという考え方―その設計思想と哲学」(要約・書評)

どんな本? 「UNIXという考え方―その設計思想と哲学」は、プログラム開発におけるUNIXの思想について述べた本です。 少し古い本ですが、その内容からは、共感できる点や学ぶ点が多いです。その考え方は、現代においても有効な点が多々あると思います。 こち…

SeleniumとPythonを使用してネットプリントへの書類登録を自動化

あらすじ 仕事の取引先とは、見積書や請求書などの書類を、郵送でやりとりしなくてはならないのですが、印刷するためのプリンタを持っていないため(たまにしか印刷しないので所有したくない)、紙の書類を印刷する必要がある時は、ネットプリントというウェ…

ChromeでXPathを簡単に取得する

Webスクレイピングするためのコードを書く場合など、Webブラウザで表示しているHTMLページからXPathを取得したい場合があるかと思います。 この記事では、Google Chromeを使用してXPathを簡単に取得する方法について、記載します。 目次 XPathとは XPath取得…

【2017年版】Bloggerのカスタムドメインにお名前.comで取得したドメインを設定する

Bloggerのブログに、お名前.comで管理しているドメインをカスタムドメインとして設定する方法を紹介します。 必要なのは、以下の二つの設定を行うだけです。 BloggerのサードパーティURLにカスタムドメインを設定 お名前.comのドメインNaviでCNAMEを設定 1.B…

マテリアルデザインのアイコンをAndroidアプリに簡単に使用する方法

最近のAndroidアプリといったら、マテリアルデザインが主流です。 知っている人も多いと思いますが、マテリアルデザインのアイコンは、Googleが公開しているサイトからゲットして、自分のAndroidアプリに簡単に取り込むことができます。 その手順を説明しま…

macOS Sierra に64bit版のsqlplus 12.1 をインストールしてOracleへ接続する

やること macOS sierra に、64bit版のsqlplus 12.1 をインストールして、Oracle DBへ接続するためのクライアント環境を作成します。 sqlplusは、Oracleのサイトから無償で入手可能です。 環境情報 端末は以下の通り。 項目 内容 端末 MacBook (Retina, 12-in…

golangでライフゲーム(Conway's Game of Life)を書いてみた

先日、プログラミング言語を学ぶ際に、よくライフゲームを書いてみるという記事を書きましたが、最近golangに興味を持ち出して、golangでライフゲーム(Conway's Game of Life)を書いてみたくなりました。 以下は、以前の記事です。この時は、JavaScriptとH…

新しいプログラミング言語の学習でライフゲームを作る(Conway’s Game of Life)

ライフゲーム(Conway’s Game Of Life)とは ライフゲームをご存知でしょうか? ライフゲームは、ボード上にセル(細胞)を表示して、それぞれのセルがあるルールに従い、誕生、淘汰、生存を繰り返していく様子を眺めるシミュレーションゲームのことです。 …

Karabinerの代わりにHammerspoonを使用してmacOS SierraでVim風のキーバインドを実現する

macOS Sierraへアップデートするため、macのキーバインドツールであるKarabinerの使用をやめて、Hammerspoonに移行した話です。 Karabinerを諦めてmacOS Sierraへの移行を決意する Karabinerを理由にOSをアップデートできずにいた macOS Sierra では、キーの…

MacBookにギークなステッカーを!unixstickersでのステッカー購入の流れ

ギークなステッカーを購入して、MacBookに貼りたくなったので、unixstickersでステッカーを購入してみました。 発注から、受け取りまでは、以下のような流れでした。 2月22日 発注 2月22日 発送 3月4日 ステッカー到着(購入から10日後) 発注 Web…

フリーランスITエンジニアの年収

今から数年前の、27歳の頃に約4年勤めたIT系の会社を辞めて、辞めた翌日からフリーランスのエンジニアとなりました。 その際の収入面の変化について記載します。 1.なぜ会社を辞めてフリーランスのITエンジニアになったのか? 会社を辞めてフリーランス…