2014年10月6日月曜日

日足で実体の割合の高い通貨ペアはあるか

通貨ペアによって、一方通行になりやすかったり、行ったと見せかけて結局元の水準に戻りやすかったりという違いがあるのではないかと思ったのがきっかけで、複数の通貨ペアに対し、日足の長さ、実体の長さ、日足全体における実体の割合についてデータ分析してみた。
例えば、ローソク足に対して実体の割合が小さければ、それは行ったり来たりしながら結局元の水準に戻ったケースが考えられるし、逆に実体の割合が比較的高い通貨ペアであれば、1日の中でトレンドが出やすい通貨ペアと考えられる。これらのいずれかの特徴を持つ通貨ペアが見つかれば、たとえば順張り、逆張りなど、トレードに生かせるかもしれない。
以下、この点についての分析の記録。
ちなみに、この疑問に対する結果だけを書くと、「見つからなかった」。

使用データ
ブローカー: FXCC
通貨ペア: USD/JPY, USD/CAD, NZD/USD, GBP/USD, GBP/JPY, EUR/USD, EUR/JPY, EUR/AUD, AUD/USD, AUD/JPY
期間: 2007.01.02~2014.10.03
タイムフレーム: 日足
本数: 2044本、ただしEUR/USDは2017本(日足データ欠損)

分析に使用したスプレッドシートはこちらでダウンロード可。

方法と結果
各通貨ペアの各日足に対し、「始値と終値のpips差(実体の長さ)」と「高値と安値のpips差(日足全体の長さ)」を求め、その両者に対して月別平均を求めた。それぞれのシート名は 1d_O-C、1d_H-L。
次に上記で求めた各通貨ペアの各月の日足実体長さ平均を、日足長さ平均で割り、月別の実体割合を求めた。シート名 1d_OC-HL。
それをグラフ化したのがこれ↓
日足における実体の割合の月次推移
わけがわからないよ!ということで同様の処理を今度は年別に行ってみた。シート名 1d_O-C_year, 1d_H-L_year, 1d_OC-HL_year。
それをグラフ化したのがこれ↓
日足における実体の割合の年次推移
今度はまともに見られるグラフになった。結果、今回の対象通貨ペアでは、際立って実体の割合が大きいまたは小さい通貨ペアはなかった。
一応、月別のデータで分散分析をしてみたが有意確率pが約7.9%と、微妙な結果だった(対象ペアの中で、もっとも違いがありそうな2ペアを取ってみても、「違いがあるかもしれない」程度の結果)。シート名 1d_OC-HL_anova



通貨ペア別ではなく、先ほどの年次推移グラフを全体として見てみると(一応、グラフでは黒線が平均)、2007年、2008年は実体割合が高かったがその後は0.5をやや下回る程度で推移。「昔はトレンドの出る日が多かった・・・」ということか。

なお、最初の月次推移のグラフはごちゃごちゃで意味不明だったが、直近1年の月次推移は以下のとおり(シート名 1d_OC-HL)
日足における実体の割合の月次推移(直近1年)
これでもごちゃごちゃしているが、今年9月に入って実体の割合が高くなっており、1日の中でトレンドが出ることが多くなったと言える。
※9月に入って(誰もが体感している通り)各ペアで値幅が出てきているが、このグラフの結果はそれとは別に、日足全体に対する実体の割合も高くなっていることを表している。日足の長さと実体の割合の関係についてはまた後日。

なお、実体割合を出す過程で求めた、日足の長さの年別平均と、実体の長さの年別平均のグラフも以下のとおり
(シート名:順に 1d_H-L_year, 1d_O-C_year)


日足の長さの年次推移
日足実体の長さの年次推移
「昔は値幅があって良かった・・・」という結果。また、2013年もアベノミクスで特に円ペアの値幅が著しく上昇している。



2014年10月4日土曜日

時間帯別の価格変動(5分足)

前回の記事「時間帯別の価格変動」では1時間足を使用したが、5分足でも同様のデータを取ってみた。これにより、指標による影響をある程度切り分けることができる。
データファイルのダウンロードはこちら。

