FX初心者のOLミヅキが、Excelを使ってシステムトレードを1から作っていく過程を随時更新します☆
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
毎年の勝率は、過去1年間の勝率の関数の「日付の条件」をちょこっといじるだけでできました♪
=1-(SUMPRODUCT((損益の列<0)*(YEAR(日付の列)=成績表の年数のセル))/その年の総トレード数)
あまり悩まずに関数ができると、怖いものナシな気分になりますね~!
「もう完璧!」みたいな( *´艸`)
まぁ、それも束の間の己惚れなわけですが。
応援して頂ける方はクリックお願いします!
人気ブログランキングにも登録中☆
=1-(SUMPRODUCT((損益の列<0)*(YEAR(日付の列)=成績表の年数のセル))/その年の総トレード数)
あまり悩まずに関数ができると、怖いものナシな気分になりますね~!
「もう完璧!」みたいな( *´艸`)
まぁ、それも束の間の己惚れなわけですが。
応援して頂ける方はクリックお願いします!
人気ブログランキングにも登録中☆
PR
各年ごとの総トレード数です。
ここから表示形式を変えた年数が活躍します☆
最近1年間のときと同じようにSUMPRODUCT関数を使って、日付の条件を「日付の列の年数が表の年と同じ」という条件に変更すればOKです。
計算式はコチラ。
=SUMPRODUCT((損益の列<>"")*(YEAR(日付の列)=成績表の年数のセル))
今度はドラッグすれば、全ての年の結果が1発で出るはずです(`・ω・´)
応援して頂ける方はクリックお願いします!
人気ブログランキングにも登録中☆
ここから表示形式を変えた年数が活躍します☆
最近1年間のときと同じようにSUMPRODUCT関数を使って、日付の条件を「日付の列の年数が表の年と同じ」という条件に変更すればOKです。
計算式はコチラ。
=SUMPRODUCT((損益の列<>"")*(YEAR(日付の列)=成績表の年数のセル))
今度はドラッグすれば、全ての年の結果が1発で出るはずです(`・ω・´)
応援して頂ける方はクリックお願いします!
人気ブログランキングにも登録中☆
さっき年数の表示形式を変えたとこですが、ココではまだ使いません(笑)
たとえば、2006年の通算損益の合計を出すとき、気分的には「日付の年が2006のときの損益の合計値」と出したいところなのですが、いろいろ調査したところ「2006年1月1日以降の損益の合計から2007年1月1日以降の損益の合計を引く」という方法が一番一般的なようです。
式にするとこうなります。
=SUMIF(日付の列,">=2006/1/1",損益の列)-SUMIF(日付の列,">=2007/1/1",損益の列)
これを2002年までドラッグして、各年ごとに計算式の年数を修正していきます。
ドラッグ1発(なんか麻薬みたいだ)で各年の計算値が出るような式にするにはどうすればいいのかな・・・(´ω`)
応援して頂ける方はクリックお願いします!
人気ブログランキングにも登録中☆
たとえば、2006年の通算損益の合計を出すとき、気分的には「日付の年が2006のときの損益の合計値」と出したいところなのですが、いろいろ調査したところ「2006年1月1日以降の損益の合計から2007年1月1日以降の損益の合計を引く」という方法が一番一般的なようです。
式にするとこうなります。
=SUMIF(日付の列,">=2006/1/1",損益の列)-SUMIF(日付の列,">=2007/1/1",損益の列)
これを2002年までドラッグして、各年ごとに計算式の年数を修正していきます。
ドラッグ1発(なんか麻薬みたいだ)で各年の計算値が出るような式にするにはどうすればいいのかな・・・(´ω`)
応援して頂ける方はクリックお願いします!
人気ブログランキングにも登録中☆
システムは着々と出来ていくものの、思うような成績がなかなか出ませんね。。
別の指標を使ってみたら・・・とかいろいろ寄り道してて、なかなかブログの更新に至りませんorz
でも、コメントを頂いたりランキングにポイントが入っていたりすると、「頑張って完成させなくては!」という気力が湧いてきます!
まだまだこれから!頑張るぞっ(*`ω´)ノ
応援して頂ける方はクリックお願いします!
人気ブログランキングにも登録中☆
別の指標を使ってみたら・・・とかいろいろ寄り道してて、なかなかブログの更新に至りませんorz
でも、コメントを頂いたりランキングにポイントが入っていたりすると、「頑張って完成させなくては!」という気力が湧いてきます!
まだまだこれから!頑張るぞっ(*`ω´)ノ
応援して頂ける方はクリックお願いします!
人気ブログランキングにも登録中☆
過去1年間の成績を一通り出したところで、次は同じ項目の過去5年間の毎年の成績が表示されるようにしていきます。
まず、表の年数を数式の中で使いたいので、「XXXX年」を「XXXX」という数字のセルと認識されるように、表示形式を変更します。
年数の入ったセル全体をドラッグでアクティブにして、コンテキストメニューの「セルの書式設定」を選択します。
開いたウィンドウの一番左の「表示形式」タブの「分類」という項目から「ユーザー定義」を選択。
「種類」の項目に「0"年"」と入力します。
これで、表示は「年」とついていても、数式でセルを参照した場合には数字のセルとして認識されます☆
応援して頂ける方はクリックお願いします!
人気ブログランキングにも登録中☆
まず、表の年数を数式の中で使いたいので、「XXXX年」を「XXXX」という数字のセルと認識されるように、表示形式を変更します。
年数の入ったセル全体をドラッグでアクティブにして、コンテキストメニューの「セルの書式設定」を選択します。
開いたウィンドウの一番左の「表示形式」タブの「分類」という項目から「ユーザー定義」を選択。
「種類」の項目に「0"年"」と入力します。
これで、表示は「年」とついていても、数式でセルを参照した場合には数字のセルとして認識されます☆
応援して頂ける方はクリックお願いします!
人気ブログランキングにも登録中☆
ここ1年間でお金がどのぐらい増えたかを出します。
最終的に成績で一番優先したいのはこの数値だと思っています。
出し方は、時系列表の資産推移を使って「現在の資産を1年前の日付の資産で割る」というふうに出します。
元本がいくらでスタートしても増える割合は同じなので、時系列シートを作るときに作った資産推移の列をそのまま使っても数字は出ると思います。
が、グラフにしたときにスタートの金額を合わせるために、1年前の資産が10万円となる列を新たに作りました。
単利も複利も同じように出すので、まずははじめに作った資産推移欄をそのままコピーして、式だけ書き換えていきます。
=IF(日付のセル=LOOKUP(TODAY()-365,日付の列),100000,元の式)
(本日から365日遡った日付(なければ過去の最も近い日付)の場合は100,000を、それ以外は資産推移の計算結果を表示する)
LOOKUP関数のカッコの中に日付の列が2つ入力されてますが、必要ありませんでした^^;
どちらも計算結果は変わりません。
複利計算についても同様に書き換えます。
ポジション数は参照セルがコピー元のセルのままになっていないか確認します。
書き換えた式を列全体にドラッグすると、1年前の日付のセルが10万になって、そこから資産推移の計算が改めて始まります。
これで準備が出来たので、いよいよ成績欄に年利率を計算する式を入力します。
=(LOOKUP(TODAY(),日付の列,資産推移の列)-100000)/100000
ここでもLOOKUP関数を使います。
複利のほうも、そのまま隣のセルに同じ数式をコピーして、資産推移の列を複利の方に変えてしまえばOKです☆
応援して頂ける方はクリックお願いします!
人気ブログランキングにも登録中☆
最終的に成績で一番優先したいのはこの数値だと思っています。
出し方は、時系列表の資産推移を使って「現在の資産を1年前の日付の資産で割る」というふうに出します。
元本がいくらでスタートしても増える割合は同じなので、時系列シートを作るときに作った資産推移の列をそのまま使っても数字は出ると思います。
が、グラフにしたときにスタートの金額を合わせるために、1年前の資産が10万円となる列を新たに作りました。
単利も複利も同じように出すので、まずははじめに作った資産推移欄をそのままコピーして、式だけ書き換えていきます。
=IF(日付のセル=LOOKUP(TODAY()-365,日付の列),100000,元の式)
(本日から365日遡った日付(なければ過去の最も近い日付)の場合は100,000を、それ以外は資産推移の計算結果を表示する)
LOOKUP関数のカッコの中に日付の列が2つ入力されてますが、必要ありませんでした^^;
どちらも計算結果は変わりません。
複利計算についても同様に書き換えます。
ポジション数は参照セルがコピー元のセルのままになっていないか確認します。
書き換えた式を列全体にドラッグすると、1年前の日付のセルが10万になって、そこから資産推移の計算が改めて始まります。
これで準備が出来たので、いよいよ成績欄に年利率を計算する式を入力します。
=(LOOKUP(TODAY(),日付の列,資産推移の列)-100000)/100000
ここでもLOOKUP関数を使います。
複利のほうも、そのまま隣のセルに同じ数式をコピーして、資産推移の列を複利の方に変えてしまえばOKです☆
応援して頂ける方はクリックお願いします!
人気ブログランキングにも登録中☆
なにかと忙しくて更新できませんでした。
そして風邪ひいてしまって会社をはやめにあがりましたヽ(´ー`)ノ
最近1日1ゲームパンヤをやったりしてます。
何年か前にちょこっとやったきりルーキーAのままおいてあったんですが、久々にやるとコースは増えてるわやり方忘れてるわでさっぱりです^-^;;
さて、システムの続きやらなくては。
応援して頂ける方はクリックお願いします!
人気ブログランキングにも登録中☆
そして風邪ひいてしまって会社をはやめにあがりましたヽ(´ー`)ノ
最近1日1ゲームパンヤをやったりしてます。
何年か前にちょこっとやったきりルーキーAのままおいてあったんですが、久々にやるとコースは増えてるわやり方忘れてるわでさっぱりです^-^;;
さて、システムの続きやらなくては。
応援して頂ける方はクリックお願いします!
人気ブログランキングにも登録中☆
成績の計算式は無事に全部出たんですが、あとからもっとスマートなやり方が見つかったときって、やっぱり修正したいですよね。
でも、途中の式を後から修正すると、順番が狂っちゃう・・・
最初から全てがスマートなやり方でまとめられるとは思ってないんですが、まとめられないものをどうやって順序よく説明していくかって、もともと整理の苦手な私にとってはエクセルよりも難題かも(´ω`)
もうちょっとキリのいいところまでいったら、まとめのページを作ろうと思います。
しかし、INV@ST の「e-profit FX」というツールはすごく便利です。
これで分足、時間足、日足、週足、月足・・・ と、過去のデータを見れるのですが、データがそのままエクセルに落とせることを数日前に初めて知りました。
コンテキストメニューが出なかったからコピーできないと思ってたら、「Ctrl+C」であっさりコピペできてしまいました。
先日コメントでredさんが指摘してくださった「データの誤差」は、これで解決できそうです!
私は複数の口座を持っていないのでよくわからないですが、大抵の業者って時系列データの取得ができるようになってるんでしょうか?
円安に戻ってきてちょっと焦り気味ですが、ぼちぼち頑張ろうと思います。
応援して頂ける方はクリックお願いします!
人気ブログランキングにも登録中☆
でも、途中の式を後から修正すると、順番が狂っちゃう・・・
最初から全てがスマートなやり方でまとめられるとは思ってないんですが、まとめられないものをどうやって順序よく説明していくかって、もともと整理の苦手な私にとってはエクセルよりも難題かも(´ω`)
もうちょっとキリのいいところまでいったら、まとめのページを作ろうと思います。
しかし、INV@ST の「e-profit FX」というツールはすごく便利です。
これで分足、時間足、日足、週足、月足・・・ と、過去のデータを見れるのですが、データがそのままエクセルに落とせることを数日前に初めて知りました。
コンテキストメニューが出なかったからコピーできないと思ってたら、「Ctrl+C」であっさりコピペできてしまいました。
先日コメントでredさんが指摘してくださった「データの誤差」は、これで解決できそうです!
私は複数の口座を持っていないのでよくわからないですが、大抵の業者って時系列データの取得ができるようになってるんでしょうか?
円安に戻ってきてちょっと焦り気味ですが、ぼちぼち頑張ろうと思います。
応援して頂ける方はクリックお願いします!
人気ブログランキングにも登録中☆
ココからは、エクセルの知識がほとんどない私にはかなり難題でした^^;
「本日から遡って365日よりも後」という条件の範囲での「損益の最大値」 です。
理屈はわかっているのですが、なかなか思うような数字が出てくれません。
結論から言うと、「配列数式」というものを使うようです。
Ctrl+Shift を押しながら Enter で計算結果が違うなんて、目からウロコですよ@@;
詳しくは、各自ぐぐってください。(まさかの人任せっ!)
実際に入力する数式としては、これが正解のようです。
{=MAX(IF(日付の列>TODAY()-365,損益の列,""))}
(「日付が本日から遡って365日より後の場合はその日の損益、それ以外の場合は空白」としてできた配列の中の最大値)
ちなみに、配列数式の {} は、セルの内容を修正したりすると、その都度 Ctrl+Shift+Enter で確定しないと消えてしまいます。
最小値に関しては、最大値の「MAX」を「MIN」に変えるだけです☆
更に、最大DDは最小値の式の「損益の列」を「DDの列」に変えればOKです。
このへんは1つ出来てしまえばカンタンですねヽ(´ー`)ノ
応援して頂ける方はクリックお願いします!
人気ブログランキングにも登録中☆
「本日から遡って365日よりも後」という条件の範囲での「損益の最大値」 です。
理屈はわかっているのですが、なかなか思うような数字が出てくれません。
結論から言うと、「配列数式」というものを使うようです。
Ctrl+Shift を押しながら Enter で計算結果が違うなんて、目からウロコですよ@@;
詳しくは、各自ぐぐってください。(まさかの人任せっ!)
実際に入力する数式としては、これが正解のようです。
{=MAX(IF(日付の列>TODAY()-365,損益の列,""))}
(「日付が本日から遡って365日より後の場合はその日の損益、それ以外の場合は空白」としてできた配列の中の最大値)
ちなみに、配列数式の {} は、セルの内容を修正したりすると、その都度 Ctrl+Shift+Enter で確定しないと消えてしまいます。
最小値に関しては、最大値の「MAX」を「MIN」に変えるだけです☆
更に、最大DDは最小値の式の「損益の列」を「DDの列」に変えればOKです。
このへんは1つ出来てしまえばカンタンですねヽ(´ー`)ノ
応援して頂ける方はクリックお願いします!
人気ブログランキングにも登録中☆
お次は「勝率」です。 全てのトレードのうち、利益が出たトレードの割合です。
計算は「勝ちトレード数/総トレード数」なので、単純に考えると「損益が0より大きい」という条件で総トレード数と同じやり方でカウントした数字を、総トレード数で割ってしまえば良いわけです。
そうすると、計算式はこうなるはずです。
=SUMPRODUCT((損益の列>0)*(日付の列>TODAY()-365))/総トレード数
しかし、なぜかこれでは答が合いません。。
いろいろと調べた結果、不等号を使うと空白のセルが「0以上のセル」としてカウントされてしまうようなのです。
なので、「損益が0より小さいセルの数」から求めることにしました。
100%から負けた確立を引いてしまえばいいわけです。
ただし、損益が±0だった場合も「勝ち」に含まれることになります。
私の場合、勝率は安定性を見るための目安のつもりなので、問題ないかなと思ってます(´・ω・`)
というわけで、採用した計算式はコチラ↓
=1-(SUMPRODUCT((損益の列<0)*(日付の列>TODAY()-365))/総トレード数)
ちなみに、表示形式はパーセンテージに変更しています!
もっとカンタンに出す方法あるよ!っていう情報があったら是非教えてくださいm(_ _)m
応援して頂ける方はクリックお願いします!
人気ブログランキングにも登録中☆
計算は「勝ちトレード数/総トレード数」なので、単純に考えると「損益が0より大きい」という条件で総トレード数と同じやり方でカウントした数字を、総トレード数で割ってしまえば良いわけです。
そうすると、計算式はこうなるはずです。
=SUMPRODUCT((損益の列>0)*(日付の列>TODAY()-365))/総トレード数
しかし、なぜかこれでは答が合いません。。
いろいろと調べた結果、不等号を使うと空白のセルが「0以上のセル」としてカウントされてしまうようなのです。
なので、「損益が0より小さいセルの数」から求めることにしました。
100%から負けた確立を引いてしまえばいいわけです。
ただし、損益が±0だった場合も「勝ち」に含まれることになります。
私の場合、勝率は安定性を見るための目安のつもりなので、問題ないかなと思ってます(´・ω・`)
というわけで、採用した計算式はコチラ↓
=1-(SUMPRODUCT((損益の列<0)*(日付の列>TODAY()-365))/総トレード数)
ちなみに、表示形式はパーセンテージに変更しています!
もっとカンタンに出す方法あるよ!っていう情報があったら是非教えてくださいm(_ _)m
応援して頂ける方はクリックお願いします!
人気ブログランキングにも登録中☆