AWSで自動売買(macでmysql)

データを取得したらDBへ格納していきたいと思います。

為替レートのデータ取得方法は、試行錯誤中なのとOANDA証券のAPIをつかっているので、今は、割愛します。

将来的には、AWSのRDSとかを使いたいと考えていますが、現状ではローカル環境で試したいのでMacmysqlを使うところから。

qiita.com

homebrewが入っているので、このサイトを参考にしたら簡単にインストール完了。

MySQLのコンソールを便利にするための5つのTips – sawara.me

とかが参考になりました。

 

「使ったコマンド例」

ユーザー一覧の表示 : >SELECT Host, User FROM mysql.user;

ユーザーのパスワード変更 : >

データベース一覧の表示 :>show databases

テーブル一覧の表示 : >SHOW TABLES FROM [~~~]

Python3

pythonmysql接続するためには、ライブラリとかが必要。

MySQLを操作する | Make.

ここにあるように、MySQLdbをpipでインストールしようとしたが、python3には対応していなくてインストールできない模様。

Python3でMySQLに接続する環境をLinuxで整える

にあるようにして、

pip install mysql-connector

mysql-connectorをインストール。

[使い方]

import mysql.connector

connect = mysql.connector.connect(user='~~', password='~~', host='~~', database='~~', charset='utf8')
cursor = connect.cursor()

cursor.execute(" query文  ")

とか。。。

AWS上での構成(案)

AWS上で、自動売買システムを構築するとした際に、構成を考える必要がある。

とりあえず、アイデアを整理するためにも書いてみた。ここからリファクタリング、改良していきたい。

 

f:id:carry5824:20161211184100p:plain

・おそらくVPNは張らない。

・RDSは、mysqlを使用予定。(EC2上にmysqlをインストールするのもひとつ)

・データ取得インスタンスと解析インスタンスと発注インスタンスとか分ける?

・GoogleCloudでデータ解析するとか

・webで情報を見えるようにするとか(OANDAとの兼ね合いは考慮必須)

これから考慮したり、変えていく感じ。

 

アイコン等は、ここからもってきた。

AWS シンプルアイコン - AWS アーキテクチャーセンター | AWS

AWS自動売買システム OANDA証券API

 

carry5824.hatenablog.com

 の続きです。

 

また、一ヶ月空いてしまいました。。。恐ろしい。

OANDA証券が、WEB APIを公開していること、JavaSDKを配布しているということでOANDA証券に口座を開設。マイナンバー必要です。

 

利用の条件(デモ環境は無料)として、口座に25万円の買付余力金が必要とのことで入金もしときました。(ちょっと多めに)

 

JavaSDKを使うのか、APIを使うのか、運用面や勉強面を考えて決めたほうがいいのかもしれないですが、今回はとりあえず形にしていこうということを優先することに。

 

OANDA証券でAPIの使い方等を調べていると、以下のページに辿り着く。

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

 

REST APIのsampleコードとかが載っているページだが、その中に

Language API Wrappers

というものも。pythonバージョンのこれを使って行こうと思う。

 

$ pip install git+https://github.com/oanda/oandapy.git

で、インストール可能。また、MITライセンスとのこと。

 

 

 

pyenvというやつでpythonのversion管理が容易にできるらしい。

pyenvを使って、pythonバージョンの変更 - Qiita

"pip: command not found" in installs of 2.7.9 and 2.7.10 · Issue #411 · yyuu/pyenv · GitHub

 

[言葉の説明]

REST API

RESTはREpresentational State Transferの略。ものベース。以下が特徴らしい。

  • HTTPの技術を最大限活用する、シンプルな設計方法
  • 「何のリソースを」「どのように」操作するかをURIやHTTPメソッドで表現する
  • リソース指向の設計

参考: REST APIとは? - API設計のポイント

■ Wrapper 

意味:つつみこみ

JavaのInteger型がint のラッパークラス。ソフトウェアプログラム部品などが提供するクラス関数データ型などを本来とは異なる環境や方法で利用できるようにしたものをラッパーという。