内容は基本的に前回の記事と同じ。主な違いは以下のとおり。
期間: 2013.12.13~2014.10.02
通貨ペア: USD/JPY, EUR/USD, EUR/JPY

また、指標の時間帯はグラフがスパイクになってしまうので、00分と30分のデータを取り除いた(Excelファイルでは「~(2)」となっているタブ)

値幅グラフ



上記のどのペアでも、サーバー時間15時ちょい過ぎから18時過ぎくらいまでが最も活発。
日本時間にすると、欧米が夏時間の期間は21時~24時、通常時間の期間は22時~翌1時。
これは欧州午後とNY午前が重なる時間帯。
また、サーバー時間9時からも活発になる。これはロンドンの7時にあたるので、思ったより早く値幅が出る印象(ロンドン9時から本格的に値幅が出ると思ってた)。


変動係数(CV)グラフ



スパイクの解釈はおいといて、サーバー時間0時~3時前までが、動く日と動かない日の落差が大きい。普段あまり動いていない時間帯だが、もしやるなら日本時間の7時頃にチャートを見てみて、動意がありそうならトレード、そうでないなら閉じる、というのもいいかもしれない。

2014年10月2日木曜日

時間帯別の価格変動

動きのある時間帯や動かない時間帯は感覚的にわかるものの、深夜でも意外と動くことがあるので実際にデータで集計してみました。
以下、詳細と結果です。
データファイルはダウンロードできます。


詳細

・通貨ペア:AUD/JPY, AUD/USD, EUR/AUD, EUR/JPY, EUR/JSD, GBP/JPY, GBP/USD, USD/JPY
・期間:2013.10.1~2014.9.30
・タイムフレーム:1時間足
・ブローカー:FXCC

上記のヒストリカルデータの各足の高値と安値のpips差(以下「値幅」)を、各時間ごとに集計して平均を求めた。
また、日ごとのばらつきを見るために変動係数も求めた(後述)。


結果


※グラフの時間はFXCCのサーバー時間(日足5本)。
日本時間との差は、通常時間(冬時間)はグラフの時刻+7時間が日本、夏時間ではグラフの時刻+6時間が日本。


※例えばどのペアでも14:00→15:00で上昇しているが、これは「14:00から15:00にかけて値幅が出てくる」という意味ではなく、「14:00からの時間足(14:00~15:00)よりも15:00からの時間足(15:00~16:00)の方が値幅がある」という意味。

※指標がよくある時間帯は平均値幅も大きくなる。

よく言われていることも含め、確認できたこと:
・東京、ロンドン、NYの各市場の開始直後は値幅が大きい。
・通貨ペアによって値幅の大きい市場は異なる(アジア通貨はアジア時間、など)
・GBP/JPY, EUR/AUD は一日を通じて値幅が大きい
・USD/JPYは欧州開始直後も東京開始直後も値幅は同じくらい
・NYクローズから欧州が始まるまではEUR/USDの値幅はほとんどない


また、日によってばらつきが出やすい時間帯を見るために、各時間帯の変動係数も求めてみた。ざっくり言って、この値が大きいほど、その時間帯は動く日と動かない日の落差が激しいと言える。

サーバー時間21:00~22:00の1時間が意外と大きかった。日本の午前3:00~4:00または4:00~5:00、「普段は動かないけれどたまに大きく動く」と言える。
(追記:これ、単にFOMCがある日とない日の落差が大きいだけですね)
なお、指標が絡む時間帯は、指標のある日とない日で違いがあるので変動係数が大きい。


2014年9月10日水曜日

accela.ahkにアラート追加(あと長方形も)

faiさんのAccela.ahk(またはその後続スクリプト)にアラートを追加する方法

ショートカットを追加する方法はfaiさんのサイト内で書かれていますが、アラートの追加はちょっと特殊だったのでここに書いておきます。(もしかしたらもっといい方法があるかもしれませんが、まあとりあえずこれで動いているので。。。)

