Python(10)-OANDA APIを使った成行注文

前回、OANDA APIを使ってWebリクエストを行い、ドル円の情報、ドル円のオーダー情報の取得を行いました。前回の内容は下記のリンクになります。

Python(9)-OANDA APIをWebリクエスト

今回は、ドル円の成行注文を行うアプリケーションを作成してみようと思います。前回のドル円情報の取得、ドル円のオーダー情報の取得はGETリクエストを使用していましたが、成行注文の場合はPOSTリクエストで行います。前回のドル円情報の取得のアプリケーションと今回の成行注文のアプリケーションを組み合わせると、シンプルな自動売買アプリケーションができそうですね。

今回は、ドルを5000ドル成行注文で買うアプリケーションを作成しようと思います。では、プログラミンを行っていきます。

Python(9)-OANDA APIをWebリクエスト

前々回は、サードパティが提供しているOANDA APIのライブラリを、前回はOANDAから提供されているOANDA APIライブラリを使用して、ドル円の情報を取得しました。前回、前々回の内容は下記のリンクになります。

Python(7)-OANDA APIを使ってみる

Python(8)-OANDA APIのサンプル コードを動作させてみる

これらのライブラリですが、ライブラリのソースコードを見てみると、WebAPIをリクエストしています。OANDA APIはOANDAから提供されているWebAPIです。HTTPSでリクエストして、JSONデータとして、為替取引情報などを取得しています。下記のOANDA APIの紹介ページにも記載されています。

http://developer.oanda.com/rest-live-v20/introduction/

ということで、実際にPythonを使用して、Webリクエストして情報を取得してみようと思います。現在のドル円の価格情報の取得、オーダーブック情報の取得をしようと思います。OANDAでは、オーダー情報の取得もできます。今のどの価格で買いや売りがはいっているのか情報を取得できます。株式の板みたいですね。それではプログラミングしていきたいと思います。

Python(8)-OANDA APIのサンプル コードを動作させてみる

前回、Third-partyが用意しているライブラリを使用して、OANDA APIを動作させてみました。ドル円の価格を取得するアプリケーションです。前回の内容は、下記を参照してください。

Python(7)-OANDA APIを使ってみる

今回は、OANDAから提供されているライブライを使用して、価格情報を取得したいと思います。OANDAから提供されているライブラリを使用したサンプルコードもOANDAから提供されているので、今回はこのサンプルコードを動作させてみようと思います。まずは、OANDAから提供されているライブラリをインストールしようと思います。ライブラリは下記よりダウンロードできます。

https://github.com/oanda/v20-python

ダウンロードしたzipファイルを解凍すると、フォルダの中に「src」フォルダがあり、その中に「setup.py」がありますので、これを実行します。

python setup.py install

OANDAから提供されているライブラリのインストールが完了したら、次は、サンプルコードをインストールします。サンプルコードは下記よりダウンロードできます。

https://github.com/oanda/v20-python-samples

ダウンロードしたzipファイルを解凍すると、フォルダの中に「setup.py」がありますので、これを実行します。

python setup.py install

サンプルコードを使用するために、下記のライブラリも必要なので、pipやcondaでインストールしてください。

Python(7)-OANDA APIを使ってみる

FXや為替取引で何かプログラミングすると考えるとMetaTrader(MT)が思いつく。最新は、MT5であるが、MT4を使っている人が多いらしい。MetaTraderを使用して自動売買をしている人も多いのではないでしょうか。MetaTraderには、指標やスクリプトを開発できる独自のスクリプト言語MQLが実装されております。MQL言語も使ってみようかなと思ってはいるのですが、もっと一般的な言語でFXや為替取引に使えるソフトウェアをプログラミングしてみたいなと思い探してみました。探してみたところ、OANDA APIを発見しました。OANDA APIはその名のとおり、OANDAから提供されているAPIです。

OANDAは、1995年にカナダで祖業された金融商品取引業社です。海外ではベストブローカー賞などの数々の賞を受賞しています。 1通貨から取引可能なので、初心者の方もFXトレードを始めやすいと思われます。このOANDAから提供されているのがOANDA APIです。PythonやJavascript、Java、C#などさまざまな言語で使用できます。下記のリンク先のように、OANDA APIのサイトも用意されています。

http://developer.oanda.com/rest-live-v20/sample-code/

それでは、早速はじめてみたいと思います。

GR-COTTON(2)-電圧測定装置

各種センサーの値(電圧)をPCに取り組むために、各社からさまざまな装置が販売されています。 装置は複数センサー値が読み込めるものが多く、複数のセンサーになれば、そのぶん金額も高くなります。今回、読み込むセンサーの値は1つでよかったので、自作することにしました。何か良い基板はないかなと探したところ、小型な基板であることもあり、GR-COTTONを使って作成することにしました。

GR-COTTONは以前下記のページで紹介しています。この時は、LEDを点滅する
機能を作成したと思います。開発環境に関しても紹介していますので、参考に
していただければと思います。

GR-COTTON(1)-動作確認

今回、下記のような機能を構築しようと思います。

  1. 電源を投入したらLEDを点滅させる。
  2. 電圧の値を読む。
  3. READコマンドが受信したら、読み込んだ電圧値を返信する。

下記のように電圧を変化させてみると、下記のような出力を取得できました。

  • 3.3V → 1023
  • 1.65V → 512
  • 0.33V → 100

