cAlgo API リファレンス

cAlgoの発注メソッド(番外編) ~StopLimitOrder(ストップリミット注文)って何?~

2020年10月30日

待機注文3つの違い

待機注文にはLimitOrder,StopOrder,StopLimitOrderの3種類があるという話でした。指値注文のLimitOrder、逆指値注文のStopOrderはともかくとしてStopLimitOrderはあまりなじみがないのではないでしょうか。簡単に3つの違いを説明します。

 

そもそも指値注文と逆指値注文は全く異なるもの

まずはおなじみ指値注文と逆指値注文について確認しておきましょう。この2つが対になるものという認識でみると、LimitOrderメソッドとStopOrderメソッドのパラメータの違いに違和感を覚えるかもしれません。

StopOrderは到達時の注文執行条件をStopTriggerMethodで指定できるのに、LimitOrderはできません。この違いは何なんでしょうか。商品を売る場合に例えて説明します。

 

指値注文を出した=売り出し中の状態

まず指値注文というのは例えば「今の相場は100円だけど、110円だったら売りますよ」ということを表明する、つまり110円の値札をつけて店に並べた状態です。

今は相場より高いから誰も買わないでしょう。でも、相場価格が上がってきて110円で買いたいという人も出てくれば、すぐ売買が成立(=約定)します。

このように指値注文(LimitOrder)は店に並べて売り出す行為なのです。並べたものが売れるかどうかはお客さん任せなので、TriggerMethodのようなものは指定できませんが、仕組み上、指定価格以下で約定してしまうことは基本的にはありません。(まぁFXの場合は業者にもよるみたいですが、基本的には)

 

逆指値注文を出した=売り時を見計らってる状態

では同じように逆指値注文を考えるとどうなるでしょうか。相場が90円に落ちてきたら売ってしまいたいと思ってるものに「今の相場は100円だけど、90円だったら売りますよ」と90円の値札をつけて店に並べたら・・・速攻で売れちゃいますよね。

100円で売れるもの90円で売ってしまうことになるので、その時点で大損です。なので、もし90円になってしまったら売ってしまいたいと思っても、値札をつけて店に並べるわけにはいかないんです。

90円になるかどうか常々相場を気にしながら、相場が90円になった瞬間に「今!相場の価格で売っちゃいます!」と売り出す必要があるのです。

つまり逆指値注文(StopOrder)は指定価格になるまで監視して、指定価格に次第成り行き注文を出すという行為なんです。指定価格になったら自分から成り行き注文を出すので、どのタイミングで注文を出すかTriggerMethodのような形で指定ができるのです。

ただし、あくまで成り行き注文なので、仮に指定価格になった瞬間に注文したとしても、いくらになるかは実際約定するまでわかりません

 

FXでは注文さえ出しておけばどちらもシステムが自動で行うため、違いを意識したことはなかったかもしれませんが、こう考えると全く異なるものということが理解できるのではないでしょうか。

 

 

じゃあStopLimitOrderって?

ここまでわかればあとは簡単です。逆指値注文のStopOrderは指定価格になり次第、相場価格にお任せの成り行き注文を出すものでした。つまりcAlgoのメソッドでいうところのExecuteMarketOrderで発注されるということです。しかしこれだといくらで約定するのかわからないというデメリットがありました。

「いやいや、さすがにそれは怖いよ。暴落中だったら売らずに戻るの待ちたいし。ぴったりとは言わなくても約定価格帯くらいは指定できたらいいのに・・・」と、そんな人のための注文がStopLimitOrderです。

StopLimitOrderは指定価格になり次第、価格とスリッページを指定した成り行き注文を出します。そう、cAlgoのメソッドでいえばExecuteMarketRangeOrderで発注されるんです。なお指定価格内で約定できなかった場合は、注文が失効し、TechnicalErrorが返ります。

あ、もちろんStopLimitOrderは新しくポジションをとるときのための仕組みですからね。商品の例で考えると損切っぽく感じますが、損切でこんな設定できちゃったら怖くてたまらない。

 

 

まとめ

まとめるとこうなります。

LimitOrder(指値注文)  → 約定価格を指定して市場に並べる注文。

StopOrder(逆指値注文) → 指定した価格になり次第、ExecuteMarketOrder (成り行き注文) を出す注文

StopLimitOrder     → 指定した価格になり次第、 ExecuteMarketRangeOrder (価格指定成り行き注文) を出す注文

なお、ストップリミット注文自体はcAlgo特有のものではないですが、ブローカーや証券会社のシステムによっては多少意味合いや動作が異なるかもしれませんので注意してください。

 

-cAlgo API リファレンス
-,

© 2021 cTrader's Life Powered by AFFINGER5