スプレッドは片道分→オープンのときのみ影響するということではない
私が販売しているEA「WildCatSniper」にはオープンのときだけでなく、クローズのときにもスプレッドを見てスプレッドが広がっているときにはクローズしないようにしています。
これについてコメントで「なぜクローズのときにもスプレッドを見ているのか」と聞かれまして・・・
開発当時に「クローズのときにも見る必要がある」と判断したからなのですが、どうしてそのような結論に至ったのか思い出せませんでした。
そこで、「クローズのときはスプレッドは無関係かもしれない(私が間違っているかもしれない)」と思い、調べてみました。
※クローズ時のスプレッドチェックについて、また私が理由を忘れて「どうしてこういう作りにしたのだろうか・・・?」と混乱しないためにブログに残しておくことにしました。
スプレッドは片道分(1回だけ)
ここで「片道分だけ」という回答をみて更に疑惑が深まり、「オープン(片道)のときだけ気にすれば良いのかも!」と考えたのですが・・・
その後、風呂に入りながら頭の中でシミュレーションして「やはり両方(往復で)影響するんじゃないか」という結論には至りました。
スプレッドが変動しないという前提であれば、Yahoo知恵袋で回答のあったとおり、1トレードで支払うことになるスプレッドは確かに1回分(売買当時のスプレッド分)ですが、スプレッドが拡大する場合は話が変わってきます。
買いで入ってスプレッドが拡大
Askが100.00円でスプレッドが1pipsの場合、Bidは99.99円。買いで入ってすぐに売れば1pipsの損失です。
このときにスプレッドが2pipsに拡大してAskが100.01円になっても売値は99.99円のままですから1pipsの損失で済みます。
売りで入ってスプレッドが拡大
Bidが100.00円でスプレッドが1pipsの場合、Askは100.01円。売りで入ってすぐに買い戻せば1pipsの損失です。
このときにスプレッドが2pipsに拡大してAskが100.02円になると、買い戻しで発生する損失は2pipsになります。
「オープンのみ影響する」という考えはこれで消えました。(買いで入ってAskだけが拡大した例のように「クローズ時にスプレッドの拡大が影響しない」こともありえます)
実際にはAskやBidが固定されているわけではない
考えてみれば当然のことだったのですが、Bidを中心にして「スプレッドの拡大=Askが変わる」という考え方は間違っていて、AskもBidも動いていてその差がスプレッドです。
株式市場にある板を想像すると分かりやすいのですが、買いが殺到して売り出されている注文を約定させていけばAskは上がります。逆に売りが殺到すればBidが下がります。
100.02 10000枚の売り
100.01 20000枚の売り
100.00 Ask
99.99 Bid ※スプレッド1.0
99.98 20000枚の買い
99.97 10000枚の買い
↓買い殺到で100.2円までの売りがなくなった
100.02 Ask
100.01
100.00
99.99 Bid ※スプレッド3.0
99.98 20000枚の買い
99.97 10000枚の買い
価格が上がれば売りたい人が増えるので、この乖離はすぐに解消されていくと思います。
逆に売りが殺到するケースを考えてみます。
100.02 10000枚の売り
100.01 20000枚の売り
100.00 Ask
99.99 Bid ※スプレッド1.0
99.98 20000枚の買い
99.97 10000枚の買い
↓売り殺到で100円までの売りがなくなった
100.02 10000枚の売り
100.01 20000枚の売り
100.00 Ask
99.99
99.98
99.97 Bid ※スプレッド3.0
※実際にはAskだけ、Bidだけが動くというケースは少なく、両方動くはずです。スプレッドとはそのときのAskとBidの差でしかありません。
念のため、TitanFXのサポートに確認
一応、確認のためにTitanFXのサポートに問い合わせを出しまして・・・
クローズの際はクローズ時のスプレッドが影響します。
という回答をいただきました‥。(もう少し突っ込んだ話をしたかったのですが、迷惑そうなのでやめました‥)
オープン/クローズ両方でスプレッドを確認することの意味
買いで入ってBidが動かずAskだけが拡大したケースなど、極稀なケースではスプレッドの拡大が無関係になることはありえます。
この問題(勝手に私が問題と思っただけです)が、複雑になったのは「オープンのときには1.0pipsだった。クローズのときに2.0pipsになった。」場合のスプレッドの損失が状況によって変動するためです。
1.0pipsで済むかもしれませんし、2.0pipsになるかもしれません。・・・大抵の場合、1.0pips~2.0pipsの間のいずれかになると思います。
逆に「オープンのときは2.0pipsで、クローズのときに1.0pipsになった」場合も、大抵の場合は1.0pips~2.0pipsの間のいずれかになると思います。
ほとんどの場合「スプレッドの拡大」は「トレーダーに不利な状況」になりますから、オープンの時にもクローズの時にもスプレッドを確認することは「誤りではない」という結論に落ち着きました。
(スプレッドが広がったとしてもクローズ条件に達していればクローズするべき、という状況もあるかと思いますが、WildCatSniperのように早朝仕掛ける手法では、早朝のスプレッドは不安定になっていることが多く、少し待つだけでクローズするタイミングがある‥と考えて作っているため、このような実装になっています。「今はスプレッドを無視してでも閉じるべき」「今回はスプレッドが安定するまで待つべき」と、臨機応変に対応できれば一番良いのですが、プログラムで対応するのはなかなか難しいです‥。)
というわけで。オープンの時にも、クローズの時にも「スプレッドが広がりやすい状況」のときには気をつけてトレードしましょう!
コメント
フリー版も使っています。
私もどっちがいいか迷っていました。
例えば、買いエントリーしてクローズ条件に満たした場合
①スプレッド変わらない場合→バックテストと同じ結果
②スプレッドが大きい場合→余分に損をする
ここで②の場合ですが条件を満たしたから閉じたほうがいいのか?それとも
スプレッドが落ち着いてクローズ条件を満たしたら閉じたほうがいいのか?
難しい・・
コメントありがとうございます。
通常のようにスプレッドに顕著な拡大がなければクローズ条件を満たした時点で閉じるべきと思うのですが、早朝や指標発表のようなときはとんでもないスプレッドになっていることがあり・・
どちらが良いか、というのはケースバイケースでなかなか難しいでよね‥。
すみません
買いエントリーではなく売りエントリーの間違いでした
「ポジションクローズ時にスプレッドも勘案していますが、理由があるのでしょうか?」
と、質問したものです。
真意はスプレッドフィルターでなぜ機会損失するのかわからなかったので質問しました。
例として、
ポジションを取った直後、20pips動いて、スプレッドは10pipsです。
このとき、TPが8pipsであれば利確できますが、80pipsの場合、スプレッドフィルターに引っかかって、利確できなく、また、決済タイミングが伸びます。
WildCatSniperはこのケースを許容する想定だと解答いただいたので、もったいないなあと思いつつ、「お騒がせしました。」と閉じた次第です。