GR-COTTONはDTRの設定があるようなので、TeraTermで接続するとGR-COTTONが停止してしまいます。KurumiWriterで書き込む際に「Run after COM open(FTDI setting)」にチェックを入れて書き込む方法やTeraTermにもDTRの設定をするなどの対策方法もありますが、今回は、以前C#で作成したシリアル通信のアプリケーションで動作確認をしました。

C#言語(2)-RS232C通信(シリアル通信)

電圧を読み込むピンはA2ピンを使用しました。ちょうどGNDも隣にあるので使いやすいです。シリアル通信は、USBコネクタで行います。

それでは、プログラミンをしていきます。

Arduino(3)-LCDに文字を表示

今回は、LCDを使って文字を表示してみたいと思います。LCDは20×4の文字数になります。ドライバはST7066が実装されています。LCDの制御はArduino Mega 2560で行います。

LCDには、下記のルールで文字を表示します。

  1. 1行目と3行目に「*」を表示していきます。
  2. 1行目と3行目のすべての欄が「*」で表示されたら、1行目と3行目の欄をクリアします。
  3. クリアが完了したら、 2行目と4行目に「*」を表示していきます。
  4. 2行目と4行目のすべての欄が「*」で 表示されたら、2行目と4行目の欄をクリアします。
  5. クリアが完了したら、 また、1の処理に戻り繰り返します。

LCDのピン配置は下記の通りです。

LCDとArduino Mega 2560は下記のように接続します。LCDの画像は20×4が見当たらなかったので、16×2を使用しています。LCDの画像は違いますが、配線は同じです。

今回は4bitモードで動作させるので、DB3、DB2、DB1、DB0は使用しません。

2020年4月30日 | カテゴリー : Arduino | タグ : , | 投稿者 : prog

Arduino(2)-バイポーラ方式ステッピングモーター

前回は、Arduinoを使用して、ユニポーラ方式のステッピングモーターを動かしました。今回はユバイポーラ方式のステッピングモーターを動作させます。駆動電圧は12Vです。1ステップは7.5度のものになります。

モーターの結線は下記のようになっています。

ArduinoはArduino Mega 2560を使用します。下記のように接続しました。
モータードライバはTB6674PGを使用します。

今回モータードライバが1相励磁、1-2相励磁に対応していないので、2相励磁で
ステッピングモーターを動作させたいと思います。1、2、3、4を必要に応じてHigh、Lowに変更することで電流を流します。

それでは、プログラミングをしていきたいと思います。

Arduino(1)-ユニポーラ方式ステッピングモーター

今回は、Arduinoを使用して、ステッピングモーターを動かしたいと思います。ユニポーラ方式のステッピングモーターを使用します。駆動電圧は12Vです。1ステップは5.625度のものになります。

モーターの結線は下記のようになっています。

1相励磁、1-2相励磁、2相励磁でステッピングモーターを動作させたいと思います。1に12Vを流して押して、2、3、4、5を必要に応じてLowにすることで電流を流します。

ArduinoはArduino Mega 2560を使用します。下記のように接続しました。モータードライバはTBD62503APGを使用します。

それでは、プログラミングをしていきたいと思います。

AmazonWebService(7)-ポート 443を使った証明書によるクライアント認証でMQTT接続(GR-ROSE)

ポート8883、ポート8443を使用しましたが、企業のファイアウォールや一部のホームルータは、デフォルトでは、HTTPS の標準ポート 443 以外のすべてのポートで、制限することが多いので、そのような環境では、正しく動作しません。その時に、ポート443を使用します。「RX65N Cloud Kit」を使用して、ポート443を使った証明書によるクライアント認証でMQTT接続を行いました。同様に「GR-ROSE」でもポート443を使った証明書によるクライアント認証でMQTT接続を実施したいと思います。

RX65N Cloud Kitの時は、下記のページのように、ソースコードの追加、修正がありましたが、GR-ROSEに関しては、一行修正すれば、ポート443を使った証明書によるクライアント認証でMQTT接続ができます。

AmazonWebService(5)-ポート 443を使った証明書によるクライアント認証でMQTT接続

それでは、ポート443を使った証明書によるクライアント認証でMQTT接続ができるようにソースコードを修正していきたいと思います。

AmazonWebService(6)-Amazon FreeRTOS動作確認(GR-ROSE)

前回まで、RX65N Cloud Kitに、Amazon FreeRTOSを使用して、AWS(
Amazon Web Service)とデータの送受信をしました。今回は、GR-ROSEに、Amazon FreeRTOSを組み込んで、AWSとデータの送受信をしたいと思います。最初のプロジェクトファイルの読み出し以外は、RX65N Cloud Kitの手順とほぼ同じだと思いますので、下記のページが参考になると思います。

AmazonWebService(4)-Amazon FreeRTOS動作確認

RX65N Cloud KItの時は無線を使用しましたが、GR-ROSEでは、Ethernetを使用してみようと思います。GR-ROSEは無線でもできますが、今回は、Ethernetを使用しようと思います。それでは、まずはプロジェクトを統合開発環境(IDE)にインポートします。IDEは、e2studioを使用します。

e2studioを起動後、[ファイル]→[インポート]を選択して、インポート画面を開きます。既存プロジェクトをワークスペースへを選択して、「次へ」ボタンを押します。