2021年7月18日日曜日

【トライオートFX】自動売買で長期運用をする記録


トライオートFXで自動取引を開始して1年半くらいがたち、いつもアプリを眺めているだけでしたが、記録をとっていこうと想い始めました。 FXは超初心者で、自動取引はループイフダンとトライオートの二刀流を目指していましたが、ループイフダンは積もっていく含み損の圧倒的破壊力に耐えきれず途中リタイアしました。 比較的安定していると言われているAUD/NZDをトライオートで開始して現段階でも安定していることから、今後は分析手法も学びながら成績を記録していきたいと思います。

トライオートFXの2021年7月3週目の成績

実現損益 スワップ決済回数
+3,239-1737回

7月12日から7月16日までのチャート

AUDNZD20210712-20210716
チャートを確認すると13日から下降トレンドが発生しています。そこからは一気に価格が下落しています。フィボナッチの0.618(1.06366)近辺でもみ合っていますが、しばらくして下降する形となりました。 一気に決済が入ったところ(7月14日お昼前後)で何が起こったのか気になりますが、ファンダメンタルズ分析のやり方もわからず指を加えている状態です。

今後の動向について

AUD/NZDはいろいろ調べてみると外部要員にあまり影響されない通貨らしく10年間レンジ相場です。このレンジが一気に抜けたときには少し辛抱する必要がありますね。 長期投資でFXを選んでいる時点で少し矛盾していますが、落ち着いた対応ができるよう相場のLiveを楽しみながら自分なりの分析手法も考えていきたいですね。

2020年4月27日月曜日

Numbersのフィルタ機能について

エクセルを使っていると、結構オートフィルターを多用することがありますが、Numbersでも同様な動きができないか調べていたら似たような機能がありました。後述しますが、完全互換というわけにもいかず使いやすさやわかりやすさについてはやっぱりエクセルには未だ及ばないというところが現状かなとは思いますが、エクセルを購入するとうん万円のソフトウェアを購入(サブスクリプションでは1,000円/月前後で購入可能)するよりは標準でついているものでなんとかしようと試行錯誤しているので、同様の機能をいろいろと創作中です。早速Numbersのフィルター機能を使っていきましょう。

動作環境・検証環境

まず初めに唱える呪文ですね。使用環境は次の通りです。
端末名 バージョン
OS(Macbook Air)Cataline 10.15.3
iOS(iPhone X)13.4
Numbersバージョン バージョン6.2.1(6529)

エクセルでの動作確認

エクセルでは「オートフィルタ」と呼ばれている機能についてどのような動作をするのかをみていきたいと思います。まずはした図のようにエクセルで買い物リストを作ってみます。
Numbersのフィルタ機能について
画像1:買い物リストExcel
画面上部にあるリボンの「ホーム」タブのフィルターメニューから「フィルタ」を選ぶと一番上の項目セルの右下に「▼」のマークがついた小さい枠が表示されます。
Numbersのフィルタ機能について
画像2:フィルタ表示Excel
そのマークがついた枠をクリックすることで、フィルターをかけたいメニューが以下図のように表示されます。
Numbersのフィルタ機能について
画像3:抽出項目選択Excel
抽出したい項目以外のチェックを全て外して、メニュー下部の「OK」ボタンをクリックします。今回は「金曜日」を抽出してみたいと思いますので、「金曜日」以外の「木曜日」と「土曜日」のチェックを外します。
Numbersのフィルタ機能について
画像4:項目選択後Excel
「購入する日」が「金曜日」のみ抽出されました。
Numbersのフィルタ機能について
画像5:フィルタ結果Excel

Numbersで同じように操作するには