次のスクリプトをAccela.ahk内の適当な所(正確には #IfWinActive で囲まれた範囲)にコピペしてください(その後「Reload this script」)。チャート内でAキーを押せばその価格にアラートが設定されます。ただし、その時のカーソル位置がインジやラインなどと被っていると失敗します。何もないチャート上でAキーを押す必要があります。

A::
   Send, {LButton}{RButton}
   PostMessage, 0x111,38205,0 ;アラート
   Send, {Esc}
   return

「A::」のAを変更すれば他の好きなキーに設定できます。
既にAキーが他のショートカットに使われている場合は、それを削除するか、行頭にセミコロン「;」を付けて無効化してください。
たとえばAccela.ahkであれば、元々Aキーは「A::Send !a」で使われているので、

;A::Send !a

とすればその行はコメントとみなされて無効になります。

一応、動作説明・・・左クリック→右クリック→アラートのコマンド送信→Escキー、という動作をします。
どうやらアラートはチャート上を右クリックしてコンテクストメニューを表示させた状態じゃないと出ないっぽいのでまずは右クリック、としたいところですが、例えば十字線を表示させている状態で右クリックしてもその十字線が消えるだけでメニューが表示されないので、まずは左クリックでそれをキャンセルし、その後右クリック。最後はEscキーでメニュー表示を消しています。

おまけ:
私は注目箇所に印を付けるのに長方形もよく使うので、ついでにそれも書いておきます。Rキーで長方形を描けます。

R::PostMessage, 0x111,33247,0 ;長方形

2014年6月15日日曜日

逆張りは有利か

上でも下でも、突然にゅっと伸びた足が出現した時、その次の足も引き続き伸びることもそりゃあるけれど、結構次の足は逆方向に行くんじゃないかと思って調べてみた結果の記録。
実際には各通貨のKu-Powerに対して去年調べたのだけれど、今回はいくつかの通貨ペアを対象に。

具体的には、伸びた足が出現した時、その次の足の始値で逆張りエントリーして、その足の終値で決済。もしくは、終値で決済せず、エントリールールだけで途転を繰り返す(=今ポジを持っている方向に伸びる足が出たら、その次の足の始値で現ポジを決済して途転)。


詳細

「伸びた足」かどうかの判断
過去100本の足の各「終値ー始値」が正規分布しているとみなし、現在の足の実体の長さがある一定の確率以下でしか出現しないほど長いかどうかで判断。たとえば、長さ10pipsの陽線が出た時、過去100本の足の長さの分布からしてその確率(長さ10pips以上の陽線が出る確率)が0.15だったとすると、エントリー基準となる確率を0.2以下としていた場合は次の足でショートエントリー。エントリー基準となる確率を0.1以下としていた場合は見送り。
エクセルの関数的には normdist(<現在の足>, <過去100本の平均>, <過去100本の標準偏差>)で確率判断。

注: 終値-始値
作業を簡単にするため、実際には隣り合う足の始値どうしの差。週超えの窓の影響を受けるが、まあ誤差の範囲だと思うことにした。

使用したデータ
FXCC 2014.06.14時点
eur/aud, eur/usd, eur/jpy, gbp/jpy, usd/jpy
15m, 1h, 4h各2001本ずつ

決済方法 - 2通り
1.エントリーした足の次の足の始値で決済。
2. 次の逆方向のエントリーサインが出るまで放置。逆方向のエントリーサインが出た場合は途転エントリー。

スプレッド: ひとまず考慮しない


結果

たぶん使えない程度には有利。
5ペア×3タイムフレーム×2決済方法×任意のエントリー基準(確率0~0.5)の組み合わせ方があるが、プラスになっている事の方が多い。確率0.25あたりが比較的好成績。4回に1回くらいはありそうな長さの足が出たら次の足で逆張りするのが有利、ということになる。確率にどの値を入れても大抵ちょいプラスになる。・・・が、しかし1回のエントリーあたり平均獲得pipsからスプレッドを差し引くと、これ単体では実用的ではない。というよりスプレッド引いたらマイナスになるんじゃないかという程度。組み合わせによっては好成績のものもあるけれど、単なるカーブフィッティングくさい。
決済パターン2に関しては、確率0.01とか低確率の場合で好成績が見られたりしたけれど、低確率のパターン2はリスク高すぎる。別のパターンの決済方法や、もしくはより詳細に分析すれば通貨ペアの癖が見つかるかもしれない。

使用したファイルはこちら
https://drive.google.com/file/d/0B8eOl0Vg69lRVmRmMlozS0lZbUk/edit?usp=sharing
(左上のファイル→ダウンロード)
「all」タブの「片側確率=」の右のセル(B2)に0~0.5の値を入力。ここで入力した確率以下でしか現れないような長さの足が出たときにエントリー。
「15m-1」は15分足・決済パターン1の意味。
「all」タブ以外は計算用なので基本使いません。

2014年6月11日水曜日

FT2用Accela.ahk

faiさんが公開されているMT4用ショートカットスクリプトAccela.ahkのForex Tester 2版を作ってみました。
Hキーを押すだけで水平線を引く、などができます。

https://drive.google.com/file/d/0B8eOl0Vg69lRQzdxdVdlcTExRkE/edit?usp=sharing

以下のように割り当てています。

C -> クロスカーソル
E -> テキストボックス
F -> フィボナッチ
H -> 水平線
S -> 画像保存
T -> Ray(MT4のトレンドラインに相当)
V -> 垂直線
R -> 長方形
1~9キー -> 順に、1分足、5分足、15分足、30分足、1時間足、4時間足、日足、週足、月足

2013年10月20日日曜日

PIVOT検証第2弾

※これは2013.10.20に自分の旧ブログに書いたものです。

前回のPIVOT検証ではPIVOTは跳ね返りやすいとはいえない、という結論に至った。
ただ、大雑把な検証だったので今回はより詳細に検証してみた。
  • 検証に使用したペアはユロドル
  • 期間は2013.04.01-09.27(サマータイムの約半年間)
  • サーバー時間はGMT+3(サマータイムはこの設定で日足5本になる)
  • デイリー
この条件のもと、
・反発と抜けの判定pipsを変えたり、
・ピボットポイントに接触したとみなす範囲(ピボットポイントから±1pipなど)を変えたり、
・一度使用したピボットポイントはその日の内は再び使用しないようにしてみたり、
・取引時間を東京、欧州、米国で変えてみたり、
・使用するピボットポイントを限定してみたり(S3,R3は使用しない、など)と、
色々変化させて、実際のピボットとは値をずらした比較用の偽のピボットと比較してみたが、結果に差は見られなかった(一応、色々とパラメータを変えると本物の結果が一番良くなるようにもできるが、これはただのカーブフィッティング)。
なお、前回の検証時に結果が良かったドル円、ポンド円も期間を長く取ったら全然だった。

このことから、少なくともピボットは単純な「反発しやすいポイント」としては使用できないと言える。
まあ、考えてみれば至極当たり前で、もし単純に反発しやすいのなら簡単なEA作れば(もしくは裁量でも)誰でも億万長者だし。
とはいえ、まったく役に立たないと結論付けるのは性急で、他の何らかの条件・パターンと組み合わせた場合に違いが出る可能性はある。また、反発以外の目的で使用できる可能性もある。


それでもやはり、普段チャートに表示させているとよく跳ね返っているように見える。
これは気のせいなのだろうか、それとも脳はEAでの検証に落とし込めていない何かを感じ取っているのだろうか?
これを調べるため、本物のピボットを表示させたチャート1つと、わざと一定幅(+20, +10, -15pips)ずらしたピボットを表示させたチャート3つをシャッフルして並べてそれぞれ別の期間を表示させ、正しいものを当てられるかテストしてみた。


こんな感じ
各チャートをそれぞれ2~3か月分くらい見てみたが、結果は全然ダメ。やっぱりどれもそれなりに機能しているように見えてしまう。
そんなわけで、少なくとも今の自分にはピボットは優位性をもたらさないことがわかった。
ただ、今はまだ優位性に気づいていないだけかもしれないので一応表示はさせておく。