フェールセーフという考え方

以前、「フェールソフト」について紹介した。
(こちらの記事、『フェールソフトという考え方』)
今回は、「フェールセーフ」について紹介する。

「フェールセーフ」は、Wikipediaによれば、

フェイルセーフ(フェールセーフ)とは、なんらかの装置・システムにおいて、
誤操作・誤動作による障害が発生した場合、常に安全側に制御すること。
またはそうなるような設計手法で信頼性設計のひとつ。
これは装置やシステムが『必ず故障する』ということを前提にしたものである。

とある。

そう、障害が発生したときに、安全側に制御すること。

では、自動売買システムを運用する際に想定される障害とは、

  • プログラムのフリーズ・ハングアップ
  • PCの故障
  • ネットワーク障害
  • 停電

などだろう。

そして、自動売買システムに障害が発生したとき、最悪の事態とは、

  • 損切り注文を出すことができず、どんどん損失がふくらんでいくこと

ではないだろうか。

この最悪の事態に陥らないために、自動売買システムをどう設計しておけば良いか?
それは、

  • 玉を持ったら、すぐに、損切りの逆指値注文を出すこと

だろう。

エントリー時に損切り位置を決定できる売買ロジックであれば、その位置に逆指値注文を出せば良い。
決定できない場合は(例えば、移動平均線のクロスで手じまい等)、固定値幅を決めておけば良い。
ちなみに、私はバックテストをしてこの固定値幅を決めている。
最悪の事態を防ぐための値幅なので、近すぎず、遠すぎずの位置としている。

実は、岡三RSSではOCO注文が出せない。
OCO注文とは、2つの注文をセットで出し、一方の注文が約定すれば、他方の注文が自動的にキャンセルされるもの。
例えば、決済注文において、利食いの指値注文と損切りの逆指値注文をOCOで出すような使い方をする。

岡三RSSでは、OCO注文に相当する機能をプログラムで実現する必要がある。
利食いの指値注文、または、損切りの逆指値注文どちらかを先に出しておき、
値動きを監視、逆に行った場合はもう一方の注文に出し直す、といったプログラム。

では、利食い、損切り、どちらの注文を先に出しておくべきだろうか?

私は、フェールセーフの観点から、損切りの逆指値注文を先に出している。
しかし、岡三オンライン証券の岡三RSS解説動画では、利食いの指値注文を先に出すことが紹介されている。

ちょっと危険だ。

確かに、利食い注文を先に出しておく方が、利食い損ねが少なくなる点では有利だ。
そして、システムをリアルタイムに監視しており、障害が発生してもすぐに、スマホに切り替えるなど対応できる状況であれば、これで良いと思う。

だが、例えば、夜中寝ているときなど、システムを監視していないときには、危険だ。
特に、岡三RSSは、急騰・急落時にフリーズし易いことに留意しておかなければならない。
実際、2017/11/9午後の急落時に、岡三RSSがフリーズした。
(ちょうどこの記事を準備していたときだ。タイムリーすぎる。)
Excelファイルの板データを表示している箇所はリアルタイムに更新できていたが、
歩値や4本値は更新されない状態となった。
そう、板はピコピコ動くが、ローソク足が全く更新されなくなった。
岡三RSSのメモリ消費量を確認すると1GBを超えていた。
(Excelのメモリ消費量ではなく、岡三RSSアドインのメモリ消費量。通常、岡三RSSのメモリ消費量は数百MB程度。)

もちろん、岡三RSSのフリーズは滅多に起きることではない。
ちなみに、2016/6/24のブレグジットショックや、2016/11/9のトランプショックではフリーズしなかった。
(そう言えば、2年連続、11月9日に急落した。もちろん、偶然だろう。)
そして、PCの故障やネットワーク障害なども滅多に起きることではない。
しかし、最悪の事態に備えておく必要があるのではないだろうか。

Prepare for the worst.

参考までに、下図が2017/11/9のチャート。

<広告>

TOP