配列を利用して注文の変更を検出する今度はORDERTYPE以外の注文内容が変更された状態について考えます。注文を持った状態(ORDERTYPE以外の注文内容が変更)上の例では、STOPLOSSの値が1つ前の状態とで異なります。1つ前の状態の同じチケットで、ORDERTYPE以外の注文内容が変更された場合について、具体的にプログラムしてみます。配列を利用して指値逆指値キャンセルを検出する今度は指値逆指値のキャンセルがあった状態について考えます。1つ前の状態が指値逆指値の注文を持っていた場合については次の2つのパターンが考えられます。指値逆指値の注文を持った状態(状態の変化なし)指値逆指値のキャンセルがあった場合は(1)です。具体的にプログラムしてみます。検出する今度は新規指値逆指値の注文があった状態について考えます。現在の状態が指値逆指値の注文を持っていた場合については次の2つのパターンが考えられます。指値逆指値の注文を持った状態(状態の変化なし)新規の指値逆指値の注文があった場合は(1)です。具体的にプログラムしてみます。配列を利用してクローズポジションを検出する今度はポジションがクローズされた状態について考えます。1つ前の状態がポジションを持っていた場合については次の2つのパターンが考えられます。ポジションを持った状態(状態の変化なし)ポジションがクローズされた状態は(1)です。具体的にプログラムしてみます。この表を配列で表します。continue;//[1]のPreviousOrdersArrayからポジションを持った状態の「チケット」を探します。1;//「チケット」が同じ場合は検出から除外します。配列を利用して新規ポジションを検出するポジションを持った状態について考えます。現在ポジションを持った状態とその1つ前の状態は次の3つのパターンが考えられます。ポジションを持った状態(状態の変化なし)それでは、新規ポジションを持った状態というのは上の(1)と(2)です。これを言葉で説明すると(1)現在ポジションを持った状態の一つ前の状態に同じチケットと同じオーダータイプが存在しない場合。(2)現在ポジションを持った状態の一つ前の状態と同じチケットでもオーダータイプが異なる場合。具体的にプログラムしてみます。配列に格納したデータから新規ポジションを持った場合に検出する方法を考えます。新規ポジションを持った場合を次の表で表しました。この表は前回の説明で使った同じものです。この表を配列で表します。[1]待機注文の状態:PreviousOrdersArray[4][5][2]ポジションを持った状態:CurrentOrdersArray[3][5]この配列に上記のデータを格納します。};-----------------------------------------------//プログラムの先頭に次の記述をします。5;//注文内容を確認するための時間の間隔。continue;//[2]のCurrentOrdersArrayからポジションを持った状態の「チケット」を探します。PreviousOrdersArray[j][ORDERTYPE])){//「チケット」が同じでも「オーダータイプ」が違う場合は新規ポジションとして検出します。1;//「チケット」と「オーダータイプ」が同じ場合は検出から除外します。|次のページprofileAuthor:atslabATSLABへようこそ!FXトレードに関する情報を発信しています。著者はプログラマー、FXトレーダーです。情報環境学という大学の研究機関で研究員を経て独立。FXは裁量トレード、システムトレード、コンピュータによる自動売買をそれぞれ併用して取り引きしています。これまで取引ツールをいくつもプログラミングしてきました。その中から取引に有効なツールを提供していきたいと考えています。マンゴスチンwΛATSLAB(FX初心者が読んで面白い!外国為替の自動売買システム研究所)。