Numbersでも同じデータを使います。
Numbersのフィルタ機能について
画像6:買い物リストNumbers
Numbersではエクセルのように列を指定してフィルターボタンをつけることができません(探せなかったというのが正解かもしれない)。Numbersの画面右上に「三」が逆になったようなマークが「○」囲われているので、クリックするとすぐ下にメニューが出てきます。メニューの「フィルタ」タブをクリックすると、フィルタのメニューに切り替わるので、この中の「フィルタを追加」というプルダウンのボタンからフィルタリングしたい列を選択します。
Numbersのフィルタ機能について
画像7:フィルタ表示Numbers
フィルタリングしたい列名を選択すると、フィルタリングルールのメニューが表示されます。今回は「・・・である」を選択します。
Numbersのフィルタ機能について
画像8:フィルタリングルールNumbers
エクセルでの条件と同じ条件「金曜日」と入力して「エンター」を押します。
Numbersのフィルタ機能について
画像9:フィルタ項目入力Numbers
下の図の通り結果がでました。
Numbersのフィルタ機能について
画像10:フィルタ結果Numbers

(おまけ)iPhoneで同じように操作するには

iPhoneでNumbersを使えることは過去投稿でやったので割愛するとして、iPhoneのNumbersでも同じようにフィルタをかけることができます。PC版とボタンの位置は若干違いますが、同じマークがあるのでそこをタップすると次のような画面に切り替わります。同じ容量でフィルタしたいテーブルを指定して後は条件を入れるだけ。
Numbersのフィルタ機能について
画像11:iPhoneでフィルタリング

エクセルとNumbersの比較

エクセルとNumbersのフィルタ機能について比較しましたが、使い慣れているのか、こう言った機能が豊富なのかは調べきれていないところですが、やっぱりエクセルに軍配が上がりましたね。ただ、エクセルは購入すると永久ライセンスでも3万円〜4万円くらいはするので、標準でインストールされているNumbersもコスト面ではとてもメリットがあるので、局所的にこの機能がないから劣っているということも言えなさそうです。使い方次第ではNumbersでも全然事足りるほどのことができるので、Macを使っていて表計算がしたいけどエクセルは高くて手が出せないという方にはNumbersを使い倒すことができるといいですね。取り留めもなかったですが、「フィルタ」機能に関しては使い勝手はエクセルがいいです。

2020年3月4日水曜日

Numbersでif関数

If関数はどんなプログラムでも使われていると思いますが、Numbersもその例外ではなく、セルの値によって処理を決めることができるとても便利な関数の一つ。そのif関数の使い方を確認して行こうかなと思います。

動作環境・検証環境

使用環境は次の通りです。
端末名 MacBookAir
OSCataline 10.15.3
Numbersバージョン バージョン6.2.1(6529)

if関数について

セルの値によって処理を決めるif関数ですが、要は条件分岐するものと考えてもいいのかなと。セルの値がif関数の条件式の通り満たすのであればTRUE(正)、条件を満たさないのであればFALSE(誤)となり、それぞれの正誤で入力しているセルになにを出力するものなのかというものです。

書式

If関数の書式についてですが、Numbersの関数説明通りに確認していきましょう。

Numbersへの入力
IF(条件式、真の場合、偽の場合)

それぞれの引数について
条件式:論理式 「件式」には、式をブール値として評価できる限り、すべてのものを含めることができます。式が数値として評価される場合、0はFALSE、それ以外の数値はTRUEと見なされます。

真の場合:「条件式」がTRUEの場合に返される値。 「真の場合」には、任意の値を含めることができます。「真の場合」を省略し(カンマはあるが値がない)、「条件式」の評価がTRUEの場合、IFは0を返します。

偽の場合:「条件式」がFALSEの場合に返される値を指定する引数(オプション)。 「偽の場合」には、任意の値を含めることができます。「偽の場合」を省略し(カンマはあるが値がない)、「条件式」の評価がFALSEの場合、IFは0を返します。「偽の場合」が完全に省略され(「真の場合」の後にカンマがない) 、「条件式」の評価がFALSEの場合、IFはFALSEを返します。
条件式が正しければ「真の場合」で決めた値を返して、正しくなければ「偽の場合」で決めた値を返すということを文章にするとこんな感じになるのかな。ここで、「真の場合」、「偽の場合」いずれも返す値を決めていない場合にはエラーにならず、0を返すのはエクセルとは少し違うところなのかな。のちほど検証してみよう。

if関数実践