参考: ラッパーとは|wrapper|ラッパ − 意味 / 定義 / 解説 / 説明 : IT用語辞典

■ MITライセンス

MITライセンスのもとで配布されているものは、改変でも、再配布でも、商用利用でも、有料販売でも、どんなことにでも自由に無料でつかうことができます。そのために守らなくてはいけない条件は、「著作権表示」と「MITライセンスの全文」を記載する、という条件だけです。

参考: MITライセンスってなに?どうやって使うの?商用でも無料で使えるの? | WisdomMingle.com(ウィズダムミングル・ドットコム)

 

 

AWS自動売買システム 続編

 

carry5824.hatenablog.com

 

の続きです。10/26から随分と時間が経ってしまいましたが諦めず行きましょう。

前回問題となっていたのは、どうやって発注の指示を出すのかということ。これについて調べてわかったことはこんな感じ。

  • GMOAPI公開をやめてしまっている
  • カブドットコム証券は個人法人向けにAPI公開をしているが個人の場合別のサービスと契約しないといけない?
  • HTTP POSTならできないことはない
  • UWSCとかも可能ではあるがしっくりこない(技術的に)
  • 楽天証券などのRSSVBAを使う方法もある
  • 有名なMT4という手も
  • OANDA というところが無料(条件付き,APIやJavaSDK)を公開している。

www.oanda.jp

といった具合です。RSSやMT4も良いと思うのですが今回はプログラミングスキル向上も目的なので、OANDAがいいかなあという感触です。

ただ、証券口座を持っていないので手続きは必要です。。。

 

もう一つの問題であるどうやって値を取得するかについては、

OANDAのAPIを利用するか、スクレイピングするか他のAPIを使うか、楽観的かもしれないがなんとかなるだろうと思うのでどんどん進めていきたい。

 

 

AWS自動売買システム作成へ向けて

更新しようと思い、できず、しようと思い、できずという繰り返しをしておりました。

情報発信、していきたいですね。。。

 

さて、就職して新社会人となり、早半年。

このままではあかんという想いや、もっと成長したいと思う強まっております。

 

ここでなにもしなければ結局なにもしないのではないかという恐怖感も募る中、行動を起こそうと決めました(まだ始まってない)。

 

なにをしようと決めたのかというと、

AWS上で自動売買システム』

をつくるということ。システムなのかアプリケーションなのか装置なのかは知らないけど、24時間稼働とかを目指す。まずは、儲けるとかは一旦二の次にして仕組みを作っていきたい。

なぜこの判断に至ったのかというと、『儲ける』『ITのスキルアップ(クラウド含)』『会計・経済の知識強化』『コミュニティの形成』『情報発信力強化』が一度にできることができるという強欲なところから来ている。一つでも実現していきたい。

細かいことは気にしすぎず、【とりあえずやってみる】という精神でいきたい。

 

作成するにあたって、しなければならないことは大きく分けて次の通り。

  • データを取得する
  • データから売買判断をする
  • 売買を決行する

 

straypccat.hatenablog.com

このブログとかを参考にと考えた。ここにはないことも含めて決めないといけないことを考えてあげてみた。

 

  1. 株なのかFXなのか?
  2. データの収集方法(MT4?RSSスクレイピング?証券会社のAPI?)
  3. ファイル(Excel or TEXTfile)なのかDBなのか
  4. プログラミング言語は?
  5. どうやって常時行うか(サーバー構築?クラウドVM?)
  6. 売買のアルゴリズム
  7. どの証券会社で売買するか(どこならできるか)

