クラスの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つの要素を持つリストとなる。
dictionaryのキーをlistで用意しておき、for文でキーを繰り返してそれぞれを初期化する
次のような書き方があることを初めて知った・・・。
test_dic = {element: {} for element in ['test1','test2']}
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買い。
読みづらいのがJPY。
ポンドの利上げ期待でのGBP買いに対して最も売られたのがJPYだが、衆院解散や北朝鮮ネタなどの政治的不透明さで、最近はJPY買い。
USDは年内利上げを織り込んでいると思い、その期待と売られ過ぎの反動から買いだと思っているが、JPYも買いなのでUSDJPYは動きづらいか。
ちょっと、次のイベントが読みづらくて、どうしようかという感じ。
市場にBOEショック:数カ月内の利上げを示唆(日経)https://t.co/EHhkn4TYsC
— 滝田洋一(日本経済新聞) (@yoichitakita) 2017年9月14日
議事要旨でインフレ率を適正水準にするため、「金融緩和措置の一部解除が今後数カ月で適切となる公算が大きい」と明記。利上げに踏み切る可能性を強く示た。
ーーポンド急上昇・英国株急落。
JPYが売られたのがGBP買いのせいだとしたら、GBP利上げ後の事実でGBP売りで、JPY買いのシナリオ?
衆院解散での円安ではなく、北朝鮮ネタでの先行き不透明による、JPY買いのシナリオ?
米株下落に伴う全面売りでのJPY買いのシナリオ?
大分ポジトークでJPY買いしか思いつかないw。
USDの見方は変わらず。
USD買いの対極として、どの通貨が売られるかに注目している。
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で同様のことをしている人がいたので、それを使わせてもらった。
一度Primary Keyを設定している状態だと、一旦消さないと、Alter tableで複合主キーを設定できないようだ
これ、裏は取っていないが、恐らくそうだろう。
テーブルに1つの主キーを設定していた状態で、Alter tableでもう1つ主キーを追加しようとしたらエラー。
Error1068 multiple primary key defined
実行したAlter文はこれ。
ALTER TABLE テーブル名 ADD PRIMARY KEY(カラム名1, カラム名2);
「Alter文なんだから、黙ってテーブル定義変更してくれよ!」と思ったが無理。
一度、主キーを全て削除してから再度Alter文を実行したら作成できた。