クラスのListを作成する方法

dictionaryのキーをlistで用意しておき、for文でキーを繰り返してそれぞれを初期化する」に引き続き、次のような書き方があることも初めて知った・・・。

class ClassA(object):
    def __init__(self, ticker):
        self.ticker = ticker

class ClassB(object):
    def __init__(self, ticker):
        self.ticker = ticker

classlist=[ClassA, ClassB]
tickers = ['ticker1', 'ticker2']

objList = [classElem(ticker) for classElem in classlist for ticker in tickers]

このように書くとobjListは、classlistの要素数(2)×tickersの要素数(2)=4の4つの要素を持つリストとなる。

PandasのDataFrame.plot()関数で2軸グラフを描く

以前「pandas.DataFrame型のデータで2軸グラフを描く」では面倒くさい上に上手く行かなかった記憶があったが、単純な折れ線だと次のようにして描ける。

df = pd.DataFrame()
df.plot(x=df['timestamp'], secondary_y=['ltp'])

secondary_yを指定すれば良い。

為替メモ 〜 想定通りのUSD買い。ただ、売られるのはEURよりもAUDの方が大きかった。

前回「為替メモ 〜 USD買いだと思うけれど、売られるのはEURでいいのかな?」、前々回「想定通りのUSD買いだったけれど、EURUSDは中々売られないなぁ」で書いた通り、USD買いは正解。

ただ、USDの対極として売られるのはEURよりもAUDだった。EURもある程度は売られたが、AUDの方が明確。CADやAUDはもう少し対ドルで買われると思っていたのだが・・・。

◎KU60分足ベース(2016年12月〜2017年10月2日)

2017年内の利上げ確率は75%程度。11月は95%の確率で現状維持であり、12月利上げの見通し。
2016年11月にトランプが当選し、その翌月のFOMCでの2016年12月の利上げ後に米国10年債利回りは低下を辿り、2017年9月上旬までドル安だった。

予想通り巻き戻しが始まったと考えている。
金利で考えると、AUD買いでJPY売りだろうけど、USD買いが始まってからは逆のようだ。
これをどう扱うか・・・。

為替メモ 〜 USD買いだと思うけれど、売られるのはEURでいいのかな?

前回は「想定通りのUSD買いだったけれど、EURUSDは中々売られないなぁ」。

少しずつ想定に近づきつつあるかな。
EUR売りのUSD買い。

◎KU60分足ベース(年初来)

◎KU5分足ベース

読みづらいのがJPY。

ポンドの利上げ期待でのGBP買いに対して最も売られたのがJPYだが、衆院解散や北朝鮮ネタなどの政治的不透明さで、最近はJPY買い。
USDは年内利上げを織り込んでいると思い、その期待と売られ過ぎの反動から買いだと思っているが、JPYも買いなのでUSDJPYは動きづらいか。
ちょっと、次のイベントが読みづらくて、どうしようかという感じ。

JPYが売られたのがGBP買いのせいだとしたら、GBP利上げ後の事実でGBP売りで、JPY買いのシナリオ?
衆院解散での円安ではなく、北朝鮮ネタでの先行き不透明による、JPY買いのシナリオ?
米株下落に伴う全面売りでのJPY買いのシナリオ?

大分ポジトークでJPY買いしか思いつかないw。
USDの見方は変わらず。
USD買いの対極として、どの通貨が売られるかに注目している。

◎CFTC

UTC文字列をJSTへ変換する

結論から述べると次のようなメソッドを用意。
面倒だった。

import pytz
from pytz import timezone
from dateutil import parser

def utc2jst(utc):
    datestr = str(utc).replace('T', ' ')
    return pytz.timezone('UTC').localize(parser.parse(datestr)).astimezone(timezone('Asia/Tokyo')).strftime("%Y/%m/%d %H:%M:%S")

replace('T', ' ')を実装しているのは、元の入力値が「u'2017-09-26T02:31:29.263'」という形式のunicode型の文字列だから。

Qiitaで同様のことをしている人がいたので、それを使わせてもらった。

◎参考
Python - bitflyerから一定間隔でビットコインレートBTC/JPYを取得してファイルに保存

一度Primary Keyを設定している状態だと、一旦消さないと、Alter tableで複合主キーを設定できないようだ

これ、裏は取っていないが、恐らくそうだろう。

テーブルに1つの主キーを設定していた状態で、Alter tableでもう1つ主キーを追加しようとしたらエラー。

Error1068 multiple primary key defined

実行したAlter文はこれ。

ALTER TABLE テーブル名 ADD PRIMARY KEY(カラム名1, カラム名2);

「Alter文なんだから、黙ってテーブル定義変更してくれよ!」と思ったが無理。
一度、主キーを全て削除してから再度Alter文を実行したら作成できた。