とりあえずはこれくらいかなあと思う。一つ一つ詰めていくと、

  1. 内心はどちらでも良い。FXのほうがデータ量が少なくて済むのでは?というのとモチベーションであるクラウド使って24時間稼働!とかを考慮するとFXかな
  2. スクレイピング?証券会社API?恐らく楽なのはMT4。でもwindowsかあってのとITスキル向上は?っていう点が、、、
  3. よくわかんねえ。理想はDBな気はする
  4. 問わない。webで見れたり、アプリっぽくできたらいいなあとか。
  5. AWSで!(Azure,GCP,Softlayerとかも見たほうが良いかもしれないけど。。)
  6. とりあえずは移動平均線のゴールデンクロスとかわかりやすいもの
  7. API接続できる証券会社かUWSCというものを使う??webサービスGMOがいけそう?

 

とりあえず、決めないといけないことは、2.と7.

2.はスクレイピングすればできることはわかるので、問題は7.のほう。これが決まらないというか不明だと迷うというより実現困難となってしまう。

要は、AWS-CLIのようなものを自分で作りたいということなのかな。。。

これを調査し、なる早で作成に取り掛かりたい。

 

以上、こんな感じで進めていきたいと思います。随時進捗を更新していく。

めざせ二刀流(サラリーマンと個人投資家?)!!!!

と、流行りの大谷君とかけてみました。

 

 

 

 

徒然なる日記 ~オリンピック~

連日、リオ五輪で日本勢の快挙が続いています。朝起きる、昼に携帯でニュースをみる、何かをするたびにメダルが増えているような印象です。

中でも、団体と個人で2つの金メダルをとった内村選手や卓球で初の個人メダルをとった水谷選手のメダルを取った瞬間の表情、喜び方、コメントが強く心に残っています。もちろん、ほかのメダリストの方や、メダルをあと一歩で取ることができなかった選手も同様です。日本以外の選手ではありますが、卓球の福原愛選手を破り、銅メダルと獲得した北朝鮮のキム選手の号泣ぶりも記憶に残っています。

何が言いたいのかというと、どの選手にも共通していると感じることが、当たり前ではあるがオリンピックに相当のものを懸けているということ。だからこその、心の底から出てくる、喜び、悲しみ、悔しさがあるのだということ。買った人を見て羨ましいと思うのはある意味当然ではある気がするが、負けた選手を見てもどこか羨ましい気がします。もちろん、必要以上に世間から攻められたりというようなこともついてくるのだとは思いますが。

先述のオリンピックに出ている選手の表情やコメントが印象に残るのはなぜか。もちろん、世界のトップレベルでアドレナリン全開の人たちに人々が釘付けになるのは自然なことであると思う。だからこそ、熱狂し、感動し、時には暴言なども出てしまうのだと思う。そんなスポーツの素晴らしさとは別に、自分自身の”挑戦できているのか"という現状が、なにかオリンピックを見ていて度々引っかかる要因であると思う。達成して泣けるほどの目標があり、それを達成するという経験を現状のままで今後できるのだろうか。少し不安を感じた。

大きい小さいはあまり問いたくはないが、できれば大きい目標に向け行動していきたい。じゃあ、なにでそれをしていくのか。仕事、プライベート(sportsや趣味、人間関係)、それぞれであっていいと思う。ばかみたいでも、笑われても、達成・実現できることを想像するだけでにやにやしてしまうようなものに向かって歩んでいきたい。 

 

# スポーツビジネス大きくならないかな。

課題克服:アウトプット

社会人になり、3ヶ月が過ぎました。何かをしたという実感は特にないのですがこのままでは何となくダメだというのが現状です。

 

とりあえず、細かいことは抜きにして、アウトプットの力を高めていく必要がある。

  • 人にわかりやすく話す、面白く話す(長く?)
  • わかりやすい文章
  • プレゼン、発表

っていうことができるようになることがふんわりとした目標。

 

  • 必要以上にコミュニケーションをとる
  • 少し長く話そうとしてみる
  • NewsPicksのコメントを毎日する
  • 苦手であることを認める、伝える
  • 自己開示
  • 楽しい可能性が高い、ある選択肢を取る!何でもやる
  • 態度を分け過ぎない

マインド的な問題として、必要最低限でいいだとか、その場が終わればいいだとか、守りに入っているような姿勢があるような気がするのでそれをどうにかせねば。