(57)【要約】【課題】金融商品の市場価格が投資家の想定している方向に変動したことを検出して、取引を行う取引装置等を提供すること。【解決手段】取引装置１１は、金融商品の市場価格に関するトリガ幅とトレール幅とを取得する条件取得部と、金融商品の市場価格を逐次取得する市場価格取得部と、所定の条件で前記市場価格取得部が取得した第１市場価格に前記トリガ幅を加算したトリガ価格を算出するトリガ算出部と、前記市場価格取得部が前記第１市場価格よりも後に取得した第２市場価格と前記トリガ価格とを比較して前記第２市場価格の方が高い場合に、前記第２市場価格に前記トレール幅を加算した逆指値を算出する逆指値算出部と、前記市場価格取得部が前記第２市場価格よりも後に取得した第３市場価格が、前記逆指値算出部が算出した逆指値以下である場合に売りの約定を行う約定部とを備える。【選択図】図１
2018067255.tif 000002
【特許請求の範囲】
【請求項１】
金融商品の市場価格に関するトリガ幅とトレール幅とを取得する条件取得部と、
金融商品の市場価格を逐次取得する市場価格取得部と、
所定の条件で前記市場価格取得部が取得した第１市場価格に前記トリガ幅を加算したトリガ価格を算出するトリガ算出部と、
前記市場価格取得部が前記第１市場価格よりも後に取得した第２市場価格と前記トリガ価格とを比較して前記第２市場価格の方が高い場合に、前記第２市場価格から前記トレール幅を減算した逆指値を算出する逆指値算出部と、
前記市場価格取得部が前記第２市場価格よりも後に取得した第３市場価格が、前記逆指値算出部が算出した逆指値以下である場合に売りの約定を行う約定部と
を備える取引装置。
【請求項２】
前記逆指値算出部は、前記第３市場価格から前記トレール幅を減算した値が前記逆指値を上回る場合に、前記第３市場価格から前記トレール幅を減算した新たな逆指値を算出する
請求項１に記載の取引装置。
【請求項３】
金融商品の市場価格に関するトリガ幅とトレール幅とを取得する条件取得部と、
金融商品の市場価格を逐次取得する市場価格取得部と、
所定の条件で前記市場価格取得部が取得した第１市場価格から前記トリガ幅を減算したトリガ価格を算出するトリガ算出部と、
前記市場価格取得部が前記第１市場価格よりも後に取得した第２市場価格と前記トリガ価格とを比較して前記第２市場価格の方が安い場合に、前記第２市場価格に前記トレール幅を加算した逆指値を算出する逆指値算出部と、
前記市場価格取得部が前記第２市場価格よりも後に取得した第３市場価格が、前記逆指値算出部が算出した逆指値以上である場合に買いの約定を行う約定部と
を備える取引装置。
【請求項４】
前記逆指値算出部は、前記第３市場価格に前記トレール幅を加算した値が前記逆指値を下回る場合に、前記第３市場価格に前記トレール幅を加算した新たな逆指値を算出する
請求項３に記載の取引装置。
【請求項５】
前記金融商品は、担保にした有効証拠金以上の金額で外貨を取引可能な外国為替証拠金取引であり、
前記条件取得部は、新規または決済の取引区分と、取引金額とをさらに取得し、
前記取引区分が新規である場合に、前記第１市場価格と前記取引金額とに基づいて約定した場合の前記有効証拠金の過不足を判定する証拠金判定部を備える
請求項１から請求項４のいずれか一つに記載の取引装置。
【請求項６】
前記条件取得部は、新規または決済の取引区分をさらに取得し、
前記取引区分が決済である場合、前記第１市場価格は決済対象のポジションの取得価格である
請求項１から請求項５のいずれか一つに記載の取引装置。
【請求項７】
前記約定部は、保有しているポジションを決済する約定を行う請求項１から請求項６のいずれか一つに記載の取引装置。
【請求項８】
金融商品の市場価格に関するトリガ幅とトレール幅とを取得し、
所定の条件で取得した第１市場価格に前記トリガ幅を加算したトリガ価格を算出し、
前記第１市場価格よりも後に取得した第２市場価格と前記トリガ価格とを比較して前記第２市場価格の方が高い場合に、前記第２市場価格から前記トレール幅を減算した逆指値を算出し、
前記第２市場価格よりも後に取得した第３市場価格が、前記逆指値以下である場合に売りの約定を行う
処理をコンピュータに実行させる取引プログラム。
【請求項９】
金融商品の市場価格に関するトリガ幅とトレール幅とを取得し、
所定の条件で取得した第１市場価格から前記トリガ幅を減算したトリガ価格を算出し、
前記第１市場価格よりも後に取得した第２市場価格と前記トリガ価格とを比較して前記第２市場価格の方が安い場合に、前記第２市場価格に前記トレール幅を加算した逆指値を算出し、
前記第２市場価格よりも後に取得した第３市場価格が、前記逆指値以上である場合に買いの約定を行う
処理をコンピュータに実行させる取引プログラム。
【請求項１０】
金融商品の市場価格に関するトリガ幅とトレール幅とを取得し、
所定の条件で取得した第１市場価格に前記トリガ幅を加算したトリガ価格を算出し、
前記第１市場価格よりも後に取得した第２市場価格と前記トリガ価格とを比較して前記第２市場価格の方が高い場合に、前記第２市場価格から前記トレール幅を減算した逆指値を算出し、
前記第２市場価格よりも後に取得した第３市場価格が、前記逆指値以下である場合に売りの約定を行う
処理をコンピュータに実行させる取引方法。
【請求項１１】
金融商品の市場価格に関するトリガ幅とトレール幅とを取得し、
所定の条件で取得した第１市場価格から前記トリガ幅を減算したトリガ価格を算出し、
前記第１市場価格よりも後に取得した第２市場価格と前記トリガ価格とを比較して前記第２市場価格の方が安い場合に、前記第２市場価格に前記トレール幅を加算した逆指値を算出し、
前記第２市場価格よりも後に取得した第３市場価格が、前記逆指値以上である場合に買いの約定を行う
処理をコンピュータに実行させる取引方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、取引装置、取引プログラムおよび取引方法に関する。
【背景技術】
【０００２】
投資家のコンピュータと金融商品取引業者のコンピュータとを通信回線で接続し、投資家がオンラインで金融商品の取引を行うことが可能なオンライン取引システムが使用されている。金融商品の取引に関する指標を時々刻々と算出して、投資家のコンピュータに表示させることにより、投資家の判断を支援する指標値算出装置が提案されている（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−１０２５８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
金融商品の市場価格は常に変動しているので、取引を行うタイミングが損益に大きく影響する。しかしながら、一般投資家は金融商品の取引が本業ではないため、市場価格を常に監視して有利な取引を行うことは難しい。
【０００５】
一つの側面では、金融商品の市場価格が投資家の想定している方向に変動したことを検出して、取引を行う取引装置等を提供することを目的とする。
【課題を解決するための手段】
【０００６】
取引装置は、金融商品の市場価格に関するトリガ幅とトレール幅とを取得する条件取得部と、金融商品の市場価格を逐次取得する市場価格取得部と、所定の条件で前記市場価格取得部が取得した第１市場価格に前記トリガ幅を加算したトリガ価格を算出するトリガ算出部と、前記市場価格取得部が前記第１市場価格よりも後に取得した第２市場価格と前記トリガ価格とを比較して前記第２市場価格の方が高い場合に、前記第２市場価格から前記トレール幅を減算した逆指値を算出する逆指値算出部と、前記市場価格取得部が前記第２市場価格よりも後に取得した第３市場価格が、前記逆指値算出部が算出した逆指値以下である場合に売りの約定を行う約定部とを備える。
【０００７】
取引装置は、金融商品の市場価格に関するトリガ幅とトレール幅とを取得する条件取得部と、金融商品の市場価格を逐次取得する市場価格取得部と、所定の条件で前記市場価格取得部が取得した第１市場価格から前記トリガ幅を減算したトリガ価格を算出するトリガ算出部と、前記市場価格取得部が前記第１市場価格よりも後に取得した第２市場価格と前記トリガ価格とを比較して前記第２市場価格の方が安い場合に、前記第２市場価格に前記トレール幅を加算した逆指値を算出する逆指値算出部と、前記市場価格取得部が前記第２市場価格よりも後に取得した第３市場価格が、前記逆指値算出部が算出した逆指値以上である場合に買いの約定を行う約定部とを備える。
【発明の効果】
【０００８】
一つの側面では、金融商品の市場価格が投資家の想定している方向に変動したことを検出して、取引を行う取引装置等を提供することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】取引システムの構成を示す説明図である。
【図２】レートＤＢのレコードレイアウトを示す説明図である。
【図３】デルタＴＤＢのレコードレイアウトを示す説明図である。
【図４】ＨＬＤＢのレコードレイアウトを示す説明図である。
【図５】投資家情報ＤＢのレコードレイアウトを示す説明図である。
【図６】受注ＤＢのレコードレイアウトを示す説明図である。
【図７】発注ＤＢのレコードレイアウトを示す説明図である。
【図８】ポジションＤＢのレコードレイアウトを示す説明図である。
【図９】投資家クライアントの入力画面例を示す説明図である。
【図１０】デルタ注文による新規注文を説明する説明図である。
【図１１】相対トリガトレール注文による決済注文を説明する説明図である。
【図１２】受注ＤＢのレコードレイアウトを示す説明図である。
【図１３】発注ＤＢのレコードレイアウトを示す説明図である。
【図１４】レート記録サーバのプログラムの処理の流れを示すフローチャートである。
【図１５】投資家サーバのプログラムの処理の流れを示すフローチャートである。
【図１６】注文受付サブルーチンの処理の流れを示すフローチャートである。
【図１７】証拠金確認サブルーチンの処理の流れを示すフローチャートである。
【図１８】発注証拠金更新サブルーチンの処理の流れを示すフローチャートである。
【図１９】合計発注証拠金算出サブルーチンの処理の流れを示すフローチャートである。
【図２０】ポジション取得サブルーチンの処理の流れを示すフローチャートである。
【図２１】デルタ判定のサブルーチンの処理の流れを示すフローチャートである。
【図２２】ポジション決済サブルーチンの処理の流れを示すフローチャートである。
【図２３】ストップトリガ判定サブルーチンの処理の流れを示すフローチャートである。
【図２４】相対トリガトレール判定サブルーチンの処理の流れを示すフローチャートである。
【図２５】実施の形態２の相対トリガトレール注文による決済注文を説明する説明図である。
【図２６】実施の形態２のポジション決済のサブルーチンの処理の流れを示すフローチャートである。
【図２７】実施の形態３の投資家クライアントの入力画面例を示す説明図である。
【図２８】実施の形態３の相対トリガトレール注文による新規注文を説明する説明図である。
【図２９】実施の形態３のポジション取得サブルーチンの処理の流れを示すフローチャートである。
【図３０】実施の形態４のポジション取得サブルーチンの処理の流れを示すフローチャートである。
【図３１】実施の形態５の取引装置の動作を示す機能ブロック図である。
【図３２】実施の形態６の取引システムの構成を示す説明図である。
【発明を実施するための形態】
【００１０】
［実施の形態１］
図１は、取引システム１０の構成を示す説明図である。取引システム１０は、時々刻々と価格が変動する金融商品の取引を行う際に使用されるシステムである。本実施の形態においては、外国為替証拠金取引を行う際に使用する取引システム１０を例にして説明する。株式取引、先物取引等においても、同様のシステムを使用することが可能である。
【００１１】
取引システム１０は、投資家サーバ１１、レート記録サーバ２１、投資家クライアント
３１、金融機関サーバ３２およびこれらを相互に接続するネットワークを含む。
【００１２】
投資家クライアント３１は、投資家がオンライン取引に使用するパソコン、タブレットまたはスマートフォン等の情報処理装置である。投資家クライアント３１のハードウェア構成については説明を省略する。
【００１３】
金融機関サーバ３２は、インターバンク市場に参加する銀行等が使用する情報処理装置である。金融機関サーバ３２は、為替レートの市場価格を１秒間に１０回から１００回程度の頻度でネットワークを介して提示する。金融機関サーバ３２のハードウェア構成については説明を省略する。
【００１４】
なお、インターバンク市場においては、市場参加者がそれぞれ市場価格を提示して取引を行う。インターバンク市場の参加者は、信用度が高く、多額の外貨を取引する大手銀行に限定されている。一方、外国為替証拠金取引はインターバンク市場で形成されている市場価格に準じる為替レートに基づいて取引される。
【００１５】
投資家サーバ１１は、金融商品取引業者が管理および運用を行う情報処理装置である。投資家サーバ１１は、投資家クライアント３１からオンラインで受信した金融商品の取引を処理する情報処理装置である。本実施の形態においては、金融商品取引業者は、顧客である個々の投資家に対して、１つの投資家サーバ１１を使用する。投資家サーバ１１は、本実施の形態の取引装置の一例である。
【００１６】
レート記録サーバ２１は、金融商品取引業者が管理および運用を行う情報処理装置である。レート記録サーバ２１は、金融機関サーバ３２から提示された市場価格を記録および処理し、投資家サーバ１１に提供する情報処理装置である。
【００１７】
投資家サーバ１１は、ＣＰＵ（Central Processing Unit）１２、主記憶装置１３、補助記憶装置１４、通信部１５およびバスを備える。
【００１８】
ＣＰＵ１２は、本発明に係るプログラムを実行する演算制御装置である。ＣＰＵ１２には、一または複数のＣＰＵまたはマルチコアＣＰＵ等が使用される。ＣＰＵ１２は、バスを介して投資家サーバ１１を構成するハードウェア各部と接続されている。
【００１９】
主記憶装置１３は、ＳＲＡＭ（Static Random Access Memory）、ＤＲＡＭ（Dynamic Random Access Memory）、フラッシュメモリ等の記憶装置である。主記憶装置１３には、ＣＰＵ１２が行う処理の途中で必要な情報およびＣＰＵ１２で実行中のプログラムが一時的に保存される。
【００２０】
補助記憶装置１４は、ＳＲＡＭ、フラッシュメモリ、ハードディスクまたは磁気テープ等の記憶装置である。補助記憶装置１４には、ＣＰＵ１２に実行させるプログラム、投資家情報ＤＢ（Database）５１、受注ＤＢ５２、発注ＤＢ５３、ポジションＤＢ５４、およびプログラムの実行に必要な各種データが保存される。通信部１５は、投資家サーバ１１とネットワークとの間の通信を行うインターフェイスである。
【００２１】
本実施の形態の投資家サーバ１１は、汎用のパーソナルコンピュータ、大型計算機等の情報機器等である。また、本実施の形態の投資家サーバ１１は、大型計算機上で動作する仮想マシンでも良い。投資家情報ＤＢ５１、受注ＤＢ５２、発注ＤＢ５３およびポジションＤＢ５４は、投資家サーバ１１の外部に設置された大容量記憶装置等に記憶されていても良い。
【００２２】
レート記録サーバ２１は、レート記録ＣＰＵ２２、主記憶装置２３、補助記憶装置２４、通信部２５およびバスを備える。
【００２３】
レート記録ＣＰＵ２２は、本発明に係るプログラムを実行する演算制御装置である。レート記録ＣＰＵ２２には、一または複数のＣＰＵまたはマルチコアＣＰＵ等が使用される。レート記録ＣＰＵ２２は、バスを介してレート記録２１を構成するハードウェア各部と接続されている。
【００２４】
主記憶装置２３は、ＳＲＡＭ、ＤＲＡＭ、フラッシュメモリ等の記憶装置である。主記憶装置２３には、レート記録ＣＰＵ２２が行う処理の途中で必要な情報およびレート記録ＣＰＵ２２で実行中のプログラムが一時的に保存される。
【００２５】
補助記憶装置２４は、ＳＲＡＭ、フラッシュメモリ、ハードディスクまたは磁気テープ等の記憶装置である。補助記憶装置２４には、レート記録ＣＰＵ２２に実行させるプログラム、レートＤＢ４１、ＨＬＤＢ４３、デルタＴＤＢ４２、およびプログラムの実行に必要な各種データが保存される。通信部２５は、レート記録サーバ２１とネットワークとの間の通信を行うインターフェイスである。
【００２６】
本実施の形態のレート記録サーバ２１は、汎用のパーソナルコンピュータ、大型計算機等の情報機器等である。また、本実施の形態のレート記録サーバ２１は、大型計算機上で動作する仮想マシンでも良い。レートＤＢ４１、ＨＬＤＢ４３およびデルタＴＤＢ４２は、レート記録サーバ２１の外部に設置された大容量記憶装置等に記憶されていても良い。
【００２７】
図２は、レートＤＢ４１のレコードレイアウトを示す説明図である。レートＤＢ４１は、通貨ペアごとの売値および買値の市場価格とタイムスタンプとを関連づけるＤＢである。レートＤＢ４１は、通貨ペアフィールド、売レートフィールド、買レートフィールドおよびタイムスタンプフィールドを有する。
【００２８】
通貨ペアフィールドには、外国為替取引を行う二つの通貨の組合せが記録されている。たとえば「ＵＳＤ／ＪＰＹ」は、米ドルと日本円との組合せを示す。同様に、「ＥＵＲ」はユーロ、「ＧＢＰ」は、英ポンド、「ＡＵＤ」は、オーストラリアドルを示す。
【００２９】
売レートフィールドには、投資家が通貨ペアフィールドに記録された通貨ペアのうちの、前側の通貨を後側の通貨で購入する際の市場価格が記録されている。買レートフィールドには、投資家が通貨ペアフィールドに記録された通貨ペアのうちの、前側の通貨を後側の通貨で売却する際の市場価格が記録されている。
【００３０】
タイムスタンプフィールドには、市場価格をレートＤＢ４１に記録した日時が記録されている。タイムスタンプフィールドの前半は日付、後半は時刻を示す。時刻の小数点以下の３桁は、ミリ秒単位の時刻を示す。レートＤＢ４１は、一組の通貨ペアについて１つのフィールドを有する。
【００３１】
具体例を挙げて説明する。図２に示すレートＤＢ４１の１行目は、米ドルを売却したい投資家に対しては１ドル１００．０９６円のレートが、米ドルを購入したい投資家に対しては１ドル１００．１０４円のレートが、それぞれタイムスタンプに示す日時に提示されたことを示す。
【００３２】
レート記録ＣＰＵ２２は、金融機関サーバ３２から提示された市場価格を受信するたびに、該当する通貨ペアのレコードを更新する。すなわち、レートＤＢ４１には、その時点で最新の市場価格が記録されている。レート記録サーバ２１は、一つの金融機関サーバ３
２から提示される市場価格を受信してレートＤＢ４１に記録しても良いし、複数の金融機関サーバ３２から提示される市場価格を受信してレートＤＢ４１に記録しても良い。
【００３３】
レート記録サーバ２１は、他の金融商品取引業者から提示される為替レートをレートＤＢ４１に記録しても良い。また、レート記録サーバ２１は、インターバンク市場の市場価格に基づいて自社の為替ディーラが判断した市場価格を記録しても良い。
【００３４】
図３は、デルタＴＤＢ４２のレコードレイアウトを示す説明図である。デルタＴＤＢ４２は、番号と判定時間幅ΔＴとを関連づけるＤＢである。デルタＴＤＢ４２は番号フィールドとΔＴフィールドとを有する。番号フィールドには、１から連番で番号が記録されている。ΔＴフィールドには、判定時間幅ΔＴが記録されている。デルタＴＤＢ４２は、一つの番号について１つのレコードを有する。デルタＴＤＢ４２は、次に説明するＨＬＤＢ４３を作成する際に使用されるＤＢである。
【００３５】
図４は、ＨＬＤＢ４３のレコードレイアウトを示す説明図である。ＨＬＤＢ４３は、タイムスタンプ、その時点の市場価格と、判定時間幅ΔＴ内の過去の最低市場価格Ｌおよび最高市場価格Ｈとを関連づけるＤＢである。ＨＬＤＢ４３は、通貨ペアフィールド、売買フィールド、タイムスタンプフィールド、市場価格フィールド、ΔＴ＝１０秒フィールド、ΔＴ＝３０秒フィールドを有する。ΔＴ＝１０秒フィールドおよびΔＴ＝３０秒フィールドは、それぞれＬフィールドおよびＨフィールドを有する。ＨＬＤＢ４３は、後述するデルタ注文を行う際に使用されるＤＢである。
【００３６】
通貨ペアフィールドには、外国為替取引を行う二つの通貨の組合せが記録されている。売買フィールドには、「売」または「買」の別が記録されている。タイムスタンプフィールドには、タイムスタンプが記録されている。市場価格フィールドには、通貨ペアフィールドおよび売買フィールドに記録された為替取引に関する市場価格が記録されている。
【００３７】
ΔＴ＝１０秒フィールドのＬフィールドには、タイムスタンプの時点から過去１０秒間で最も安い市場価格が記録されている。ΔＴ＝１０秒フィールドのＨフィールドには、タイムスタンプの時点から過去１０秒間で最も高い市場価格が記録されている。ΔＴ＝３０秒フィールドのＬフィールドには、タイムスタンプの時点から過去３０秒間で最も安い市場価格が記録されている。ΔＴ＝３０秒フィールドのＨフィールドには、タイムスタンプの時点から過去３０秒間で最も高い市場価格が記録されている。
【００３８】
なお、図４ではΔＴ＝１０秒フィールドおよびΔＴ＝３０秒フィールド以外は記載を省略するが、ＨＬＤＢ４３は図３を使用して説明したデルタＴＤＢ４２のΔＴフィールドに記録されたそれぞれの判定時間幅ΔＴに対応するフィールドを有する。それぞれのフィールドは、ΔＴ＝１０秒フィールドと同様にＬフィールドおよびＨフィールドを有する。ＨＬＤＢ４３は、一つのタイムスタンプについて一つのレコードを有する。
【００３９】
具体例を挙げて説明する。図４の上から２レコード目の、タイムスタンプが「２０１６／０９／０５  １０：００：００．００５」時点から過去１０秒間の最高の市場価格は１００．２００円である。上から３レコード目の、タイムスタンプが「２０１６／０９／０５  １０：００：００．０４０」の時点の市場価格は、１００．２８０円である。そのため、このレコードの時点から過去１０秒間の最高の市場価格は１００．２８０円であり、ΔＴ＝１０秒フィールドのＨフィールドに「１００．２８０」が記録される。
【００４０】
図５は、投資家情報ＤＢ５１のレコードレイアウトを示す説明図である。投資家情報ＤＢ５１は、投資家サーバ１１が取引を処理する投資家に関する情報を記録するＤＢである。投資家情報ＤＢ５１は、項目フィールドと内容フィールドとを有する。項目フィールド
には、「投資家ＩＤ（IDentification）」、「氏名」、「証拠金」等の項目名が記録されている。内容フィールドには、それぞれの項目に対応する内容が記録されている。証拠金については後述する。
【００４１】
図６は、受注ＤＢ５２のレコードレイアウトを示す説明図である。受注ＤＢ５２は、金融商品取引業者に注文した外国為替取引の注文番号、注文の内容および注文状況を関連づけるＤＢである。
【００４２】
受注ＤＢ５２は、注文番号フィールド、通貨ペアフィールド、注文タイプフィールド、取引種別フィールド、執行条件フィールド、注文価格フィールド、トリガ値フィールド、トリガ幅フィールド、トレール幅フィールド、ΔＰフィールド、ΔＴフィールド、取引金額フィールド、期限フィールド、注文状況フィールド、発注証拠金フィールドおよび親注文番号フィールドを有する。
【００４３】
注文番号フィールドには、個々の注文に固有に付与された注文番号が記録されている。通貨ペアフィールドには、注文された通貨ペアが記録されている。注文タイプフィールドには、「新規」「決済利益確定」「決済ストップ」のいずれのタイプの注文であるかが記録されている。「新規」は、投資家が新たなポジションを取得する注文を意味する。「決済利益確定」は、投資家が保有しているポジションを反対売買により決済して利益を確定する注文を意味する。「決済ストップ」は、投資家が保有しているポジションを反対売買により決済して、損切りを行うストップ注文を意味する。
【００４４】
取引種別フィールドには、「売」または「買」のどちらの注文であるかが記録されている。「売」は売り注文を、「買」は、買い注文を意味する。執行条件フィールドには、注文を執行する際の判定条件の種類が記録されている。「デルタ」、「相対トリガトレール」および「トレール」については後述する。
【００４５】
「指値」は、後述する注文価格フィールドに記録された価格よりも投資家にとって有利な条件であれば約定することを意味する。たとえば、買い注文である場合には、注文価格よりも市場価格が安い場合に約定する。売り注文である場合には、注文価格よりも市場価格が高い場合に約定する。
【００４６】
「逆指値」は、後述する注文価格フィールドに記録された価格よりも投資家にとって不利な条件であれば約定することを意味する。たとえば、買い注文である場合には、注文価格よりも市場価格が高い場合に約定する。売り注文である場合には、注文価格よりも市場価格が安い場合に約定する。
【００４７】
注文価格フィールドには、投資家が指定した注文価格が記録されている。注文価格フィールドに「−」が記録されている場合には、価格が未定であることを意味する。
【００４８】
トリガ値フィールド、トリガ幅フィールド、トレール幅フィールド、ΔＰフィールドおよびΔＴフィールドには、執行条件が「デルタ」、「相対トリガトレール」および「トレール」である場合のパラメータが記録されている。各パラメータの詳細については後述する。
【００４９】
取引金額フィールドには、顧客が注文した取引金額が記録されている。取引金額は、通貨ペアの左側に示された通貨を使用して示す。具体的には、注文番号１０１は米ドルで１０００ドルの注文であることを示す。
【００５０】
期限フィールドには、注文の有効期限が記録されている。「ＧＴＣ」は、Good Till Ca
ncelの略であり、無期限で有効な注文を意味する。注文状況フィールドには、注文の状況が記録されている。「注文中」は投資家が指定した条件と市場価格とが合致した場合に約定する注文を示す。「待機中」は、関連する注文が約定した場合に、有効になる注文を示す。注文状況フィールドには、約定したことを示す「成立」、注文を取り消したことを示す「取消済」等も記録される。
【００５１】
発注証拠金フィールドには、新規注文を行う際に必要な発注証拠金が記録されている。発注証拠金については後述する。なお、決済注文を行う場合には発注証拠金は不要であるので「−」が記録されている。
【００５２】
親注文番号フィールドには、関連する新規注文の注文番号が記録されている。たとえば注文番号１０１は、新規注文であるので親注文は存在しない。そのため親注文番号フィールドには「−」が記録されている。注文番号１０２および注文番号１０３は、注文番号１０１の決済注文であるので、親注文番号フィールドに「１０１」が記録されている。
【００５３】
図７は、発注ＤＢ５３のレコードレイアウトを示す説明図である。発注ＤＢ５３は、投資家が指定した条件と市場価格とが合致した場合に約定する外国為替取引の注文番号、注文の内容および注文状況を関連づけるＤＢである。
【００５４】
発注ＤＢ５３は、注文番号フィールド、通貨ペアフィールド、注文タイプフィールド、取引種別フィールド、執行条件フィールド、注文価格フィールド、トリガ値フィールド、トリガ幅フィールド、トレール幅フィールド、ΔＰフィールド、ΔＴフィールド、取引金額フィールド、期限フィールド、発注証拠金フィールドおよび親注文番号フィールドを有する。各フィールドに記録されているデータは、図６を使用して説明した受注ＤＢ５２と同様であるので説明を省略する。
【００５５】
図８は、ポジションＤＢ５４のレコードレイアウトを示す説明図である。ポジションＤＢ５４は、投資家が保有しているポジションの注文番号、ポジションの内容および関連注文の番号を関連づけるＤＢである。ポジションＤＢ５４は、注文番号フィールド、通貨ペアフィールド、取引種別フィールド、約定価格フィールド、取引金額フィールド、約定日時フィールドおよび決済注文番号フィールドを有する。決済注文番号フィールドは、利益確定フィールドとストップフィールドとを有する。
【００５６】
注文番号フィールドには、個々の注文に固有に付与された注文番号が記録されている。通貨ペアフィールドには、注文された通貨ペアが記録されている。取引種別フィールドには、「売」または「買」のどちらのポジションであるかが記録されている。「売」は売り注文により取ったポジションであることを、「買」は買い注文により取ったポジションであることを意味する。
【００５７】
約定価格フィールドには、ポジションを取った際の約定価格が記録されている。取引金額フィールドには、ポジションの取引金額が記録されている。約定日時フィールドには、ポジションが約定した日時が記録されている。利益確定フィールドには、利益確定注文の注文番号が記録されている。ストップフィールドにはストップ注文の注文番号が記録されている。
【００５８】
ここで、証拠金および発注証拠金について説明する。証拠金は、投資家が金融商品取引業者に対して担保として差し入れた金銭を示す。外国為替証拠金取引では、投資家は証拠金を担保として、証拠金よりも高額の外国通貨の売りポジションまたは買いポジションを取ることができる。投資家は、保有しているポジションを反対売買により決済することにより、為替変動に応じた損益を得る。
【００５９】
以下の説明では、投資家が差し入れた証拠金から、投資家が保有しているポジションを時価評価した場合の損益を差し引いた金額を、有効証拠金と呼ぶ。有効証拠金は、保有しているポジションをすべて時価で決済した場合に、投資家の手元に残る証拠金に相当する金額である。
【００６０】
同様に、投資家が保有しているポジションを取得した際の価格に対して所定の証拠金率を積算した金額を、必要証拠金と呼ぶ。投資家は、必要証拠金以上の有効証拠金を維持する必要がある。仮に有効証拠金が必要証拠金を下回った場合には、金融商品取引業者は投資家が保有しているポジションを強制的に決済する、いわゆるロスカットを行う。ロスカットにより、差し入れた証拠金以上の損失を投資家がこうむることを防止することができる。
【００６１】
投資家が新たなポジションを取得した場合には、取得価格に応じて必要証拠金が増加する。仮に、有効証拠金が増加後の必要証拠金を下回った場合には、ポジションを取得した直後にロスカットが発生して投資家が損失をうける可能性がある。
【００６２】
このような損失を避けるため、新規注文を行う場合には、約定した場合の投資家の有効証拠金が十分であるか否かを確認することが望ましい。本実施の形態においては、ＣＰＵ１２は、式（１）に基づいてそれぞれの新規注文に対する発注証拠金を算出し、受注ＤＢ５２の発注証拠金フィールドに記録する。
発注証拠金＝約定見込価格×取引金額×証拠金率  ‥‥‥  （１）
発注証拠金は、約定見込価格の為替レートで新規注文が約定した場合に増加する必要証拠金の金額である。
【００６３】
投資家から新規注文を受け付けた場合には、ＣＰＵ１２はその新規注文に対する発注証拠金を算出する。ＣＰＵ１２は、受け付けた新規注文を含む未約定の注文に関する発注証拠金の合計額である合計発注証拠金を算出する。ＣＰＵ１２は、有効証拠金が合計発注証拠金と必要証拠金との和以上である場合には、新規注文を受け付ける。ＣＰＵ１２は、有効証拠金が合計発注証拠金と必要証拠金との和未満である場合には、新規注文を受け付けない。
【００６４】
以上により、ＣＰＵ１２は、約定した直後に必要証拠金が有効証拠金を超えてロスカットが起きる可能性の高い新規注文を防止することができる。
【００６５】
ＣＰＵ１２は、投資家からの注文を受け付けた日時における市場価格を式（１）の約定見込価格に使用することができる。ＣＰＵ１２は、図４を使用して説明したＨＬＤＢ４３から最新のレコードを抽出し、任意の判定時間幅ΔＴのＨフィールドに記録された値を約定見込価格に使用することもできる。このようにすることにより、実際に約定した際に増加する必要証拠金が式（１）に基づいて算出した発注証拠金を大きく上回り、ロスカットが起きる可能性を低減できる。
【００６６】
ＣＰＵ１２は、投資家からの注文を受け付けた日時における市場価格に所定の安全係数を積算した値を式（１）の約定見込価格に使用することができる。安全係数には１以上の任意の数値を使用することができる。このようにすることにより、投資家が市場価格の変動が激しい通貨ペアを発注して約定した場合に、ロスカットが起こる可能性を低減できる。
【００６７】
ＣＰＵ１２は、投資家の投資実績および保有資産等の条件、発注する通貨ペアおよび外国為替市場の状況等により、安全係数を変更しても良い。
【００６８】
図９は、投資家クライアント３１の入力画面例を示す説明図である。投資家クライアント３１は、ネットワークを介して投資家サーバ１１から受信した情報に基づいてディスプレイに図９に示す入力画面を表示する。投資家クライアント３１は、タッチパネル、キーボードまたはマウスなどの入力機器を介して、投資家による入力を受け付け、ネットワークを介して投資家サーバ１１に送信する。なお、投資家サーバ１１と投資家クライアント３１との間の通信は、ＳＳＬ（Secure Sockets Layer）等の暗号化技術により、セキュリティを確保する。
【００６９】
入力画面は、通貨ペア欄６１、金額欄６２、新規欄６３、決済欄６４および成立反復欄６５を含む。新規欄６３は、新規種別欄６３１および新規注文欄６３２を含む。決済欄６４は、決済種別欄６４１、利益確定注文欄６４２およびストップ注文欄６４３を含む。なお、図９においては、選択されている項目を二重線で囲んで示す。
【００７０】
ＣＰＵ１２は、通貨ペア欄６１を介して、投資家が取引する通貨ペアを受け付ける。ＣＰＵ１２は、金額欄６２を介して、投資家が取引する金額を受け付ける。ＣＰＵ１２は、新規種別欄６３１を介して、「売」または「買」のどちらの新規注文であるかを受け付ける。なお、ＣＰＵ１２は、決済種別欄６４１に新規種別欄６３１で受け付けた注文の反対取引が選択された状態を表示する。
【００７１】
ＣＰＵ１２は、新規注文欄６３２を介して新規注文の執行条件およびパラメータを受け付ける。ＣＰＵ１２は、利益確定注文欄６４２を介して利益確定注文の執行条件およびパラメータを受け付ける。ＣＰＵ１２は、ストップ注文欄６４３を介してストップ注文の執行条件およびパラメータを受け付ける。
【００７２】
ＣＰＵ１２は、成立反復欄６５を介して決済注文が約定した後に再度同じ注文を反復するか否かを受け付ける。図９において「Ｏｆｆ」は注文の反復を行わないことを意味する。「ＰＬ＋Ｒｅｐｅａｔ」は、決済注文が約定した際に利益が出た場合には同一条件の注文を反復し、利益が出なかった場合には反復を行わないことを意味する。
【００７３】
図１０は、デルタ注文による新規注文を説明する説明図である。縦軸は市場価格を示す。横軸は時間を示す。黒丸は、各時間における市場価格を示す。図１０を使用してデルタ注文について説明する。
【００７４】
市場価格は、短期的にみると不規則に変動するが、長期的にみると上昇トレンド相場と下降トレンド相場とを繰り返して周期的に変動する場合が多いことが経験的に知られている。また、トレンド相場の間では、市場価格が狭い価格帯の範囲で変動するいわゆるレンジ相場が発生する場合が多いことも経験的に知られている。
【００７５】
投資家は、市場価格がどのように変動するかを予測して、投資を行う。特に、レンジ相場から上昇トレンド相場に移行するタイミングで取った買いポジションを上昇トレンド相場の終了時に決済すること、およびレンジ相場から下降トレンド相場に移行するタイミングで取った売りポジションを上昇トレンド相場の終了時に決済することにより、投資家は効率良く利益を得ることができる。
【００７６】
図１０において、現在時刻をｔAで示す。時刻ｔAにおける市場価格はＡである。判定時間幅ΔＴの時間Ｔの開始時刻が時刻ｔS、終了時刻が時刻ｔEである。ここで時刻ｔEは、時刻ｔAの一つ前のタイムスタンプである。時刻ｔSから時刻ｔEまでの時間内における最低市場価格Ｌおよび最高市場価格Ｈを図１０にＨおよびＬの記号で示す。
【００７７】
図４を使用して説明したＨＬＤＢ４３の一つのレコードのタイムスタンプフィールドに時刻ｔEが、市場価格フィールドに時刻ｔEにおける市場場価格Ｅが、Ｌフィールドに最低市場価格Ｌが、Ｈフィールドに最高市場価格Ｈがそれぞれ記録されている。
【００７８】
市場価格が上昇トレンド相場に入った場合には、図１０に示すように、市場価格Ａと最低市場価格Ｌとの差が、単位判定価格幅ΔＰと判定時間幅ΔＴとの積である判定価格幅よりも大きくなる。ＣＰＵ１２は、デルタ注文の条件が満たされたと判定して、約定を行う。ここで、単位判定価格幅ΔＰおよび判定時間幅ΔＴは、デルタ注文に関するパラメータである。
【００７９】
以上に説明したデルタ注文について、簡単にまとめる。判定時間幅ΔＴは、市場価格が上昇トレンド相場または下降トレンド相場に入ったか否かを判定する時間幅を示すパラメータである。単位判定価格幅ΔＰは、市場価格が上昇トレンド相場または下降トレンド相場に入ったか否かを判定する単位時間あたりの価格幅を示すパラメータである。
【００８０】
本実施の形態においては、ＣＰＵ１２は、市場価格Ａと最低市場価格Ｌとの差が単位判定価格幅ΔＰと判定時間幅ΔＴとの積である判定価格幅を超えたことを、市場価格が上昇トレンド相場に入ったことを示す指標に使用する。同様に、ＣＰＵ１２は、最高市場価格Ｈと市場価格Ａとの差が単位判定価格幅ΔＰと判定時間幅ΔＴとの積である判定価格幅を超えたことを、市場価格が下降トレンド相場に入ったことを示す指標に使用する。
【００８１】
図１０に示すように、ＣＰＵ１２が、市場価格が上昇トレンド相場に入った直後である時刻ｔAに価格Ａで買いポジションを取り、市場価格が十分に上昇した時刻ｔBに市場価格Ｂで決済することにより、価格Ｂと価格Ａの差額に対応する利益が生じる。同様に、ＣＰＵ１２が、市場価格が下降トレンド相場に入った直後に売りポジションを取り、市場価格が十分に下落した後に決済することにより、売却価格と購入価格の差額に対応する利益が生じる。
【００８２】
上昇トレンド相場が生じると予測している投資家は、デルタ注文による買い注文を指示する。市場価格の推移を投資家自身がリアルタイムで監視しなくても、上昇トレンド相場が生じた場合にはＣＰＵ１２が自動的に有利なポジションを取る処理を行う。予測が外れて上昇トレンド相場が生じない場合には、ＣＰＵ１２は買いポジションを取る処理を行わないため、損失の発生を回避することが可能である。
【００８３】
下降トレンド相場が生じると予測している投資家は、デルタ注文による売り注文を指示する。市場価格の推移を投資家自身がリアルタイムで監視しなくても、下降トレンド相場が生じた場合にはＣＰＵ１２が自動的に有利なポジションを取る処理を行う。予測が外れて下降トレンド相場が生じない場合には、ＣＰＵ１２は売りポジションを取る処理を行わないため、損失の発生を回避することが可能である。
【００８４】
ＣＰＵ１２は、最小値幅単位ｐｉｐｓに基づいて単位判定価格幅ΔＰおよび判定時間幅ΔＴの入力を受け付けても良い。様々な為替ペアを扱う投資家である場合、ｐｉｐｓを使用することにより、外国為替の値動きを把握しやすい場合がある。
【００８５】
ＣＰＵ１２は、単位判定価格幅ΔＰの代わりに、判定価格幅の入力を受け付けても良い。判定時間幅ΔＴと、判定価格幅とを別々に考慮したい投資家の要望に対応することが可能である。
【００８６】
ＣＰＵ１２は、単位判定価格幅ΔＰを市場価格に対する相対値により受け付けても良い。たとえば、注文入力時の市場価格、最高市場価格Ｈ、最低市場価格Ｌ、または最高市場
価格Ｈと最低市場価格Ｌとの平均値のいずれかに対する５％のように定めることができる。
【００８７】
図１１は、相対トリガトレール注文による決済注文を説明する説明図である。縦軸は市場価格を示す。横軸は時間を示す。黒丸は、各時間における市場価格を示す。図１０を使用して相対トリガトレール注文について説明する。
【００８８】
トレール注文は、市場価格の上昇幅、または下落幅に合わせて、逆指値注文の価格をリアルタイムで自動修正する注文方法であり、ストップ注文に利用されている。相対トリガトレール注文においては、トレール注文の初期値を相対的に定める。
【００８９】
時刻ｔAにおいて、市場価格Ａで買いポジションを取った場合を例にして説明する。ここで買いポジションは、図９を使用して説明したデルタ注文を使用して取ることができる。また従来から広く使用されている指値注文または成行き注文により買いポジションを取っても良い。
【００９０】
ＣＰＵ１２は、買いポジション価格である市場価格Ａに利益確定注文のトリガ幅ΔＴｇを加算した価格を、相対トリガトレール注文のトリガ価格Ｔｒｉｇに設定する。ＣＰＵ１２は、買いポジション価格である市場価格Ａからストップ注文のトレール幅ΔＳを減算した価格Ｓ１をストップ注文価格に設定する。ストップ注文価格は、保有しているポジションを反対売買により決済して、損切りを行うストップ注文を実施する逆指値である。
【００９１】
ＣＰＵ１２は、市場価格を逐次取得する。時刻ｔ２３における市場価格Ｐ２３からストップ注文のトレール幅ΔＳを減算した価格Ｓ２が価格Ｓ１より高いので、ＣＰＵ１２はストップ注文価格を価格Ｓ２に変更する。同様に、時刻ｔ２４における市場価格Ｐ２４からストップ注文のトレール幅ΔＳを減算した価格Ｓ３が価格Ｓ２より高いので、ＣＰＵ１２は、時刻ｔ２４においてストップ注文価格を価格Ｓ３に変更する。
【００９２】
時刻ｔ２５において、ＣＰＵ１２は市場価格Ｐ２５がトリガ価格Ｔｒｉｇを上回ると判定する。ＣＰＵ１２は、市場価格Ｐ２５から利益確定注文のトレール幅ΔＲを減算した価格Ｍ１をトレール価格に設定する。トレール価格は、保有しているポジションを反対売買により決済して、利益を確定する逆指値注文を行う価格である。さらに時刻ｔ２５において、ＣＰＵ１２は、ストップ注文を取り消す。
【００９３】
時刻ｔ２６における市場価格Ｐ２６からトレール幅ΔＲを減算した価格Ｍ２がトレール価格Ｍ１より高いので、ＣＰＵ１２は価格Ｍ２をトレール価格に設定する。時刻ｔBにおける市場価格Ｂがトレール価格Ｍ２以下であるので、ＣＰＵ１２は利益確定注文を実施する。
【００９４】
以上に説明した相対トリガトレール注文について、簡単にまとめる。利益確定注文のトリガ幅ΔＴｇは、相対トリガトレール注文のトレール開始価格を定めるパラメータである。利益確定注文のトレール幅ΔＲは、相対トリガトレール注文の逆指値の変動量を定めるパラメータである。
【００９５】
本実施の形態においては、ＣＰＵ１２は、トレール価格のトレールを開始するトリガ価格を、ポジションの取得価格を基準にして相対的に設定する。図１０を使用して説明したデルタ注文のように、約定するまでポジションの価格が定まらない場合であっても、ＣＰＵ１２は、投資家が期待する水準および方向の市場価格変動が生じた後に利益確定注文のトレールを開始する。
【００９６】
図１１において、たとえば、ｔAに取得した市場価格Ａは第１市場価格の一例である。このとき、ｔAより後に取得した市場価格Ｐ２１からＰ２６は、それぞれ第２市場価格の一例である。第２市場価格より後に取得した市場価格Ｂは、第３市場価格の一例である。
【００９７】
図１１においては、買いポジションを取り、売り決済を行う場合を例にして説明した。同様にして、売りポジションを取り、買い決済を行う場合であっても、ＣＰＵ１２は相対トリガトレール注文を実施することが可能である。
【００９８】
外国為替取引においては、ネットワークのタイムラグ等により指値注文であっても注文価格と約定価格とが異なる、いわゆるスリッページが生じる場合がある。相対トリガトレール注文を使用することにより、スリッページが生じた場合であっても、ＣＰＵ１２は、ポジションの約定価格を基準として利益確定注文のトレールを開始するトリガ価格を定めることが可能である。
【００９９】
図１２は、受注ＤＢ５２のレコードレイアウトを示す説明図である。図１３は、発注ＤＢ５３のレコードレイアウトを示す説明図である。図６から図１３を使用して、ＣＰＵ１２が行う処理の概要を説明する。また受注ＤＢ５２および発注ＤＢ５３の、トリガ値フィールド、トリガ幅フィールド、トレール幅フィールド、ΔＰフィールドおよびΔＴフィールドに記録される各パラメータについても説明する。
【０１００】
図６は、図９を使用して説明した画面を介してＣＰＵ１２が取得した３件の新規注文およびそれぞれの決済注文が記録された状態の受注ＤＢ５２を示す。注文番号１０１はデルタ注文を使用する新規買い注文であり、注文番号１０２は相対トリガトレール注文を使用する決済利益確定注文、注文番号１０３はトレール注文を使用する決済ストップ注文である。注文番号１０４はデルタ注文を使用する新規売り注文であり、注文番号１０５は相対トリガトレール注文を使用する決済利益確定注文、注文番号１０６はトレール注文を使用する決済ストップ注文である。注文番号１０７は、指値注文を使用する新規買い注文であり、注文番号１０８は指値注文を使用する決済利益確定注文、注文番号１０６は逆指値注文を使用する決済ストップ注文である。
【０１０１】
注文番号１０１および注文番号１０４は、デルタ注文であるので注文価格が未定である。そのため、注文価格フィールドに「−」が記録されている。図１０を使用して説明したデルタ注文のパラメータである単位判定価格幅ΔＰおよび判定時間幅ΔＴが、ΔＰフィールドおよびΔＴフィールドにそれぞれ記録されている。トリガ値、トリガ幅およびトレール幅のパラメータは指定されていないので、これらのフィールドには「−」が記録されている。
【０１０２】
注文番号１０２および注文番号１０５は、注文価格が未定である。そのため、注文価格フィールドに「−」が記録されている。図１１を使用して説明した相対トリガトレール注文のパラメータであるトリガ幅ΔＴｇおよびトレール幅ΔＲが、トリガ幅フィールドおよびトレール幅フィールドにそれぞれ記録されている。トリガ値、単位判定価格幅ΔＰおよび判定時間幅ΔＴは指定されていないので、これらのフィールドには「−」が記録されている。
【０１０３】
注文番号１０３および注文番号１０６も、注文価格が未定である。そのため、注文価格フィールドに「−」が記録されている。図１１を使用して説明したトレール注文のパラメータであるトレール幅ΔＳが、トレール幅フィールドに記録されている。トリガ値、トリガ幅、単位判定価格幅ΔＰおよび判定時間幅ΔＴは指定されていないので、これらのフィールドには「−」が記録されている。
【０１０４】
注文番号１０７から１０９は、指値注文および逆指値注文であるので、注文価格フィールドに価格が記録されている。トリガ値、トリガ幅、トレール幅、単位判定価格幅ΔＰおよび判定時間幅ΔＴは指定されていないので、これらのフィールドには「−」が記録されている。
【０１０５】
新規注文である、注文番号１０１、注文番号１０４および注文番号１０７の注文状況フィールドに「注文中」と記録されている。新規注文が約定していないため、それぞれの新規注文に関連する決済注文の注文状況フィールドには「待機中」と記録されている。
【０１０６】
ＣＰＵ１２は、図６を使用して説明した受注ＤＢ５２を参照して注文状況フィールドに「注文中」と記録されているレコードを抽出し、注文番号フィールドをキーとして発注ＤＢ５３と照合する。受注ＤＢ５２から抽出したレコードに発注ＤＢ５３に記録されていないレコードがある場合には、ＣＰＵ１２は該当するレコードを発注ＤＢ５３に複写する。図７は、複写が完了した状態の発注ＤＢ５３を示す。
【０１０７】
ＣＰＵ１２は、発注ＤＢ５３に記録されている各レコードについて、執行条件、各パラメータおよび市場価格に基づき約定可否を判定する。約定可能ではないと判定した場合には、市場価格を取得しなおして、約定可否を判定することを繰り返す。なお、注文価格フィールドに注文価格が記録されていないレコードについては、ＣＰＵ１２は執行条件およびパラメータにより示される条件が満たされたと判定した後に、約定可否を判定する。
【０１０８】
約定可能であると判定した場合には、発注ＤＢ５３は所定の取引プロトコルに従って取引相手との間で約定を行う。金融商品の取引プロトコルは従来から使用されているので説明を省略する。
【０１０９】
なお、ＣＰＵ１２は、発注ＤＢ５３に記録されている複数のレコードに対する処理を並行して実施する。
【０１１０】
図１２は、注文番号１０１が約定した後の受注ＤＢ５２を示す。ＣＰＵ１２は、注文番号１０１のレコードの注文状況フィールドに、「約定」を記録する。ＣＰＵ１２は、受注ＤＢ５２の親注文番号フィールドを検索して、注文番号１０１に対応する決済注文である注文番号１０２および注文番号１０３を抽出する。ＣＰＵ１２は、注文番号１０２および注文番号１０３のレコードの注文状況フィールドに「注文中」を記録する。
【０１１１】
ＣＰＵ１２は、約定済の注文番号１０１に対応するレコードを、図７を使用して説明した発注ＤＢ５３から削除する。ＣＰＵ１２は、図１２を使用して説明した受注ＤＢ５２を参照して注文状況フィールドに「注文中」と記録されているレコードを抽出し、注文番号フィールドをキーとして発注ＤＢ５３と照合する。受注ＤＢ５２から抽出したレコードのうち注文番号１０２および注文番号１０３は発注ＤＢ５３に記録されていない。したがって、ＣＰＵ１２は注文番号１０２および注文番号１０３に対応するレコードを発注ＤＢ５３に複写する。
【０１１２】
ＣＰＵ１２は、相対トリガトレール注文である注文番号１０２のレコードのトリガ値フィールドに、ポジションの約定価格にトリガ幅ΔＴｇを加算した値を記録する。ＣＰＵ１２は、トレール注文である注文番号１０３のレコードの注文価格フィールドに、ポジションの約定価格にトレール幅ΔＳを加算した値を記録する。以上の処理が完了した状態の発注ＤＢ５３を、図１３に示す。
【０１１３】
ＣＰＵ１２は、発注ＤＢ５３に追加されたレコードを含む各レコードについて、執行条件、各パラメータおよび市場価格に基づき約定可否を判定する。
【０１１４】
図１４は、レート記録サーバ２１のプログラムの処理の流れを示すフローチャートである。図１４を使用して、本実施の形態のレート記録ＣＰＵ２２がＨＬＤＢ４３を生成する処理の流れを説明する。
【０１１５】
レート記録ＣＰＵ２２は、ネットワークを介して金融機関サーバ３２が提示する市場価格を取得する（ステップＳ５０１）。レート記録ＣＰＵ２２は、図４を使用して説明したＨＤＤＢ４３に新しいレコードを作成し、タイムスタンプおよび市場価格をそれぞれのフィールドに記録する（ステップＳ５０２）。
【０１１６】
レート記録ＣＰＵ２２は、カウンタＩを初期値１に設定する（ステップＳ５０３）。レート記録ＣＰＵ２２は、図３を使用して説明したデルタＴＤＢ４２から番号フィールドがカウンタＩと一致するレコードを抽出し、ΔＴフィールドに記録された判定時間幅ΔＴを取得する（ステップＳ５０４）。
【０１１７】
レート記録ＣＰＵ２２は、ＨＤＤＢ４３のタイムスタンプフィールドおよび市場価格フィールドを参照して、直近の判定時間幅ΔＴの時間内の市場価格の最高値Ｈを抽出する（ステップＳ５０５）。レート記録ＣＰＵ２２は、ＨＤＤＢ４３のタイムスタンプフィールドおよび市場価格フィールドを参照して、直近の判定時間幅ΔＴの時間内の市場価格の最低値Ｌを抽出する（ステップＳ５０６）。レート記録ＣＰＵ２２は、ステップＳ５０２で作成したレコードの判定時間幅ΔＴに対応するＬフィールドに最低値Ｌを、Ｈフィールドに最高値Ｈをそれぞれ記録する（ステップＳ５０７）。
【０１１８】
レート記録ＣＰＵ２２は、デルタＴＤＢ４２のすべてのレコードの処理を終了したか否かを判定する（ステップＳ５０８）。終了していないと判定した場合（ステップＳ５０８でＮＯ）、レート記録ＣＰＵ２２はステップＳ５０４に戻る。終了したと判定した場合（ステップＳ５０８でＹＥＳ）、レート記録ＣＰＵ２２はプログラムを終了するか否かを判定する（ステップＳ５０９）。ここでプログラムを終了すると判定する場合とは、金融商品取引業者から終了の指示を受け付けた場合である。
【０１１９】
終了しないと判定した場合（ステップＳ５０９でＮＯ）、レート記録ＣＰＵ２２はステップＳ５０１に戻る。終了すると判定した場合（ステップＳ５０９でＹＥＳ）、レート記録ＣＰＵ２２は処理を終了する。
【０１２０】
図１５は、投資家サーバ１１のプログラムの処理の流れを示すフローチャートである。図１５を使用して、ＣＰＵ１２が行う処理の流れを説明する。なお、図１５は１件の新規注文受付、ポジション取得および決済の一連の処理を行うプログラムを示す。ＣＰＵ１２は、新規注文に対応する数のプログラムを、並行して実行する。
【０１２１】
ＣＰＵ１２は、注文受付サブルーチンを起動する（ステップＳ５２１）。注文受付サブルーチンは、ネットワークを介して投資家クライアント３１から注文を受け付けるサブルーチンである。注文受付サブルーチンの処理の流れは後述する。
【０１２２】
ＣＰＵ１２は証拠金確認サブルーチンを起動する（ステップＳ５２３）。証拠金確認サブルーチンは、証拠金が足りるか否かを確認するサブルーチンである。証拠金確認サブルーチンの処理の流れは後述する。
【０１２３】
ＣＰＵ１２は、証拠金確認サブルーチンの処理結果に基づき証拠金が足りるか否かを判定する（ステップＳ５２４）。証拠金が足りると判定した場合（ステップＳ５２４でＹＥＳ）、ＣＰＵ１２はポジション取得サブルーチンを起動する（ステップＳ５２５）。ポジ
ション取得サブルーチンは、ステップＳ５２１で受け付けた注文に基づいて新規ポジションを取得する処理を行うサブルーチンである。ポジション取得サブルーチンの処理の流れは後述する。
【０１２４】
ＣＰＵ１２は、ステップＳ５２５の処理結果に基づき受注ＤＢ５２を更新する（ステップＳ５２６）。具体的には、約定した場合には約定した新規注文の受注レコードの注文状況フィールドに「約定」と記録し、対応する決済注文の受注レコードの注文状況フィールドに「注文中」と記録する。期限フィールドに記録された期限が到来した等の理由で約定せずにポジション取得サブルーチンを終了した場合には、約定しなかった新規注文および対応する決済注文の注文状況フィールドに「取消」と記録する。
【０１２５】
ＣＰＵ１２は、ステップＳ５２５の処理結果に基づき発注ＤＢ５３を更新する（ステップＳ５２７）。具体的には、ＣＰＵ１２は、ステップＳ５２６で処理を行った発注レコードを削除する。さらに、ＣＰＵ１２は、決済した新規注文に対応する決済注文に関するレコードを受注ＤＢ５２から発注ＤＢ５３に複写する。
【０１２６】
ＣＰＵ１２は、ステップＳ５２５で取得したポジションが存在するか否かを判定する（ステップＳ５２８）。存在すると判定した場合（ステップＳ５２８でＹＥＳ）、ＣＰＵ１２はポジション決済サブルーチンを起動する（ステップＳ５２９）。ポジション決済サブルーチンは、保有するポジションを決済する処理を行うサブルーチンである。ポジション決済サブルーチンの処理の流れは後述する。
【０１２７】
ＣＰＵ１２は、ステップＳ５２９の処理結果に基づき受注ＤＢ５２を更新する（ステップＳ５３０）。具体的には、約定した決済注文の受注レコードの注文状況フィールドに「約定」と記録し、約定しなかった決済注文の受注レコードの注文状況フィールドに「取消」と記録する。
【０１２８】
ＣＰＵ１２は、発注ＤＢ５３を更新する（ステップＳ５３１）。具体的には、ステップＳ５２９で処理を行った発注レコードを削除する。ステップＳ５２５で取得したポジションが存在しないと判定した場合（ステップＳ５２８でＮＯ）およびステップＳ５３１の終了後、ＣＰＵ１２は処理を終了する。
【０１２９】
証拠金が足りないと判定した場合（ステップＳ５２４でＮＯ）、ＣＰＵ１２はネットワークを介して投資家クライアント３１に証拠金が不足する旨を表示する（ステップＳ５３５）。ＣＰＵ１２は、ステップＳ５２１で受け付けた注文に関するレコードを受注ＤＢ５２および発注ＤＢ５３から削除する（ステップＳ５３６）。ＣＰＵ１２は、その後処理を終了する。
【０１３０】
図１６は、注文受付サブルーチンの処理の流れを示すフローチャートである。注文受付サブルーチンは、ネットワークを介して投資家クライアント３１から注文を受け付けるサブルーチンである。図１６を使用して、注文受付サブルーチンの処理の流れを説明する。
【０１３１】
ＣＰＵ１２は、ネットワークを介して投資家クライアント３１のＣＰＵに入力画面するために必要な情報を送信する。投資家クライアント３１のＣＰＵは、投資家クライアント３１の表示部に図９を使用して説明した入力画面を表示する。以下の説明では投資家クライアント３１のＣＰＵによる処理を省略して、「ＣＰＵ１２は、投資家クライアント３１に入力画面を表示する」のように記載する（ステップＳ５５１）。
【０１３２】
ＣＰＵ１２は、入力画面を介して外国為替証拠金取引の注文の入力を受け付ける（ステップＳ５５２）。ＣＰＵ１２は、入力された注文にエラーがあるか否かを判定する（ステ
ップＳ５５３）。エラーがある場合とは、たとえば新規買い注文の指値が市場価格よりも高い場合である。
【０１３３】
エラーがあると判定した場合（ステップＳ５５３でＹＥＳ）、ＣＰＵ１２はエラーの内容を投資家クライアント３１に表示し（ステップＳ５５４）、ステップＳ５５１に戻る。エラーが無いと判定した場合（ステップＳ５５３でＮＯ）、ＣＰＵ１２は入力を受け付けた注文に対して注文番号を付与する（ステップＳ５５５）。
【０１３４】
ＣＰＵ１２は、ステップＳ５５２で受け付けた注文内容を受注ＤＢ５２に記録する（ステップＳ５５６）。ＣＰＵ１２はステップＳ５５２で受け付けた注文内容のうち、新規注文を発注ＤＢ５３に記録する（ステップＳ５５７）。その後ＣＰＵ１２は処理を終了する。
【０１３５】
図１７は、証拠金確認サブルーチンの処理の流れを示すフローチャートである。証拠金確認サブルーチンは、証拠金が足りるか否かを確認するサブルーチンである。図１７を使用して、証拠金確認サブルーチンの処理の流れを説明する。
【０１３６】
ＣＰＵ１２は、レートＤＢ４１より各外国為替の市場価格を取得する（ステップＳ５７１）。ＣＰＵ１２は、ネットワークを介して金融機関サーバ３２から直接市場価格を取得しても良い。
【０１３７】
ＣＰＵ１２は、変数「合計損益」を初期値０に設定する（ステップＳ５７２）。ＣＰＵ１２は、カウンタＩを初期値１に設定する（ステップＳ５７３）。ＣＰＵ１２は、ポジションＤＢ５４よりＩ番目のポジションレコードを抽出して、式（２）に基づき時価損益を算出する（ステップＳ５７４）。
時価損益＝（市場価格−約定価格）×取引金額  ‥‥‥  （２）
ここで、市場価格は、保有するポジションを反対取引により決済する際の価格である。
【０１３８】
ＣＰＵ１２は、変数「合計損益」にステップＳ５７４で算出した時価損益を加算する（ステップＳ５７５）。ＣＰＵ１２は、ポジションＤＢ５４に記録されたすべてのポジションの処理を終了したか否かを判定する（ステップＳ５７６）。終了していないと判定した場合（ステップＳ５７６でＮＯ）、ＣＰＵ１２は、カウンタＩに１を加算する（ステップＳ５７７）。ＣＰＵ１２は、ステップＳ５７４に戻る。
【０１３９】
すべてのポジションの処理を終了したと判定した場合（ステップＳ５７６でＹＥＳ）、ＣＰＵ１２は、式（３）に基づき有効証拠金を算出する（ステップＳ５８１）。
有効証拠金＝証拠金＋時価損益  ‥‥‥  （３）
【０１４０】
ＣＰＵ１２は、発注証拠金更新のサブルーチンを起動する（ステップＳ５８２）。発注証拠金更新のサブルーチンは、発注ＤＢ５３の発注証拠金フィールドに記録されたデータを市場価格に基づいて更新するサブルーチンである。発注証拠金更新のサブルーチンの処理の流れは後述する。
【０１４１】
ＣＰＵ１２は、合計発注証拠金算出のサブルーチンを起動する（ステップＳ５８３）。合計発注証拠金算出のサブルーチンは、新規注文の発注証拠金を合計した合計発注証拠金を算出するサブルーチンである。合計発注証拠金算出のサブルーチンの処理の流れは後述する。
【０１４２】
ＣＰＵ１２は、ポジションＤＢ５４の約定価格フィールドに記録された約定価格の総和である合計約定価格に所定の証拠金率を乗じて、必要証拠金を算出する（ステップＳ５８
４）。必要証拠金は、保有しているポジションを維持するために必要な証拠金である。証拠金率は、金融商品取引業者と投資家との間の契約等に定める値であり、たとえば４％である。
【０１４３】
ＣＰＵ１２は、有効証拠金が必要証拠金と合計発注証拠金との和以上であるか否かを判定する（ステップＳ５８５）。有効証拠金が必要証拠金と合計発注証拠金との和以上であると判定した場合（ステップＳ５８５でＹＥＳ）、ＣＰＵ１２は「証拠金は足りる」と判定して、主記憶装置１３または補助記憶装置１４に記憶する（ステップＳ５８６）。ＣＰＵ１２は、その後処理を終了する。
【０１４４】
有効証拠金が必要証拠金と合計発注証拠金との和未満であると判定した場合（ステップＳ５８５でＮＯ）、ＣＰＵ１２は「証拠金は足りない」と判定して、主記憶装置１３または補助記憶装置１４に記憶する（ステップＳ５８７）。ＣＰＵ１２は、その後処理を終了する。
【０１４５】
図１８は、発注証拠金更新サブルーチンの処理の流れを示すフローチャートである。発注証拠金更新のサブルーチンは、発注ＤＢ５３の発注証拠金フィールドに記録されたデータを市場価格に基づいて更新するサブルーチンである。図１８を使用して、発注証拠金更新のサブルーチンの処理の流れを説明する。
【０１４６】
ＣＰＵ１２は、レートＤＢ４１より各外国為替の市場価格を取得する（ステップＳ６０１）。ＣＰＵ１２は、カウンタＩを初期値１に設定する（ステップＳ６０２）。ＣＰＵ１２は、発注ＤＢ５３からＩ番目の発注レコードを取得する（ステップＳ６０３）。ＣＰＵ１２は、取得した発注レコードの注文タイプフィールドを参照して、新規注文の発注レコードであるか否かを判定する（ステップＳ６０４）。
【０１４７】
新規注文の発注レコードであると判定した場合（ステップＳ６０４でＹＥＳ）、ＣＰＵ１２は、執行条件フィールドを参照して発注証拠金が確定しているか否かを判定する（ステップＳ６０５）。具体的には、執行条件が「指値」または「逆指値」である場合は、発注証拠金が確定している。執行条件が「デルタ」等の市場価格に応じて注文価格が変動する条件である場合は、発注証拠金が確定していない。
【０１４８】
発注証拠金が確定していないと判定した場合（ステップＳ６０５でＮＯ）、ＣＰＵ１２は、式（１）に基づいて新たな発注証拠金を算出する（ステップＳ６０６）。ＣＰＵ１２は、発注ＤＢ５３の発注証拠金フィールドを、ステップＳ６０６で算出した発注証拠金により更新する（ステップＳ６０７）。
【０１４９】
新規注文の発注レコードではないと判定した場合（ステップＳ６０４でＮＯ）、発注証拠金が確定していると判定した場合（ステップＳ６０５でＹＥＳ）およびステップＳ６０７の終了後、ＣＰＵ１２は、発注ＤＢ５３のすべてのレコードの処理が終了したか否かを判定する（ステップＳ６０８）。
【０１５０】
終了していないと判定した場合（ステップＳ６０８でＮＯ）、ＣＰＵ１２は、カウンタＩに１を加算する（ステップＳ６０９）。ＣＰＵ１２は、ステップＳ６０３に戻る。終了したと判定した場合（ステップＳ６０８でＹＥＳ）、ＣＰＵ１２は処理を終了する。
【０１５１】
なお、ＣＰＵ１２は、ステップＳ６０１を省略して、呼び出し元のプログラムで取得した市場価格を本サブルーチンでも使用しても良い。市場価格を取得する処理を省略することにより、発注証拠金更新のサブルーチンの処理を早くすることができる。
【０１５２】
また、ＣＰＵ１２は、ステップＳ６０５とステップＳ６０６との間で市場価格を取得しても良い。発注証拠金を算出する直前で市場価格を取得することにより、最新の市場価格を発注証拠金に反映させることができる。
【０１５３】
図１９は、合計発注証拠金算出サブルーチンの処理の流れを示すフローチャートである。合計発注証拠金算出のサブルーチンは、新規注文の発注証拠金を合計した合計発注証拠金を算出するサブルーチンである。図１９を使用して、合計発注証拠金算出のサブルーチンの処理の流れを説明する。
【０１５４】
ＣＰＵ１２は、変数「合計発注証拠金」を初期値０に設定する（ステップＳ６２１）。ＣＰＵ１２は、カウンタＩを初期値１に設定する（ステップＳ６２２）。ＣＰＵ１２は、発注ＤＢ５３からＩ番目の発注レコードを取得する（ステップＳ６２３）。ＣＰＵ１２は、取得した発注レコードの注文タイプフィールドを参照して、新規注文の発注レコードであるか否かを判定する（ステップＳ６２４）。
【０１５５】
新規注文の発注レコードであると判定した場合（ステップＳ６２４でＹＥＳ）、ＣＰＵ１２は、変数「合計発注証拠金」に、発注証拠金フィールドに記録された発注証拠金を加算する（ステップＳ６２５）。
【０１５６】
新規注文の発注レコードでないと判定した場合（ステップＳ６２４でＮＯ）およびステップＳ６２５の終了後、ＣＰＵ１２は、発注ＤＢ５３のすべてのレコードの処理が終了したか否かを判定する（ステップＳ６２６）。
【０１５７】
終了していないと判定した場合（ステップＳ６２６でＮＯ）、ＣＰＵ１２は、カウンタＩに１を加算する（ステップＳ６２７）。ＣＰＵ１２は、ステップＳ６２３に戻る。終了したと判定した場合（ステップＳ６２６でＹＥＳ）、ＣＰＵ１２は処理を終了する。
【０１５８】
図２０は、ポジション取得サブルーチンの処理の流れを示すフローチャートである。ポジション取得サブルーチンは、ステップＳ５２１で受け付けた注文に基づいて新規ポジションを取得する処理を行うサブルーチンである。図２０を使用して、ポジション取得サブルーチンの処理の流れを説明する。なお、本実施の形態においては、ステップＳ５２１で取得した新規注文の執行条件は、デルタ注文、指値注文または成行注文のいずれかである。
【０１５９】
ＣＰＵ１２は、ステップＳ５２１で取得した新規注文の執行条件がデルタ注文であるか否かを判定する（ステップＳ６４１）。デルタ注文であると判定した場合（ステップＳ６４１でＹＥＳ）、ＣＰＵ１２は、デルタ判定のサブルーチンを起動する（ステップＳ６４２）。デルタ判定のサブルーチンは、市場価格が所定の変動幅を超えて上昇トレンドまたは下降トレンドに移行したか否かを判定するサブルーチンである。デルタ判定のサブルーチンの処理の流れは後述する。
【０１６０】
ＣＰＵ１２は、デルタ判定のサブルーチンの処理結果がＯＮであるか否かを判定する（ステップＳ６４３）。ＯＮでないと判定した場合（ステップＳ６４３でＮＯ）、ＣＰＵ１２は、デルタ注文の処理を終了するか否かを判定する（ステップＳ６４４）。たとえば、発注ＤＢ５３の期限フィールドに記録された期限を過ぎた場合、投資家クライアント３１より注文中止の指示を取得した場合、投資家の取引口座が証拠金の残高不足によりロスカットされた場合等に、ＣＰＵ１２は、デルタ注文の処理を終了すると判定する。
【０１６１】
終了しないと判定した場合（ステップＳ６４４でＮＯ）、ＣＰＵ１２は、ステップＳ６４２に戻る。
【０１６２】
デルタ注文でないと判定した場合（ステップＳ６４１でＮＯ）、ＣＰＵ１２は、ステップＳ５２１で取得した新規注文の執行条件が指値注文であるか否かを判定する（ステップＳ６５１）。指値注文ではないと判定した場合（ステップＳ６５１でＮＯ）およびデルタ判定のサブルーチンの処理結果がＯＮであると判定した場合（ステップＳ６４３でＹＥＳ）、ＣＰＵ１２は、市場価格で約定を行う成行約定の処理を行う（ステップＳ６４５）。
【０１６３】
指値注文であると判定した場合（ステップＳ６５１でＹＥＳ）、ＣＰＵ１２は、レートＤＢ４１より外国為替の市場価格を取得する（ステップＳ６５２）。ＣＰＵ１２は、ネットワークを介して金融機関サーバ３２から直接市場価格を取得しても良い。
【０１６４】
ＣＰＵ１２は、発注レコードの注文価格フィールドに記録された注文価格と市場価格とを比較して、指値注文の成立可否を判定する（ステップＳ６５３）。具体的には、買い注文である場合には、ＣＰＵ１２は、注文価格よりも市場価格の方が安い場合に指値注文が成立可能であると判定する。売り注文である場合には、ＣＰＵ１２は、注文価格よりも市場価格の方が高い場合に指値注文が成立可能であると判定する。
【０１６５】
成立可でないと判定した場合（ステップＳ６５３でＮＯ）、ＣＰＵ１２は、指値注文の処理を終了するか否かを判定する（ステップＳ６５４）。たとえば、発注ＤＢ５３の期限フィールドに記録された期限を過ぎた場合、投資家クライアント３１より注文中止の指示を取得した場合、投資家の取引口座が証拠金の残高不足によりロスカットされた場合等に、ＣＰＵ１２は、指値注文の処理を終了すると判定する。指値注文の処理を終了しないと判定した場合（ステップＳ６５４でＮＯ）、ＣＰＵ１２はステップＳ６５２に戻る。
【０１６６】
指値注文が成立可であると判定した場合（ステップＳ６５３でＹＥＳ）、ＣＰＵ１２は、指値注文による約定の処理を行う（ステップＳ６５５）。
【０１６７】
ステップＳ６４５またはステップＳ６５５の終了後、ＣＰＵ１２は、ポジションＤＢ５４に約定した注文の注文番号、通貨ペア、取引種別、約定価格、取引金額、約定日時および決済注文の番号を記録する（ステップＳ６５６）。なお、ＣＰＵ１２は、約定した注文の番号をキーとして受注ＤＢ５２の親注文番号フィールドを検索することにより決済注文の注文番号および利益確定注文、ストップ注文の別を抽出する。
【０１６８】
デルタ注文の処理を終了すると判定した場合（ステップＳ６４４でＹＥＳ）、指値注文の処理を終了すると判定した場合（ステップＳ６５４でＹＥＳ）、およびステップＳ６５６の終了後、ＣＰＵ１２は処理を終了する。
【０１６９】
図２１は、デルタ判定のサブルーチンの処理の流れを示すフローチャートである。デルタ判定のサブルーチンは、市場価格が所定の変動幅を超えて上昇トレンドまたは下降トレンドに移行したか否かを判定するサブルーチンである。図２１を使用して、デルタ判定のサブルーチンの処理の流れを説明する。
【０１７０】
ＣＰＵ１２は、注文対象の通貨ペアをキーとして、ＨＬＤＢ４３より最新のＨＬレコードを取得する（ステップＳ６７１）。ＣＰＵ１２は、注文対象の通貨ペアをキーとして、レートＤＢ４１よりレートレコードを取得する（ステップＳ６７２）。
【０１７１】
ＣＰＵ１２は、ステップＳ６７１で取得したＨＬレコードとステップＳ６７２で取得したレートレコードのタイムスタンプフィールドに記録されたタイムスタンプ同士が一致しているか否かを判定する（ステップＳ６７３）。一致していると判定した場合（ステップＳ６７３でＹＥＳ）、ＣＰＵ１２はＨＬＤＢ４３より一つ前のＨＬレコードを取得する（
ステップＳ６７４）。
【０１７２】
タイムスタンプが一致していないと判定した場合（ステップＳ６７３でＮＯ）およびステップＳ６７４の終了後、ＣＰＵ１２は、処理中の注文が買い注文であるか否かを判定する（ステップＳ６７５）。
【０１７３】
買い注文であると判定した場合（ステップＳ６７５でＹＥＳ）、ＣＰＵ１２は、式（４）に基づき市場価格と過去のトレンドと注文時の条件との関係を判定する（ステップＳ６７６）。
市場価格−Ｌ≧ΔＰ×ΔＴ  ‥‥‥（４）
市場価格は、ステップＳ６７２で取得したレートレコードの買レートフィールドに記録された価格である。
ΔＰは、デルタ注文のパラメータである単位判定価格幅ΔＰである。
ΔＴは、デルタ注文のパラメータである判定時間幅ΔＴである。
Ｌは、ステップＳ６７１で取得したＨＬレコードの、注文条件の判定時間幅ΔＴに対応するＬフィールドに記録された価格であり、判定時間幅ΔＴの期間内の最低価格を示す。
【０１７４】
式（４）が真であると判定した場合（ステップＳ６７６でＹＥＳ）、ＣＰＵ１２は、処理結果がＯＮであると判定して、主記憶装置１３または補助記憶装置１４に記憶する（ステップＳ６７７）。ＣＰＵ１２は、その後処理を終了する。
【０１７５】
式（４）が偽であると判定した場合（ステップＳ６７６でＮＯ）、ＣＰＵ１２は、処理結果が「ＯＦＦ」であると判定して、主記憶装置１３または補助記憶装置１４に記憶する（ステップＳ６７８）。ＣＰＵ１２は、その後処理を終了する。
【０１７６】
買い注文でないと判定した場合（ステップＳ６７５でＮＯ）、ＣＰＵ１２は、式（５）に基づき市場価格と過去のトレンドと注文時の条件との関係を判定する（ステップＳ６８１）。
Ｈ−市場価格≧ΔＰ×ΔＴ  ‥‥‥（５）
市場価格は、ステップＳ６７２で取得したレートレコードの売レートフィールドに記録された価格である。
ΔＰは、デルタ注文のパラメータである単位判定価格幅ΔＰである。
ΔＴは、デルタ注文のパラメータである判定時間幅ΔＴである。
Ｈは、ステップＳ６７１で取得したＨＬレコードの、注文条件の判定時間幅ΔＴに対応するＨフィールドに記録された価格であり、判定時間幅ΔＴの期間内の最高価格を示す。
【０１７７】
式（５）が真であると判定した場合（ステップＳ６８１でＹＥＳ）、ＣＰＵ１２は、処理結果がＯＮであると判定して、主記憶装置１３または補助記憶装置１４に記憶する（ステップＳ６８２）。ＣＰＵ１２は、その後処理を終了する。
【０１７８】
式（５）が偽であると判定した場合（ステップＳ６８１でＮＯ）、ＣＰＵ１２は、処理結果が「ＯＦＦ」であると判定して、主記憶装置１３または補助記憶装置１４に記憶する（ステップＳ６８３）。ＣＰＵ１２は、その後処理を終了する。
【０１７９】
図２２は、ポジション決済サブルーチンの処理の流れを示すフローチャートである。ポジション決済サブルーチンは、保有するポジションを決済する処理を行うサブルーチンである。図２２を使用して、ポジション決済サブルーチンの処理の流れを説明する。なお、本実施の形態においては、ステップＳ５２１で取得した決済利益確定注文の執行条件は、
相対トリガトレール注文または指値注文であり、決済ストップ注文の執行条件はトレール注文である。
【０１８０】
ＣＰＵ１２は、ステップＳ５２１で取得した新規注文の決済利益確定条件が相対トリガトレール注文であるか否かを判定する（ステップＳ７０１）。相対トリガトレール注文であると判定した場合（ステップＳ７０１でＹＥＳ）、ＣＰＵ１２は、レートＤＢ４１より外国為替の市場価格を取得する（ステップＳ７０２）。
【０１８１】
ＣＰＵ１２は、利益確定注文のトレールを開始する利益確定トリガがＯＮであるか否かを判定する（ステップＳ７０３）。具体的には、買い注文である場合にはステップＳ７０２で取得した市場価格が式（６）および式（７）を満たす場合に、ＣＰＵ１２は利益確定トリガがＯＮであると判定する。
市場価格＞トリガ価格Ｔｒｉｇ‥‥‥  （６）
トリガ価格Ｔｒｉｇ＝新規注文時の約定価格＋ΔＴｇ  ‥‥‥  （７）
ΔＴｇは、相対トリガトレール注文のパラメータであるトリガ幅ΔＴｇである。
【０１８２】
同様に、売り注文である場合にはステップＳ７０２で取得した市場価格が式（８）および式（９）を満たす場合に、ＣＰＵ１２は利益確定トリガがＯＮであると判定する。
市場価格＜トリガ価格Ｔｒｉｇ  ‥‥‥  （８）
トリガ価格Ｔｒｉｇ＝新規注文時の約定価格−ΔＴｇ  ‥‥‥  （９）
【０１８３】
利益確定トリガがＯＮであると判定した場合（ステップＳ７０３でＹＥＳ）、ＣＰＵ１２は、相対トリガトレール判定のサブルーチンを起動する（ステップＳ７０４）。相対トリガトレール判定のサブルーチンは、市場価格に応じて逆指値をトレールしながら相対トリガトレールの条件が満たされたことを判定するサブルーチンである。相対トリガトレール判定のサブルーチンの処理の流れは後述する。ＣＰＵ１２は、相対トリガトレール判定のサブルーチンで定まる条件に基づいて、逆指値約定を行う（ステップＳ７０５）。
【０１８４】
利益確定トリガがＯＮでないと判定した場合（ステップＳ７０３でＮＯ）、ＣＰＵ１２は、ストップトリガ判定のサブルーチンを起動する（ステップＳ７１１）。ストップトリガ判定のサブルーチンは、決済ストップ注文により損切りを行うか否かを判定するサブルーチンである。ストップトリガ判定のサブルーチンの処理の流れは後述する。
【０１８５】
ＣＰＵ１２は、ストップトリガ判定のサブルーチンの処理結果が「ストップ」であるか否かを判定する（ステップＳ７１２）。「ストップ」でないと判定した場合（ステップＳ７１２でＮＯ）、ＣＰＵ１２はステップＳ７０２に戻る。「ストップ」であると判定した場合（ステップＳ７１２でＹＥＳ）、ＣＰＵ１２は、市場価格で約定を行う成行約定の処理を行う（ステップＳ７１３）。
【０１８６】
相対トリガトレール注文でないと判定した場合（ステップＳ７０１でＮＯ）、ＣＰＵ１２は、レートＤＢ４１より外国為替の市場価格を取得する（ステップＳ７２１）。ＣＰＵ１２は、決済利益確定注文の指値注文の成立可否を判定する（ステップＳ７２２）。成立可であると判定した場合（ステップＳ７２２でＹＥＳ）、ＣＰＵ１２は、決済利益確定注文の執行条件に基づいて、指値約定を行う（ステップＳ７２３）。
【０１８７】
指値注文が成立可でないと判定した場合（ステップＳ７２２でＮＯ）、ＣＰＵ１２は、ストップトリガ判定のサブルーチンを起動する（ステップＳ７２４）。ストップトリガ判定のサブルーチンは、ステップＳ７１１で起動したサブルーチンと同一のサブルーチンである。
【０１８８】
ＣＰＵ１２は、ストップトリガ判定のサブルーチンの処理結果が「ストップ」であるか否かを判定する（ステップＳ７２５）。「ストップ」でないと判定した場合（ステップＳ７２５でＮＯ）、ＣＰＵ１２はステップＳ７２１に戻る。「ストップ」であると判定した場合（ステップＳ７２５でＹＥＳ）、ＣＰＵ１２は、市場価格で約定を行う成行約定の処理を行う（ステップＳ７２６）。
【０１８９】
ステップＳ７０５、ステップＳ７１３、ステップＳ７２３またはステップＳ７２６の終了後、ＣＰＵ１２は、ポジションＤＢ５４から決済した新規注文に関するレコードを削除する（ステップＳ７３１）。その後、ＣＰＵ１２は処理を終了する。
【０１９０】
図２３は、ストップトリガ判定サブルーチンの処理の流れを示すフローチャートである。ストップトリガ判定のサブルーチンは、決済ストップ注文により損切りを行うか否かを判定するサブルーチンである。図２３を使用して、ストップトリガ判定のサブルーチンの処理の流れを説明する。
【０１９１】
ＣＰＵ１２は、判定する対象の注文が売り注文であるか否かを判定する（ステップＳ７５２）。売り注文であると判定した場合（ステップＳ７５２でＹＥＳ）、ＣＰＵ１２は、レートＤＢ４１より外国為替の市場価格を取得する（ステップＳ７５３）。
【０１９２】
ＣＰＵ１２は、市場価格がストップ注文のトリガ値以下であるか否かを判定する（ステップＳ７５４）。ストップ注文のトリガ値以下でないと判定した場合（ステップＳ７５４でＮＯ）、ＣＰＵ１２は、市場価格とトリガ値との関係が式（１０）を満たすか否かを判定する（ステップＳ７５５）。
市場価格−ΔＳ＞トリガ値  ‥‥‥  （１０）
ΔＳは、ストップ注文のトレール幅ΔＳである。
【０１９３】
式（１０）が真であると判定した場合（ステップＳ７５５でＹＥＳ）、ＣＰＵ１２は、トリガ値を式（１０）の左辺の値に変更する（ステップＳ７５６）。ステップＳ７５６の処理により、ＣＰＵ１２は市場価格の上昇に追従して売り注文のストップ注文価格を変更、すなわちトレールする。
【０１９４】
式（１０）が真でないと判定した場合（ステップＳ７５５でＮＯ）およびステップＳ７５６の終了後、ＣＰＵ１２は、処理結果が「継続」であると判定して、主記憶装置１３または補助記憶装置１４に記憶する（ステップＳ７５７）。ＣＰＵ１２は、その後処理を終了する。
【０１９５】
売り注文でないと判定した場合（ステップＳ７５２でＮＯ）、ＣＰＵ１２は、レートＤＢ４１より外国為替の市場価格を取得する（ステップＳ７６１）。
【０１９６】
ＣＰＵ１２は、市場価格がストップ注文のトリガ値以上であるか否かを判定する（ステップＳ７６２）。ストップ注文のトリガ値以上でないと判定した場合（ステップＳ７６２でＮＯ）、ＣＰＵ１２は、市場価格とトリガ値との関係が式（１１）を満たすか否かを判定する（ステップＳ７６３）。
市場価格＋ΔＳ＞トリガ値  ‥‥‥  （１１）
ΔＳは、ストップ注文のトレール幅ΔＳである。
【０１９７】
式（１１）が真であると判定した場合（ステップＳ７６３でＹＥＳ）、ＣＰＵ１２は、トリガ値を式（１０）の左辺の値に変更する（ステップＳ７６４）。ステップＳ７６４の処理により、ＣＰＵ１２は市場価格の下落に追従して買い注文のストップ注文価格を変更、すなわちトレールする。
【０１９８】
式（１１）が真でないと判定した場合（ステップＳ７６３でＮＯ）およびステップＳ７６４の終了後、ＣＰＵ１２は、処理結果が「継続」であると判定して、主記憶装置１３または補助記憶装置１４に記憶する（ステップＳ７６５）。ＣＰＵ１２は、その後処理を終了する。
【０１９９】
売り注文で市場価格がストップ注文のトリガ値以下であると判定した場合（ステップＳ７５４でＹＥＳ）、および、買い注文で市場価格がストップ注文のトリガ値以上であると判定した場合（ステップＳ７６２でＹＥＳ）、ＣＰＵ１２は、処理結果が「ストップ」であると判定して、主記憶装置１３または補助記憶装置１４に記憶する（ステップＳ７７１）。ＣＰＵ１２は、その後処理を終了する。
【０２００】
図２４は、相対トリガトレール判定サブルーチンの処理の流れを示すフローチャートである。相対トリガトレール判定のサブルーチンは、市場価格に応じて逆指値をトレールしながら相対トリガトレールの条件が満たされたことを判定するサブルーチンである。図２４を使用して、相対トリガトレール判定のサブルーチンの処理の流れを説明する。
【０２０１】
ＣＰＵ１２は、判定する対象の注文が売り注文であるか否かを判定する（ステップＳ７９１）。売り注文であると判定した場合（ステップＳ７９１でＹＥＳ）、ＣＰＵ１２は、注文価格を市場価格から利益確定注文のトレール幅ΔＲを減算した値に設定する（ステップＳ７９２）。ここで、注文価格は逆指値注文価格である。
【０２０２】
ＣＰＵ１２は、レートＤＢ４１より外国為替の市場価格を取得する（ステップＳ７９３）。ＣＰＵ１２は、市場価格から利益確定注文のトレール幅ΔＲを減算した値が注文価格以上であるか否かを判定する（ステップＳ７９４）。以上ではないと判定した場合（ステップＳ７９４でＮＯ）、ＣＰＵ１２はステップＳ７９２に戻る。
【０２０３】
以上であると判定した場合（ステップＳ７９４でＹＥＳ）、ＣＰＵ１２は市場価格が注文価格以下であるか否かを判定する（ステップＳ７９５）。以下ではないと判定した場合（ステップＳ７９５でＮＯ）、ＣＰＵ１２はステップＳ７９３に戻る。
【０２０４】
売り注文でないと判定した場合（ステップＳ７９１でＮＯ）、ＣＰＵ１２は、注文価格を市場価格に利益確定注文のトレール幅ΔＲを加算した値に設定する（ステップＳ７９６）。ここで、注文価格は逆指値注文価格である。
【０２０５】
ＣＰＵ１２は、レートＤＢ４１より外国為替の市場価格を取得する（ステップＳ７９７）。ＣＰＵ１２は、市場価格に利益確定注文のトレール幅ΔＲを加算した値が注文価格以下であるか否かを判定する（ステップＳ７９８）。以下ではないと判定した場合（ステップＳ７９８でＮＯ）、ＣＰＵ１２はステップＳ７９６に戻る。
【０２０６】
以下であると判定した場合（ステップＳ７９８でＹＥＳ）、ＣＰＵ１２は市場価格が注文価格以上であるか否かを判定する（ステップＳ７９９）。以上ではないと判定した場合（ステップＳ７９９でＮＯ）、ＣＰＵ１２はステップＳ７９７に戻る。
【０２０７】
売り注文で市場価格が注文価格以下であると判定した場合（ステップＳ７９５でＹＥＳ）、および、買い注文で市場価格が注文価格以上であると判定した場合（ステップＳ７９９でＹＥＳ）、ＣＰＵ１２は処理を終了する。
【０２０８】
なお、ＣＰＵ１２は、新規注文のみを受け付けても良い。たとえば、長期保有を望む投資家、および市場価格をリアルタイムに確認して成行注文で決済を行いたい投資家の場合
には、ポジション取得のみを本実施の形態の取引装置に任せることができる。同様に、ＣＰＵ１２は既に保有しているポジションの決済注文のみを受け付けても良い。
【０２０９】
本実施の形態によると、図１０を使用して説明したデルタ注文による新規注文を行なうことによりトレンド相場の初期に自動的に有利なポジションを取る取引装置を実現することができる。
【０２１０】
本実施の形態によると、図１１を使用して説明した相対トリガトレール注文による決済注文を行い、トレンド相場のピークを検出した直後の有利な条件で自動的にポジションを決済する取引装置を実現することができる。
【０２１１】
本実施の形態によると、デルタ注文の他に、従来から使用されている指値注文または成行き注文による新規注文も処理することが可能な取引装置を実現することができる。また、相対トリガトレール注文の他に指値注文による決済利益確定注文も処理することが可能な取引装置を実現することが可能な取引装置を実現することができる。新規注文の執行条件と決済注文との執行条件とを、任意に組み合わせて実施することが可能な取引装置を実現することができる。
【０２１２】
［実施の形態２］
本実施の形態は、ＣＰＵ１２がトレール価格の相対トリガトレールを開始した後も、トリガ価格よりも不利な価格では約定しない取引装置に関する。実施の形態１と共通する部分については説明を省略する。
【０２１３】
図２５は、実施の形態２の相対トリガトレール注文による決済注文を説明する説明図である。縦軸は市場価格を示す。横軸は時間を示す。黒丸は、各時間における市場価格を示す。図２５を使用して本実施の形態の相対トリガトレール注文について説明する。
【０２１４】
時刻ｔAからｔ２４までは、図１１と同一であるので説明を省略する。時刻ｔ２５および時刻ｔ２６におけるトレール価格Ｍ１およびトレール価格Ｍ２の推移も図１１と同一であるので説明を省略する。
【０２１５】
時刻ｔ２５における市場価格Ｐ２５からストップ注文のトレール幅ΔＳを減算した価格Ｓ４が価格Ｓ３より高いので、ＣＰＵ１２は、時刻ｔ２５においてストップ注文価格を価格Ｓ４に変更する。同様に、時刻ｔ２６における市場価格Ｐ２６からストップ注文のトレール幅ΔＳを減算した価格Ｓ５が価格Ｓ４より高いので、ＣＰＵ１２は、時刻ｔ２６においてストップ注文価格を価格Ｓ５に変更する。
【０２１６】
時刻ｔ２７における市場価格Ｐ２７は、トレール価格Ｍ２よりも安いので逆指値注文は成立可能である。しかし、Ｐ２７は相対トリガトレール注文のトリガ価格Ｔｒｉｇよりも安いため、本実施の形態のＣＰＵ１２は利益確定注文を実施しない。
【０２１７】
時刻ｔBにおける市場価格Ｂはトレール価格Ｍ２以下であり、かつ、トリガ価格Ｔｒｉｇより高いので、ＣＰＵ１２は利益確定注文を実施する。
【０２１８】
以上に説明した本実施の形態の相対トリガトレール注文について、簡単にまとめる。本実施の形態においては、ＣＰＵ１２は、トレール価格のトレールを開始するトリガ価格を、ポジションの取得価格を基準にして相対的に設定する。トレールを開始した後であっても、トリガ価格よりも不利な価格では注文を実施しない。トレールを開始した後、相場が大きく反転した場合には、ストップ価格で注文を実施して、大きな損失の発生を防止する。
【０２１９】
図２６は、実施の形態２のポジション決済のサブルーチンの処理の流れを示すフローチャートである。図２６に示すサブルーチンは、図２２を使用して説明したポジション決済のサブルーチンの代わりに使用するサブルーチンである。
【０２２０】
ステップＳ７０１からステップＳ７０４までは、図２２と同一であるので説明を省略する。相対トリガトレール判定のサブルーチン（ステップＳ７０４）の終了後、ＣＰＵ１２は市場価格がトリガ価格Ｔｒｉｇよりも投資家にとって有利であるか否かを判定する（ステップＳ８０１）。
【０２２１】
具体的には、売り注文である場合には、市場価格がトリガ価格Ｔｒｉｇよりも高い場合に、ＣＰＵ１２は投資家にとって有利であると判定する。売り注文である場合には、市場価格がトリガ価格Ｔｒｉｇよりも安い場合に、ＣＰＵ１２は投資家にとって有利であると判定する。
【０２２２】
有利でないと判定した場合（ステップＳ８０１でＮＯ）、ＣＰＵ１２はステップＳ７０２に戻る。有利であると判定した場合（ステップＳ８０１でＹＥＳ）、ＣＰＵ１２は、相対トリガトレール判定のサブルーチンで定まる条件に基づいて、逆指値約定を行う（ステップＳ７０５）。ステップＳ７０５以降は、図２２と同一の処理であるので説明を省略する。
【０２２３】
本実施の形態によると、一瞬の価格変動によりストップ価格のトレールを開始した後に、トリガ価格よりも不利な価格で約定することを防止する取引装置を提供することが可能である。
【０２２４】
［実施の形態３］
本実施の形態は、新規注文時に相対トリガトレールを行う取引装置に関する。実施の形態１と共通する部分については説明を省略する。
【０２２５】
図２７は、実施の形態３の投資家クライアント３１の入力画面例を示す説明図である。図２７に示す入力画面例では、図９を使用して説明した入力画面例の新規注文欄６３２に「相対トリガトレール」の欄が設けられている。
【０２２６】
図２８は、実施の形態３の相対トリガトレール注文による新規注文を説明する説明図である。縦軸は市場価格を示す。横軸は時間を示す。黒丸は、各時間における市場価格を示す。図２８を使用して相対トリガトレール注文について説明する。
【０２２７】
時刻ｔ３１において、投資家クライアント３１を介して相対トリガトレールによる新規買い注文を受け付けた場合を例にして説明する。ＣＰＵ１２は、時刻ｔ３１における市場価格Ｐ３１から新規注文のトリガ幅ΔＴｇを減算した価格を、相対トリガトレール注文のトリガ価格Ｔｒｉｇに設定する。
【０２２８】
ＣＰＵ１２は、市場価格を逐次取得する。時刻ｔ３２における市場価格Ｐ３２および時刻Ｔ３３における市場価格Ｐ３３はトリガ価格Ｔｒｉｇより高いので、ＣＰＵ１２は市場価格の取得を継続する。
【０２２９】
時刻ｔ３４において、ＣＰＵ１２は市場価格Ｐ３４がトリガ価格Ｔｒｉｇを下回ると判定する。ＣＰＵ１２は、市場価格Ｐ３４に新規注文のトレール幅ΔＲを加算して狙い価格Ｎ１を設定する。狙い価格Ｎ１は、新たに買いポジションを取得する新規注文を実施する逆指値である。
【０２３０】
時刻ｔ３５における市場価格Ｐ３５に新規注文のトレール幅ΔＲを加算した値が狙い価格Ｎ１よりも安いので、ＣＰＵ１２は市場価格Ｐ３５に新規注文のトレール幅ΔＲを加算した狙い価格Ｎ２を設定する。時刻ｔAにおける市場価格Ａが狙い価格Ｎ２以上であるので、ＣＰＵ１２は新規注文を実施する。
【０２３１】
以上に説明した相対トリガトレール注文について、簡単にまとめる。新規注文のトリガ幅ΔＴｇは、相対トリガトレール注文のトレール開始価格を定めるパラメータである。新規注文のトレール幅ΔＲは、相対トリガトレール注文の逆指値の変動量を定めるパラメータである。
【０２３２】
本実施の形態においては、ＣＰＵ１２は、新規注文価格のトレールを開始するトリガ価格を、買い注文を受け付けた際の市場価格を基準にして相対的に設定する。ＣＰＵ１２は、投資家が期待する水準および方向の市場価格変動が生じた後に新規注文のトレールを開始する。
【０２３３】
図２９は、実施の形態３のポジション取得サブルーチンの処理の流れを示すフローチャートである。図２９に示すサブルーチンは、図２０を使用して説明したポジション取得のサブルーチンの代わりに使用するサブルーチンである。なお、本実施の形態においては、ステップＳ５２１で取得した新規注文の執行条件は、デルタ注文、相対トリガトレール注文または成行注文のいずれかである。
【０２３４】
ステップＳ６４１からステップＳ６４４までは、図２０と同一であるので説明を省略する。デルタ注文でないと判定した場合（ステップＳ６４１でＮＯ）、ＣＰＵ１２は、ステップＳ５２１で取得した新規注文の執行条件が相対トリガトレール注文であるか否かを判定する（ステップＳ８４１）。相対トリガトリガトレール注文ではないと判定した場合（ステップＳ８４１でＮＯ）およびデルタ判定のサブルーチンの処理結果がＯＮであると判定した場合（ステップＳ６４３でＹＥＳ）、ＣＰＵ１２は、市場価格で約定を行う成行約定の処理を行う（ステップＳ６４５）。
【０２３５】
相対トリガトレール指値注文であると判定した場合（ステップＳ８４１でＹＥＳ）、ＣＰＵ１２は、レートＤＢ４１より外国為替の市場価格を取得する（ステップＳ８４２）。ＣＰＵ１２は、ネットワークを介して金融機関サーバ３２から直接市場価格を取得しても良い。
【０２３６】
ＣＰＵ１２は、発注ＤＢ５３のトリガ幅フィールドに記録されたトリガ幅ΔＴと市場価格とに基づき、トリガ価格Ｔｒｉｇを算出する（ステップＳ８４３）。具体的には、買い注文である場合には、市場価格からトリガ幅ΔＴを減算してトリガ価格Ｔｒｉｇを算出する。売り注文である場合には、市場価格にトリガ幅ΔＴを加算してトリガ価格Ｔｒｉｇを算出する。
【０２３７】
ＣＰＵ１２は、レートＤＢ４１より外国為替の市場価格を取得する（ステップＳ８４４）。ＣＰＵ１２は、トリガ価格Ｔｒｉｇと市場価格とを比較して、トリガがＯＮになるか否かを判定する（ステップＳ８４５）。具体的には、買い注文である場合には、ＣＰＵ１２は、トリガ価格Ｔｒｉｇよりも市場価格の方が安い場合にトリガがＯＮであると判定する。売り注文である場合には、ＣＰＵ１２は、トリガ価格Ｔｒｉｇよりも市場価格の方が高い場合にトリガがＯＮであると判定する。
【０２３８】
トリガがＯＮでないと判定した場合（ステップＳ８４５でＮＯ）、ＣＰＵ１２は、相対トリガトレール注文の処理を終了するか否かを判定する（ステップＳ８４６）。たとえば
、発注ＤＢ５３の期限フィールドに記録された期限を過ぎた場合、投資家クライアント３１より注文中止の指示を取得した場合、投資家の取引口座が証拠金の残高不足によりロスカットされた場合等に、ＣＰＵ１２は、指値注文の処理を終了すると判定する。相対トリガトレール注文の処理を終了しないと判定した場合（ステップＳ８４６でＮＯ）、ＣＰＵ１２はステップＳ８４４に戻る。
【０２３９】
トリガがＯＮであると判定した場合（ステップＳ８４５でＹＥＳ）、ＣＰＵ１２は、図２４を使用して説明した相対トリガトレール判定のサブルーチンを起動する（ステップＳ８３１）。ＣＰＵ１２は、相対トリガトレール判定のサブルーチンで定まる条件に基づいて、逆指値約定を行う（ステップＳ８３２）。
【０２４０】
ステップＳ６４５またはステップＳ８３２の終了後、ＣＰＵ１２は、ポジションＤＢ５４に約定した注文の注文番号、通貨ペア、取引種別、約定価格、取引金額、約定日時および決済注文の番号を記録する（ステップＳ６５６）。
【０２４１】
デルタ注文の処理を終了すると判定した場合（ステップＳ６４４でＹＥＳ）、相対トリガトレール注文の処理を終了すると判定した場合（ステップＳ８４６でＹＥＳ）、およびステップＳ６５６の終了後、ＣＰＵ１２は処理を終了する。
【０２４２】
なお、相対トリガトレール注文ではないと判定した後（ステップＳ８４１でＮＯ）、図２０を使用して説明した実施の形態１のポジション取得のサブルーチンのステップＳ６５１と同様に、指値注文であるか否かを判定しても良い。
【０２４３】
本実施の形態によると、市場価格の変動予測に基づいた新規注文を受け付ける取引装置を提供することが可能である。たとえば様々な通貨ペアに投資する投資家は、それぞれの通貨ペアの市場価格自体を確認せずに、上昇または下降の程度の予測に基づいて新規注文を行うことができる。
【０２４４】
本実施の形態によると、図２８を使用して説明した相対トリガトレール注文による決済注文を行い、トレンド相場の谷を検出した直後の有利な条件で自動的にポジションを取得する取引装置を実現することができる。
【０２４５】
［実施の形態４］
本実施の形態は、約定の直前に証拠金の確認を行う取引装置に関する。実施の形態３と共通する部分については、説明を省略する。
【０２４６】
図３０は、実施の形態４のポジション取得サブルーチンの処理の流れを示すフローチャートである。図３０に示すサブルーチンは、図２９を使用して説明したポジション取得のサブルーチンの代わりに使用するサブルーチンである。なお、本実施の形態においては、ステップＳ５２１で取得した新規注文の執行条件は、デルタ注文、相対トリガトレール注文または成行注文のいずれかである。
【０２４７】
ステップＳ６４１からステップＳ６４４まで、およびステップＳ８４１からステップＳ８４６までは、図２９と同一であるので説明を省略する。
【０２４８】
相対トリガトリガトレール注文ではないと判定した場合（ステップＳ８４１でＮＯ）およびデルタ判定のサブルーチンの処理結果がＯＮであると判定した場合（ステップＳ６４３でＹＥＳ）、ＣＰＵ１２は、図１７を使用して説明した証拠金確認のサブルーチンを起動する（ステップＳ８５１）。
【０２４９】
ＣＰＵ１２は、証拠金確認サブルーチンの処理結果に基づき証拠金が足りるか否かを判定する（ステップＳ８５２）。証拠金が足りると判定した場合（ステップＳ８５２でＹＥＳ）、ＣＰＵ１２は、市場価格で約定を行う成行約定の処理を行う（ステップＳ６４５）。証拠金が足りないと判定した場合（ステップＳ８５２でＮＯ）、ＣＰＵ１２は処理を終了する。
【０２５０】
トリガ価格Ｔｒｉｇと市場価格とを比較して、トリガがＯＮであると判定した場合（ステップＳ８４５でＹＥＳ）、ＣＰＵ１２は、図２４を使用して説明した相対トリガトレール判定のサブルーチンを起動する（ステップＳ８３１）。ＣＰＵ１２は、図１７を使用して説明した証拠金確認のサブルーチンを起動する（ステップＳ８５６）。
【０２５１】
ＣＰＵ１２は、証拠金確認サブルーチンの処理結果に基づき証拠金が足りるか否かを判定する（ステップＳ８４７）。証拠金が足りると判定した場合（ステップＳ８４７でＹＥＳ）、ＣＰＵ１２は、ステップＳ８３１の相対トリガトレール判定のサブルーチンで定まる条件に基づいて、逆指値約定を行う（ステップＳ８３２）。証拠金が足りないと判定した場合（ステップＳ８４７でＮＯ）、ＣＰＵ１２は処理を終了する。
【０２５２】
ステップＳ６４５またはステップＳ８３２の終了後、ＣＰＵ１２は、ポジションＤＢ５４に約定した注文の注文番号、通貨ペア、取引種別、約定価格、取引金額、約定日時および決済注文の番号を記録する（ステップＳ６５６）。
【０２５３】
デルタ注文の処理を終了すると判定した場合（ステップＳ６４４でＹＥＳ）、相対トリガトレール注文の処理を終了すると判定した場合（ステップＳ８４６でＹＥＳ）、およびステップＳ６５６の終了後、ＣＰＵ１２は処理を終了する。
【０２５４】
前述のとおり、ＣＰＵ１２は図１５を使用して説明したプログラムを複数並行して実行する。ＣＰＵ１２は、ステップＳ８５１またはステップ８５６の証拠金確認のサブルーチンの起動からステップＳ６４５またはステップＳ８３２の約定までの間はプログラムの処理の優先度を高くして、短時間で処理を行うことが望ましい。
【０２５５】
本実施の形態によると、約定直前に証拠金を確認することにより、約定した直後にロスカットが生じて投資家が損失をうけることを防止する取引装置を提供することができる。
【０２５６】
［実施の形態５］
図３１は、実施の形態５の取引装置の動作を示す機能ブロック図である。本実施の形態の取引装置の一例である投資家サーバ１１は、ＣＰＵ１２による制御に基づいて以下のように動作する。
【０２５７】
投資家サーバ１１は、条件取得部８１と、市場価格取得部８２と、トリガ算出部８３と、逆指値算出部８４と、約定部８５とを備える。条件取得部８１は、金融商品の市場価格に関するトリガ幅とトレール幅とを取得する。市場価格取得部８２は、金融商品の市場価格を逐次取得する。トリガ算出部８３は、所定の条件で市場価格取得部８２が取得した第１市場価格に条件取得部８１が取得したトリガ幅を加算したトリガ価格を算出する。逆指値算出部８４は、市場価格取得部８２が第１市場価格よりも後に取得した第２市場価格とトリガ価格とを比較して第２市場価格の方が高い場合に、第２市場価格から条件取得部８１が取得したトレール幅を減算した逆指値を算出する。約定部８５は、市場価格取得部８２が第２市場価格よりも後に取得した第３市場価格が、逆指値算出部８４が算出した逆指値以下である場合に売りの約定を行う。
【０２５８】
［実施の形態６］
実施の形態６は、汎用のコンピュータとプログラム７１とを組み合わせて動作させることにより、本実施の形態の取引装置を実現する形態に関する。図３２は、実施の形態６の取引システム１０の構成を示す説明図である。図３２を使用して、本実施の形態の構成を説明する。なお、実施の形態１と共通する部分の説明は省略する。
【０２５９】
本実施の形態の取引システム１０は、取引システム１０は、投資家マシン７４、レート記録マシン７５、投資家クライアント３１、金融機関サーバ３２およびこれらを相互に接続するネットワークを含む。
【０２６０】
金融商品取引業者が管理および運用を行う投資家マシン７４およびレート記録マシン７５は、汎用のパーソナルコンピュータ、大型計算機等の情報機器等である。また、本実施の形態の投資家マシン７４およびレート記録マシン７５は、大型計算機上で動作する仮想マシンでも良い。
【０２６１】
投資家マシン７４は、ＣＰＵ１２、主記憶装置１３、補助記憶装置１４、通信部１５、読取部１６およびバスを備える。レート記録マシン７５は、レート記録ＣＰＵ２２、主記憶装置２３、補助記憶装置２４、通信部２５およびバスを備える。
【０２６２】
プログラム７１は、可搬型記録媒体７２に記録されている。ＣＰＵ１２は、読取部１６を介してプログラム７１を読み込み、補助記憶装置１４に保存する。またＣＰＵ１２は、投資家マシン７４内に実装されたフラッシュメモリ等の半導体メモリ７３に記憶されたプログラム７１を読出しても良い。さらに、ＣＰＵ１２は、通信部１５およびネットワークを介して接続される図示しない他のサーバコンピュータからプログラム７１をダウンロードして補助記憶装置１４に保存しても良い。
【０２６３】
プログラム７１のうち、投資家マシン７４が実行する部分は、投資家マシン７４の制御プログラムとしてインストールされ、主記憶装置１３にロードして実行される。これにより、投資家マシン７４は上述した投資家サーバ１１として機能する。
【０２６４】
また、プログラム７１のうちレート記録マシン７５が実行する部分はネットワークを介してレート記録マシン７５の制御プログラムとしてインストールされ、主記憶装置２３にロードして実行される。これにより、レート記録マシン７５は上述したレート記録サーバ２１として機能する。
【０２６５】
各実施例で記載されている技術的特徴（構成要件）はお互いに組合せ可能であり、組み合わせすることにより、新しい技術的特徴を形成することができる。
今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２６６】
１０  取引システム
１１  投資家サーバ（取引装置）
１２  ＣＰＵ
１３  主記憶装置
１４  補助記憶装置
１５  通信部
１６  読取部
２１  レート記録サーバ
２２  レート記録ＣＰＵ
２３  主記憶装置
２４  補助記憶装置
２５  通信部
３１  投資家クライアント
３２  金融機関サーバ
４１  レートＤＢ
４２  デルタＴＤＢ
４３  ＨＬＤＢ
５１  投資家情報ＤＢ
５２  受注ＤＢ
５３  発注ＤＢ
５４  ポジションＤＢ
６１  通貨ペア欄
６２  金額欄
６３  新規欄
６３１  新規種別欄
６３２  新規注文欄
６４  決済欄
６４１  決済種別欄
６４２  利益確定注文欄
６４３  ストップ注文欄
６５  反復欄
７１  プログラム
７２  可搬型記録媒体
７３  半導体メモリ
７４  投資家マシン
７５  レート記録マシン
８１  条件取得部
８２  市場価格取得部
８３  トリガ算出部
８４  逆指値算出部
８５  約定部
【図１】
2018067255.tif 000003
【図２】
2018067255.tif 000004
【図３】
2018067255.tif 000005
【図４】
2018067255.tif 000006
【図５】
2018067255.tif 000007
【図６】
2018067255.tif 000008
【図７】
2018067255.tif 000009
【図８】
2018067255.tif 000010
【図９】
2018067255.tif 000011
【図１０】
2018067255.tif 000012
【図１１】
2018067255.tif 000013
【図１２】
2018067255.tif 000014
【図１３】
2018067255.tif 000015
【図１４】
2018067255.tif 000016
【図１５】
2018067255.tif 000017
【図１６】
2018067255.tif 000018
【図１７】
2018067255.tif 000019
【図１８】
2018067255.tif 000020
【図１９】
2018067255.tif 000021
【図２０】
2018067255.tif 000022
【図２１】
2018067255.tif 000023
【図２２】
2018067255.tif 000024
【図２３】
2018067255.tif 000025
【図２４】
2018067255.tif 000026
【図２５】
2018067255.tif 000027
【図２６】
2018067255.tif 000028
【図２７】
2018067255.tif 000029
【図２８】
2018067255.tif 000030
【図２９】
2018067255.tif 000031
【図３０】
2018067255.tif 000032
【図３１】
2018067255.tif 000033
【図３２】
2018067255.tif 000034