fc2ブログ

05 « 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.» 07

不労所得で生活できるのか?

主にMT4関連のツールやEAを作ってます。 夢の自動集金マシン(?)は存在するのか・・・。

たまにはEA作成講座でも・・・その2 

たまにはEA作成講座でも・・・その1の続きです。

前回、最後に掲載したソースですが、冒頭部分のEAプロパティの解説が抜けていました。

//---- input parameters
extern bool OrderOpenMail=true;
extern string OrderOpenMailSubject="Order Open Mail";
extern bool OrderCloseMail=true;
extern string OrderCloseMailSubject="Order Close Mail";


の部分ですが、この記述によりEAのプロパティ画面が次の様になります。

EaProperty

externキーワードは外部から参照されるという意味で、

EAのプロパティ値としてユーザが変更できる変数を宣言する時に使います。

boolは変数の型でtrue(真)またはfalse(偽)のどちらかの値を持ちます。

OrderOpenMail=true;とすることで変数OrderOpenMailの初期値はtrueにするという意味になります。

OrderOpenMail変数は、新たにポジションを持ったときにメール送信を行うかどうかを

ユーザが指定出来る様にしようと考えたからです。

と思って前回のソースをよく見るとこの変数が効いていなかった。_| ̄|○

int start()
{
.
.
.
for(i = 0; i < NUM_POSITION_SIZE; i++){
if(!LiveMap[i] && aiTicket[i] != 0){
//closed order
SendOrderMail(aiTicket[i], false);
aiTicket[i] = 0;
}
}
.
.
.
if(!bFound){
//new order found
SendOrderMail(ticket, true);
for(i = 0; i < NUM_POSITION_SIZE; i++){
if(aiTicket[i] == 0){
aiTicket[i] = ticket;
break;
}
}
}
.
.
.
}



の部分ですが、

int start()
{
.
.
.
for(i = 0; i < NUM_POSITION_SIZE; i++){
if(!LiveMap[i] && aiTicket[i] != 0){
//closed order
if(OrderCloseMail)
SendOrderMail(aiTicket[i], false);
aiTicket[i] = 0;
}
}
.
.
.
if(!bFound){
//new order found
if(OrderOpenMail)
SendOrderMail(ticket, true);
for(i = 0; i < NUM_POSITION_SIZE; i++){
if(aiTicket[i] == 0){
aiTicket[i] = ticket;
break;
}
}
}
.
.
.
}



とする必要がありますね。




EAのプロパティ値の話に戻りますが、stringというのは文字列型変数の宣言で、

OrderOpenMailSubject="Order Open Mail";で新たにポジションを持ったときの

メールの「件名」をユーザが変更できる様にしています。

OrderCloseMail、OrderCloseMailSubjectについては

同様にポジションをクローズしたときのメールに関するプロパティです。

たまにはEA作成講座でも・・・その3に続く。

いつも応援ありがとうございます。m(__)m
スポンサーサイト



2011/10/13 Thu. 06:31 | trackback: -- | comment: -- | edit