アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。
この著書の207ページの真ん中あたりに出てくる内容なんですが・・・

if (OrderSend (Symbol(), OP_BUY, 0.1, Ask, 3, 0, 0) ! = -1 return (true) ;

int err = GetLastError() ;
Print("[OrderSendError] : ", err , "", ErrorDescription(err) );

こうしておくと、もし注文が約定した場合にはreturn文で関数を終了させてエラーメッセージが表示されないとのことです。

このreturn(true)というのはどこに返るんですか?
start()関数はint型なので、「true」を返されても困りますよね?
「関数を終了させて」の「関数」とはどれなんでしょうか?

私の周囲にプログラムに詳しい方が皆無で、私自身もプログラムは初めてで、この箇所で悩みまくってしまいました><
どうぞよろしくお願いいたします。


↓下は、著者のサイトで無料で公開されているライブラリ化されたトレード関数の一部なんですが、下から10行目あたりにも同じ表現があります。





// 注文を送信する
bool MyOrderSend(int type, double lots, double price, int slippage, double sl, double tp, string comment, int magic)
{
price = NormalizeDouble(price, Digits);
sl = NormalizeDouble(sl, Digits);
tp = NormalizeDouble(tp, Digits);

int starttime = GetTickCount();
while(true)
{
if(GetTickCount() - starttime > MyOrderWaitingTime*1000)
{
Alert("OrderSend timeout. Check the experts log.");
return(false);
}
if(IsTradeAllowed() == true)
{
RefreshRates();
if(OrderSend(Symbol(), type, lots, price, slippage, sl, tp, comment, magic, 0, ArrowColor[type]) != -1) return(true);
int err = GetLastError();
Print("[OrderSendError] : ", err, " ", ErrorDescription(err));
if(err == ERR_INVALID_PRICE) break;
if(err == ERR_INVALID_STOPS) break;
}
Sleep(100);
}
return(false);
}

A 回答 (1件)

このreturn(true)というのはどこに返るんですか?


start()関数はint型なので、「true」を返されても困りますよね?

そのとおり、start() trueを返すと困りますので、
たぶん、start()そのものではなく、
start()の中に書かれているどこかのMyOrderSendを呼び出しているところに返るんだと思います。
    • good
    • 0
この回答へのお礼

なるほど、ありがとうございました^^

お礼日時:2012/04/22 08:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!