以下のサンプルデータを用意しました。テスト結果として点数(図中①の囲い)70点以上の人を「合格」、それ未満の人を「不合格」と合否(図中②の囲い)列へ表示するようにif関数を組んでみると以下の通りになります。※一番初めの生徒(山田さん)のセルは「A2」です。

numbers-if
図1:サンプルデータ(基本)


入力内容
IF(A2>=70,"合格",”不合格”)

numbers-if
図2:入力例(基本)

この式を一番最後の生徒(長谷川さん)までコピーした結果がした図となります。
numbers-if
図3:結果(基本)

関数の条件はセルの値を引数にすることも可能

ここで図のように合格基準点を"D2"のセルに入力して、以下のようにC列へ先ほど同じようにIF関数を入力します。
numbers-if
図4:サンプルデータ(応用)


入力内容
IF(A2>=$D$2,"合格","不合格")

numbers-if
図5:入力例(応用)
このように入力して先ほどと同様に一番最後の生徒(長谷川さん)のセルまで関数をコピーします。

numbers-if
図6:結果(応用)
同じ結果がえられたことがわかります。このように関数を入力することの利点は、例えば合格基準点の変更があり、「70点」から「80点」となった場合を考えてみましょう。関数の条件式に合格基準点を入力した例であれば、関数の条件式に入力されている「70」の箇所を修正し、再度関数を一番下までコピーする必要があります。一方で、関数の中にせるを指定することで、"D2"の値を「80」と入力するだけで全ての計算が合格点「80点」に置き換わることになりますので、条件式には直接数字を入力したりするよりは条件式に使うセルを決めそこを指定したほうが後々のメンテナンスも楽になることがわかります。

まとめ

IF関数は多用すればファイルがとても重くなる関数ですが、プログラムや表計算では欠かせない関数の一つです。使い方はとても簡単で、条件式が正しければその時の処理、正しくなければその時の処理を決めるだけでできるので、覚えておきたい関数の一つです。

2020年3月1日日曜日

Numbersでsumif関数

sum関数を少し複雑に合計ができるsumif関数。sum関数は選択した範囲の合計値を計算するシンプルな機能の関数であるため、単純に合計を出したい場合には向いているけれど、いろいろ集計していると、条件をつけて合計値を計算したいとか必要にかられる時がある時にはsumif関数を使います。今回は少しだけ複雑な合計値(条件をつけて)を計算する方法について紹介していきます。この関数はカテゴリごとに集計するときなど使えたら便利な機能なので是非使いこなしたいところですね。

sumif関数について

少し複雑な計算をするとは書いたものの何が複雑になったのか?ですが、これは指定した条件に関連する数値の合計を計算してくれる機能です。Numbersの説明をそのまま引用すると、「SUMIF 関数は、指定された条件を満たす数値のみを含む数値の集合の合計を返します。」です。Numbersの説明とほぼ同じような言葉で説明してしまっていますね。

引数について

sumif関数の引数を確認していきます。※各引数の名称はNumbersの名称をそのまま使用しております。
Numbersから抜粋(引数)
SUMIF(テスト値, 条件, 合計範囲)
テスト値: テストする値を含む集合。
条件: 値を比較またはテストすると、式がブール値 TRUE または FALSE を返します。
合計範囲: 合計する値を含む集合。

テスト値とは下図の①枠のこと。条件は商品名。合計範囲は下図の②枠のこと。つまり、このリストの中から見つけたい条件(ここでは商品名となります)を指定し、紐付く合計範囲(仕入値)中の合計値を計算します。

sumif関数実践

実際の入力方法と、Numbersでの結果を見ていきたいと思います。先ほど例で上げたデータを使用し、それぞれの商品の合計値を計算していきます。
numbers-sumif
図1:年間仕入れリスト
※セルの値は「A1」が「商品名」で始まります。左の列へ行くたびアルファベットが順に変わります。したのセルへは行数が1ずつ増えていきます。
それでは次のように関数の引数を入れていきましょう。
入力内容
SUMIF($A2:$A12,"りんご",D2:D12)
同様に条件の引数を各商品名に変えて入力していきます。
numbers-sumif
図2:sumif実行結果1
それぞれの商品の合計値が計算されて入れば成功です。

