ブログトップ > スポンサー広告 > [Code] 配列を利用して新規指値逆指値注文を検出する

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ブログトップ > MT4Code > [Code] 配列を利用して新規指値逆指値注文を検出する

[Code] 配列を利用して新規指値逆指値注文を検出する

今度は新規指値逆指値の注文があった状態について考えます。

現在の状態が指値逆指値の注文を持っていた場合については次の2つのパターンが考えられます。

(1)注文のない状態 → 指値逆指値の注文を持った状態
img2012010201.png

(2)指値逆指値の注文を持った状態 → 指値逆指値の注文を持った状態(状態の変化なし)
img2012010203.png

新規の指値逆指値の注文があった場合は(1)です。これを言葉で説明すると

(1)現在指値逆指値の注文を持った状態で一つ前の状態には同じチケットが存在しない場合


具体的にプログラムしてみます。

[1]注文のない状態:PreviousOrdersArray[1][5]
[2]指値逆指値の注文を持った状態:CurrentOrdersArray[1][5]

-----------------------------------------------

int start()
{
//----
static int lastCheckTime = 0;
//Print("lastCheckTime: ", lastCheckTime);

if(TimeCurrent()-lastCheckTime < CheckTimeInterval) return(0);
lastCheckTime = TimeCurrent();

double PreviousOrdersArray[1][5] = {};

double CurrentOrdersArray[1][5] = { 8015456, OP_BUYLIMIT, 1.31785, 1.31085, 1.32785};

int dim1_size_Previous = ArrayRange(PreviousOrdersArray,0);
Print("dim1_size_Previous: ", dim1_size_Previous);

for(int i= 0;<dim1_size_Previous;i++){
Print(PreviousOrdersArray[i][TICKET]," ",PreviousOrdersArray[i][ORDERTYPE]," ",PreviousOrdersArray[i][OPENPRICE]," ",PreviousOrdersArray[i][STOPLOSS]," ",PreviousOrdersArray[i][TAKEPROFIT]," ","\n");
}

int dim1_size_Current = ArrayRange(CurrentOrdersArray,0);
Print("dim1_size_Current: ", dim1_size_Current);

for(int j= 0;j<dim1_size_Current;j++){
Print(CurrentOrdersArray[j][TICKET]," ",CurrentOrdersArray[j][ORDERTYPE]," ",CurrentOrdersArray[j][OPENPRICE]," ",CurrentOrdersArray[j][STOPLOSS]," ",CurrentOrdersArray[j][TAKEPROFIT]," ","\n");
}

int exist_CurrentTICKET = 0;
int same_PreviousTICKET = 0;
int PO_Opend_Num;
int PO_Opend = 0;

for(i= 0;i<dim1_size_Current;i++){
if(CurrentOrdersArray[i][ORDERTYPE] == OP_BUY || CurrentOrdersArray[i][ORDERTYPE] == OP_SELL) continue;
exist_CurrentTICKET = 1;
PO_Opend_Num = i;
for(j = 0;j<dim1_size_Previous;j++){
if(CurrentOrdersArray[i][TICKET] == PreviousOrdersArray[j][TICKET]){
same_PreviousTICKET = 1;
break;
}
}
}

if(exist_CurrentTICKET==1 && same_PreviousTICKET==0) PO_Opend++;

if(PO_Opend > 0) Print("CurrentOrdersArray[PO_Opend_Num][TICKET]: ", CurrentOrdersArray[PO_Opend_Num][TICKET]);
else Print("Nothing");

//----
return(0);
}
スポンサーサイト

コメント

コメントの投稿
  • URL
  • コメント
  • パスワード
  • 秘密
  • 管理者にだけ表示を許可する

トラックバック

トラックバックURL: http://atslab.blog135.fc2.com/tb.php/52-1eae6688

profile

atslab

Author:atslab
ATSLABへようこそ!FXトレードに関する情報を発信しています。
著者はプログラマー、FXトレーダーです。情報環境学という大学の研究機関で研究員を経て独立。FXは裁量トレード、システムトレード、コンピュータによる自動売買をそれぞれ併用して取り引きしています。これまで取引ツールをいくつもプログラミングしてきました。その中から取引に有効なツールを提供していきたいと考えています。

entry
comment
trackback
archive
category
form
rss
link
qrcode
QR
copyright
Author by atslab

Designed by マンゴスチンw

ATSLAB(FX初心者が読んで面白い!外国為替の自動売買システム研究所)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。