はてなブログで画像サイズを変更する
はてなブログを始めて、最初に詰まったことで探してもあまりなかったため、試行錯誤していたら解決したので、そのやり方について残しておきたいと思います。
まず画像を挿入するには、編集画面右の「写真を投稿」のタブから、新しく写真を投稿を選択、もしくは選択した写真を貼り付けのどちらかからできます。
おそらく初期状態だと「貼り付け時に詳細を設定する」にチェックが入っていると思います。その状態で新しく画像を挿入すると、次のようなポップアップが表示されます。
ここで一旦キャプションとして文章などを入力してから「記事編集画面に貼り付ける」を選択すると、
このようにキャプションが追加されます。 この状態のままだと、画像を選択しても、四隅に画像サイズを変更するためのマークが表示されません。
ここから、四隅をドラッグして画像サイズを変更するには、まず「HTML編集」のタブに移動します。
そこで該当の画像の、figureタグとfigcaptionタグを削除します。
imgタグはそのまま残しておきます。
すると下のようにドラッグで画像サイズを変更できるようになります。
【スプレッドシート】グラフの作成
今回でこのシリーズは最後になりますが、グラフの作成をしていきたいと思います。
グラフはすぐにできるのでさくっと終わらせちゃいましょう!
「データ」シートの準備
まずは、グラフを挿入する準備として、「データ」シートを少し加工していきます。
- 3列目を選択した状態で
- 「挿入」タブを選択
- 「上に1行」を選択
新しくできた3列目に見出しを入力します。
グラフを挿入する
グラフを挿入していきます。適当に数字があるセルを選択した状態で、「挿入」タブから、「グラフ」を選択します。
すると、以下の画像のように、グラフが挿入され、右側に「グラフエディタ」が表示されると思います。
このままでは、累計以外も表示されてしまっているので、編集していきます。
データ範囲を直接入力でB3〜H300までにします。銘柄数が2つ以上にしている方は、H列より右側まで選択して、累計の列が含まれるようにしてください。
グラフエディタを下の方にスクロールして、「行3を見出しとして使用」にチェックを入れます。
見出しがついていない系列を削除します。
新しくシートを追加する
これでグラフの原型はできたので、新しくシートを追加して、シート名を「グラフ」に変更します。
グラフを「データ」シートから「グラフ」シートに移動する
グラフを移動するには、コピー&ペーストで簡単にできます。「データ」シートでグラフを選択してコピー、「グラフ」シートに移動してペーストします。
「データ」シートの元のグラフはもう必要ないので削除します。
これでグラフの完成です。
あとはお好みのレイアウトに変更してみてください。
ここからは私が変更したところについて載せていきます。
- グラフの種類を「面グラフ」にする
- グラフの背景色を黒っぽくする
- 凡例、横軸、縦軸の色を白にする
- 系列から、線の太さを1pxにする
- 系列から、それぞれの色を変える
以上で終わりです。
各銘柄の推移を明確にするために、全銘柄の累計は別のグラフにしたほうがいいかもしれません。
また「データ」シートなどで列や行を非表示にすると、
このようなアラートが出てきますが、「データを含める」をクリックすれば大丈夫です。
最後に
「スプレッドシートにトレードのデータを記録する」ということで、ここまでやってきました。
他にもいい方法があったりするかもしれませんが、
- 日付とその日の損益を入力するだけ
- カレンダー、集計、グラフ表示
- スマホ、PCどちらからでも確認、編集できる
と、メリットはとても大きいかなと思うので、ぜひ利用してみてください!
第1回 データ
第2回 カレンダー1
第3回 カレンダー2
第4回 集計
第5回 グラフ
【スプレッドシート】データを集計し、銘柄ごとの勝率などを求める
今回は、トレードにおいて重要な指標となる勝率やPF、PORなどを求めて、一覧で見られるようにしていきたいと思います。
それではやっていきましょう!
「集計」のシートを作る
まず初めに、新しくシートを追加します。
見出しを入力
見出しを入力します。
- A1 → 年間
- A2 → 利益
- A3 → 損失
- A4 → 合計
- A5 → 勝ち
- A6 → 負け
- A7 → 合計
- A8 → 勝率
- A9 → PF
- A10 → POR
- B1 → ='データ'!B1
- C1 → ='データ'!C1
- D1 → 合計
B1とC1は数式を入力してください。
利益・損失の値のみを加算していく
利益・損失を入力するために、SUMIF関数を使って、値がプラスの時、マイナスの時で分けて足していきます。
- B2 → =sumif('データ'!B3:B,">0")
- B3 → =sumif('データ'!B3:B,"<0")
これは、SUMIF関数によって範囲の中から、条件に合致するものだけの合計を返してくれます。なのでセルB2では銘柄1のプラスの値のみの合計が、セルB3では銘柄1のマイナスの値のみの合計が表示されています。
セルB4には利益と損失の合計を入力したいので、SUM関数でもいいですし、単純に足しても構いません。
- B4 → =sum(B2:B3)
もしくは、
- B4 → =B2+B3
利益・損失の回数をカウントする
勝率などを計算するために、利益と損失の回数をCOUNTIF関数を使ってカウントします。
- B5 → =countif('データ'!B3:B,">0")
- B6 → =countif('データ'!B3:B,"<0")
- B7 → sum(B5:B6)
これは、COUNTIF関数によって範囲の中から条件に一致する要素の個数を返してくれます。なのでそれぞれ0以上、0以下に一致する値の個数の合計が表示されています。
勝率、PF、PORを入力する
トレードの良し悪しを見る時に参考になる指標としていろいろなものがありますが、ここでは勝率、PF(プロフィットファクター)、POR(ペイオフレシオ)の3つを表示していきます。
- B8 → =B5/B7
- B9 → =if(B3=0,"-",abs(B2/B3))
- B10 → =if(and(B3<>0,B5<>0,B6<>0),abs( (B2/B5)/(B3/B6) ),"-")
※ABS関数は数値の絶対値を返してくれます。
これで全てのセルの入力ができたのでB2〜B10をC列にもコピーします。
合計の列の入力
セルD2にSUM関数を入力してセルB7までコピーします。
- D2 → =sum(B2:C2)
C8〜C10をD列にコピーします。
これで年間の集計の表ができたので見た目を整えます。
月ごとの集計の表作成
ここまでで年間通しての集計ができたので、月ごとの集計をプルダウンリストから選択できるように作っていきます。
「データ」シートの準備
「データ」シートから月で絞り込むために、「データ」シートの日付の左に列を追加します。
- A列を選択した状態で
- 「挿入」タブを選択
- 「左に1列」を選択
新しくA列が追加できたら、以下を下の方までコピーします。
- A3 → =if(B3="","",month(B3))
新しく追加したA列の「表示形式」を「自動」に変更します。
これで「データ」シートの準備ができたので「集計」シートに移動します。
プルダウンリストの作成
指定の月を選択できるようにプルダウンリストを作ります。
作り方については以前にもやっているので、省略させていただきます。
各見出しを入力
各見出しを入力します。
利益、損失、勝ち、負けの項目の入力
利益、損失、勝ち、負けの項目は年間のときとは違い、選択された月の集計のみを表示します。なので、SUMIFS関数・COUNTIFS関数を使って複数条件によって合計や回数を計算していきます。
- B13 → =sumifs('データ'!C3:C,'データ'!$A$3:$A,$A$12,'データ'!C3:C,">0")
- B14 → =sumifs('データ'!C3:C,'データ'!$A$3:$A,$A$12,'データ'!C3:C,"<0")
- B16 → =countifs('データ'!C:C,">0",'データ'!$A:$A,$A$12)
- B17 → =countifs('データ'!C:C,"<0",'データ'!$A:$A,$A$12)
その他の「合計」、「勝率」、「PF」、「POR」は年間の方と同じなので省略します。
C列、D列についても年間の方と同じなので、
- C列は、B列をコピー
- D列は、D列の年間の部分をコピー
これで月ごとの集計表ができたので、見た目を整えて完成です。
お疲れ様でした!以上で集計表の作成は終わります。次回は、グラフを作っていきたいと思います。
第1回 データ
第2回 カレンダー1
第3回 カレンダー2
第4回 集計
第5回 グラフ
【スプレッドシート】SUMPRODUCT関数を使って、行・列で合致した値を取得する。
今回は、SUMPRODUCT関数を使って、行方向・列方向で合致した交点の値を取得していきたいと思います。
SUMPRODUCT関数とは、2つの同サイズの配列または範囲にある対応する要素の積を計算し、その合計を返してくれる関数です。この記事では、少し違った使い方をするので、より詳しい使い方については省かせていただきます。
具体的にやりたいことは、
- 行方向(左右方向)に「銘柄」および「合計」から検索
- 列方向(上下方向)に「日付」から検索
- 合致した値を取得し表示する
です。
完成イメージ
それでは作っていきましょう!
銘柄および合計のプルダウンリスト
まずは銘柄と合計から選択できるようにプルダウンリストを作ります。
- セルD2を選択した状態で、
- 「データ」タブを選択して、
- 「データの入力規制」を選択
前回カレンダーを作った時は、「リストを直接指定」に変更しましたが、今回は「リストを範囲で指定」のまま、テキストボックスの中の「データ範囲を選択」をクリック。
すると、次のような画面が出てくると思うので、
ここで、「データ」のシートに移動し、銘柄および合計を選択し、「OK」、「保存」。
(画像ではセルD1とD2を結合しているので2行選択されているように見えますが、1行目だけ選択されていれば大丈夫です。)
これでプルダウンリストができました。
SUMPRODUCT関数でデータを取得する
準備ができましたので、SUMPRODUCT関数を使って、指定の年月・銘柄の値を取得し表示していきましょう。
まずは説明の前に形だけ作ってしまいます。
セルB6に次のように入力し、H6までドラッグしてコピーします。
- B6 → =sumproduct( ('データ'!$A$3:$A$300=date($B$2,$C$2,day(B5)))*('データ'$B$1:$D$1=$D$2),'データ'!$B$3:$D$300)
B6〜H6をコピーして、8、10、12、14、16行目にも入力します。
……あれ? 思った通りの数字が表示されていませんね。
これは前回カレンダーを作った時に、日付の下に新しく行を挿入していました。
すると、表示形式まで同様に適用されるので、日付として出力されてしまいます。
なので、6行目を全て選択した状態で、「表示形式」、「数字」、を選択し、「自動」もしくは「数値」などに変更します。
これで正しく表示されたので、他の行も同じく変更しておきます。
それでは、SUMPRODUCT関数でどのような計算がされているかを見ていきます。
今セルB6には次のように入力されています。
=sumproduct(
('データ'!$A$3:$A$300=date($B$2,$C$2,day(B5))) *
('データ'$B$1:$D$1=$D$2) ,
'データ'!$B$3:$D$300
)
分かりやすくすると、
=sumproduct( (列方向に検索) * (行方向に検索) , 検索範囲 )
このような構成になっています。
また、それぞれ検索の内容として、
(列方向に検索) → 「データ」シートの日付=そのセルの日付
(行方向に検索) → 「データ」シートの銘柄および合計=プルダウンリストで選択したもの
になっています。
よって、列方向に検索して合致した日付、行方向に検索して合致した銘柄を、検索範囲の中の交点から取得します。
前後の月の時は空白にする
最後に、カレンダーを作った時のように、前後の月の損益については空白になるようにします。
先ほど入力したものにIF関数を追加します。SUMPRODUCT関数の中身は変わらないので省略します。
- B6 → =if(B5="","",sumproduct(省略))
このように日付が空白(前後の月)の時は、損益も空白になっていればOKです。
お疲れ様でした!
SUMPRODUCT関数を使った値の取得は以上になります。
あとはお好みの見た目にレイアウトを変更してみてください。
私はこれに加えて、週ごと、曜日ごとの小計を追加しましたので、完成したものを載せておきます。
次回は、データを集計して見やすくまとめるシートを作っていきたいと思います。
第1回 データ
第2回 カレンダー1
第3回 カレンダー2
第4回 集計
第5回 グラフ
【スプレッドシート】カレンダーを自作する
今回は、スプレッドシートでカレンダーを作っていきたいと思います。スプレッドシートには、テンプレートがあるのでそれを使ってもいいですが、プルダウンで指定の年月のみを表示するようにしたいので、自作していきたいと思います!
新しくタブを作る
新しいシートを追加して、名前をカレンダーに変更します。
プルダウンで年、月を入力する
まず初めに月の入力をします。セルC2が選択されている状態で、「データ」から「データの入力規制」を選択します。
すると次のような画面が表示されるので、
「リストを範囲で指定」を「リストを直接指定」に変更します。
テキストボックスに、「1,2,3,4,5,6,7,8,9,10,11,12」と入力し、「保存」します。
セルC3にプルダウンができたので、「1」を選択しておきます。
同様に年の方もプルダウンで作ってもいいのですが、月と比べて頻繁に変更することもないので、直接入力でもいいと思います。ここでは省略させていただきます。
曜日を入力する
セルB4に「日」と入力し、セルの右下のフィルハンドルをH4までドラッグします。
「土」曜日まで入力されていれば大丈夫です。
日付を入力する
基準となる日付を入力する
DATE関数を使って、セルB2、C2で選択されている年月を日付に変換します。
- A2 → =date(B2,C2,1)
DATE関数は、指定の年、月、日を日付に変更できます。
最初の日付を入力する
基準となる日付(選択した年月の1日)が最初の週の何曜日からなのかをWEEKDAY関数を使って入力していきます。
- B5 → =if(weekday($A$2)=1,$A$2,"")
WEEKDAY関数は、指定した日付に対応する曜日を数値で返してくれます。
なのでここでは、IF関数の条件式が、「セルAが日曜日(=1)であるかどうか」となり、真であればここにA2の値を入力し、偽であれば空白を返すことになります。
セルC5〜H5には次のように入力します。
- C5 → =if(B5="",if(weekday($A$2)=2,$A$2,""),B5+1)
- D5 → =if(C5="",if(weekday($A$2)=3,$A$2,""),C5+1)
- E5 → =if(D5="",if(weekday($A$2)=4,$A$2,""),D5+1)
- F5 → =if(E5="",if(weekday($A$2)=5,$A$2,""),E5+1)
- G5 → =if(F5="",if(weekday($A$2)=6,$A$2,""),F5+1)
- H5 → =if(G5="",if(weekday($A$2)=7,$A$2,""),G5+1)
これは、たとえばセルC5において、「B5が空白であれば、A2が月曜日(=2)であるかどうかで分岐し、空白でなければ(日付が入力されていれば)1日足す」という計算をしています。
1週目が入力できたので、2週目以降を入力していきます。
- B6 → =H5+1
- C6 → =B6+1
このセルC6のフィルハンドルをH6までドラッグします。
セルB6〜H6を選択した状態で、フィルハンドルをH8までドラッグ。
月末の表示
セルB9〜H9に次のように入力します。
- B9 → =if(H8="","",if(month(H8+1)=month($A$2),H8+1,""))
- C9 → =if(B9="","",if(month(B9+1)=month($A$2),B9+1,""))
このセルのフィルハンドルをH9までドラッグ。
B9〜H9を下にコピーする。
選択中の月以外は空白にするようにしているので、見た目上は空白ですが、数式が入力されていれば大丈夫です。
日にちのみ表示する
このままでは年と月が表示されているので日にちのみ表示するようにしましょう。
- B5〜H10を選択した状態で、
- 「表示形式」、
- 「数字」、
- 「表示形式の詳細設定」、
- 「カスタム数値形式」を選択
次のような画面が表示されるので、テキストボックスに「d」と入力して適用します。
これで選択した年月のカレンダー表示ができました。
最後に週ごとに予定などを入力できるように行を追加して、お好きな見た目に変更してみてください。
一応簡単に見た目を整えましたのでこれで完成とします。
お疲れ様でした。次回はこのカレンダーの日にちの下に「データ」タブから損益の情報を取得して表示していきます。
第1回 データ
第2回 カレンダー1
第3回 カレンダー2
第4回 集計
第5回 グラフ
【スプレッドシート】日々のデータをまとめ、合計と累計を計算する
今回は、日々のトレード記録のデータを入力するためのタブを作成したいと思います。日付とその日の損益を入力したら、合計と、累計が計算されるように作っていきます。
説明のために、銘柄の項目は2つにしたいと思います。もっと必要な場合は適宜追加してください。
新規にスプレッドシートを用意する
まず新規のスプレッドシートを開いたら、シートの名前をお好きなものに、シートの名前を「シート1」から「データ」と変更しておきます。
見出し行を作成、固定
次に、それぞれセルに次のように入力します。
- A1 → 日付
- B1 → 銘柄1
- C1 → 銘柄2
- D1 → 日毎の合計
- E1 → 銘柄ごとの累計
- E2 → =B1
- F2 → =C1
- G1 → 累計
E2とF2は文字ではなく、数式を入力してください。
また今後データが増えても、見出しはずっと表示させたいので、2行目で固定します。
適当にデータを入力してみます。(飛ばしていただいても構いません。)
合計を表示
銘柄ごとの合計はSUM関数を使います。
- B3 → =SUM(B3:B)
- C3 → =SUM(C3:C)
銘柄の合計は、新しく入力したものを随時追加させたいので、引数を上記のように入力します。
日毎の合計もSUM関数を使い、下の方までコピーします。
- D3 → =sum(B3:C3)
未入力のセルを空白に
まだ入力していない日のセルは見た目上は空白にしておきたいので、IF関数を使って、左隣のセルが空白の時は空白にしておきます。
- D3 → =if(C3="","",sum(B3:C3))
累計を表示
最後に累計を入力していきます。
まず1行目は、イコール(=)で同じ値を入力します。
- E3 → =B3
横にドラッグしてコピーします。
2行目以降は、新しい値と1つ上の値を足していきます。このときも見た目上空白にするようにしたいのでIF関数を使います。
- E4 → =if(B4="","",B4+E3)
もしくは、
- E4 → =if(B4="","",sum(B4,E3))
横にコピーした後、下の方までコピーします。
これで完成でもいいのですが、見た目を少し整えたいと思います。
- 表示範囲をG300までに
- 銘柄ごとの累計は非表示に
- 値がマイナスのセルは赤色で表示
- 空白のセルは灰色にする
お疲れ様でした。これでデータシートの作成が終わったので、次回はカレンダーを作っていきたいと思います。
第1回 データ
第2回 カレンダー1
第3回 カレンダー2
第4回 集計
第5回 グラフ
日々のトレード記録をスプレッドシートに!
皆さんは日々のトレードを何に記録しているでしょうか。専用のアプリに記録したり、メモアプリに記録したりと人それぞれだと思います。
ここでは何回かに分けて、スプレッドシートを使って、
- 月別のカレンダー表示
- 月別の集計
- グラフ表示
を、簡易的にできるようなものを作っていきたいと思います。
もちろんExcelでも可能だと思いますが、スプレッドシートだとGASを使ってGmailにメールを自動で送信したり、=googlefinance()など便利な関数が色々とあったりと、今後の拡張性を考えたときに、スプレッドシートのほうが自分には適していると思ったので採用しました。
noteにて完成品を販売しているので、自分で作るのは面倒だな、作る時間が無いなーという方は購入して使ってみてください。
完成イメージ ※数字は適当です
まず、トレードをした日付と銘柄ごとの損益を入力します。
それをもとに、カレンダー表示したり、
それぞれの銘柄ごとに集計したり、
グラフ表示したりできるようにしたいと思います。
第1回 データ
第2回 カレンダー1
第3回 カレンダー2
第4回 集計
第5回 グラフ
完成品