関数の条件はセルの値を引数にすることも可能

sumif関数の式中に入力した条件(ここでは「りんご」)を毎回集計したい条件で手打ちすることはとても面倒ですよね。ここでちょっと便利な使い方を紹介します(ほとんどの人が分かっているとは思いますが。)
まず、集計したい条件のリストを作成します。ここではリストのF列以降に取扱の商品リストを作成しております。
numbers-sumif
図3:取扱商品リスト追加
リストができたら、そのリストの横でもいいので、先ほど入力した式に入力します。
入力内容
SUMIF($A2:$A12,F2,$D$2:$D$12)
この数式をリストの一番下までコピーします。
numbers-sumif
図4:sumif実行結果2
そうするとそれぞれの項目ごとに集計されていることがわかります。

まとめ

sumif関数は使用するシーンが結構豊富なので、是非使えるようになった方がいい関数です。使い方だけの紹介ですが、多用してNumbers自体の計算量がどの程度耐えられるのかも今後は見ていきたいですね。

2019年3月13日水曜日

Numbersでsum関数を使う方法

Numbersではエクセルとほぼ互換がある関数がそのまま使えるので、気になった関数を片っ端から使い方を調べてみようと思います。今回はsum関数について見ていきたいと思います。

sum関数について

これはエクセルでもよく使われる関数の一つです。sum関数の基本的な結果としては、引数として与えられた値の合計を返す単純なものです。Numbersの説明通りに言うと、「SUM 関数は、一連の数値の合計を返します。」と言うことですね。

引数について

Sum関数の引数の取り方は次の通りです。
Numbersから抜粋(引数)
SUM(値, 値...)
値: 「値」は、数値、日付/時刻値、期間値のいずれかです。すべての値は同じ値タイプである必要があります。
値...: オプションで 1 つ以上の追加の値を含みます。
こういう説明ってなんか抽象的に描きすぎているのか、はたまた難しい言葉で説明したいのかは不明ですが全然何が言いたいかわからないですね。
でも説明を見ると日付や時刻も引数として入れていいと言うことは、この説明で知りました。あまり説明書は読まないタイプですが、じっくり説明を読んで関数を理解することは大切ですね。

sum関数使い方あれこれ

前置きはここまでとして、早速sum関数を使ってどういった結果が出るのかを見ていきましょう。

引数に固定値を入力

こういう使い方をする人はまずいませんが、まずはsum関数の引数に直接固定値を下のように入力して見ます。
入力内容
sum(100,100,100)
期待したい結果は100を三つ足した合計値300となっていることです。それでは結果を見ていきましょう。
当たり前のことをしすぎている感が強いですが、ちゃんと期待した通りの結果が出ました。

数値が入力されているセルを指定

ここからが一般的なsum関数の使用方法となってくると思います。表計算ソフトを使う上で、色々な項目に紐付く何かしらの数値があると思います。それに紐づいている数値の合計値を出していきましょう。ここで使う仮のデータを次のように作りました。
仮データ(とある日の模試結果)
A B C
1指名 点数 退出時間
2 げそ太 95 10:00
3 げそ郎 90 9:40
4 げそ子 85 10:30
5 げそ菜 100 9:50
こんな感じでデータがあったとします。早速この4名の合計値を出していきましょう。
関数入力例
sum(B2,B3,B4,B5)
数値が入力されたセルを引数として参照しています。結果は次の通り合計値370が表示されます。

数値が入力されているセルを範囲指定する

次に数値が入力されているセルを範囲指定して合計する方法です。
関数入力例
sum(B2:B5)
この方法でも4名の合計値370と計算されます。一つひとつのセルを指定する必要がないので、データが莫大で一つずつセルを指定すると式的にも入力の時間的にも大幅に省略することができます。一連のデータが全て数値で、ある場合には非常に便利な方法です。

まとめ

Sum関数はエクセルでも多用する関数なので、いろいろな使い方があると思います。これはただの使い方だけを紹介しているので、さらに考察を今後はしていこうかと思います。