OrderCloseが機能しない - ページ 4 12345 新しいコメント chua le 2014.02.26 16:11 #31 こんにちは。 下記をコンパイルしたところ、このようなエラーが発生しました。どの部分が間違っていたのか、教えてください。 'postin forum.mq4' postin forum.mq4 1 1 ',' - unexpected token postin forum.mq4 59 53 expression has no effect postin forum.mq4 59 54 1 error(s), 1 warning(s) 2 2 //+------------------------------------------------------------------+ //| chuale.mq4 | //| Copyright 2014, MetaQuotes Software Corp. | //| http://www.abc.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2014, MetaQuotes Software Corp." #property link "http://www.abc.com" #property version "1.00" #property strict extern double TakeProfit=500; extern double Lots=0.1; extern double StopLoss=300; double bar1; double bar2; double bar3; int total,ticket; //datetime previousTime; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int init() { //--- //--- return(0); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //--- return(0); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ int start() { total=OrdersTotal(); bar1=(iClose(Symbol(),PERIOD_M1,2)-iClose(Symbol(),PERIOD_M1,3))*100; bar2=(iClose(Symbol(),PERIOD_M1,1)-iClose(Symbol(),PERIOD_M1,2))*100; bar3=(iClose(Symbol(),PERIOD_M1,0)-iClose(Symbol(),PERIOD_M1,1))*100; Comment("Bar1="+DoubleToString(bar1,Digits)+"\n"+ "Bar2="+DoubleToString(bar2,Digits)+"\n"+ "Bar3="+DoubleToString(bar3,Digits)+"\n" ); if(total>0) { OrderSelect(0,SELECT_BY_POS); if (bar3<-2) OrderClose(OrderTicket(),Lots,Bid,3),Green; if (bar3>2) OrderClose(OrderTicket(), Lots,Ask,3,Red); } //if(Time[0]==previousTime) return(0); //previousTime=Time[0]; if(total<1) { if (bar3>1) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,"Chua EA",12345,0,Green); //if(ticket<0)Print("Error OP_BUY order failed, error:"+GetLasterror()); return(0); } if (bar3<-1) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+StopLoss*Point,Bid+-TakeProfit*Point,"Chua EA",12345,0,Red); //if(ticket<0)Print("Error OP_SELL order failed, error:"+GetLasterror()); return(0); } } return(0); } //+------------------------------------------------------------------+ William Roeder 2014.02.26 17:03 #32 2つの線を比べてみてください。 if (bar3<-2) OrderClose(OrderTicket(),Lots,Bid,3),Green; if (bar3>2) OrderClose(OrderTicket(),Lots,Ask,3,Red); Keith Watford 2014.02.26 19:49 #33 エラーレポートには、エラーの場所が書かれています。 ',' - unexpected token postin forum.mq4 59 53 エラー箇所をダブルクリックすると、カーソルが問題箇所に直接移動します。 chua le 2014.02.27 00:46 #34 GumRaiさん、こんにちは。 ありがとうございます、直りました。誤って括弧を挿入してしまったのがエラーの原因です。 chua le 2014.02.27 00:52 #35 WHRoederさん、ありがとうございます。 は chua le 2014.02.27 00:57 #36 thrdelさん、こんにちは。 Time[0]はバー0の時刻を指しているのでしょうか?Time[1]、Time[2]などはあるのでしょうか?ググってみましたが、ネット上ではあまり情報がありません。また、このEAを2つの通貨 ペアに装着した場合、OrderSelectはチャート自体の注文のみを選択するのか、それともターミナル内の全ての注文を選択するのでしょうか? chua le 2014.02.27 01:05 #37 こんにちは、thrdelです。 " if(ticket<0)Print("Error OP_BUY order failed, error: "+GetLastError());" というコーディングに対して "implicit conversion from 'number' to 'string' postin forum.mq4 69" という警告メッセージが表示されるのはなぜでしょうか? qjol 2014.02.27 01:05 #38 chuale: Time[0]は小節0番の時間を指しているのでしょうか?Time[1]、Time[2]などはあるのでしょうか? はい chuale さん ググってみましたが、ネット上ではあまり情報がないようです。 http://bit.ly/1fJi4XA chuale: また、このEAを2つの通貨ペアに付けた場合、OrderSelectはチャート自体の注文のみを選択するのか、それともターミナルにある全ての注文を選択するのか、どちらでしょうか? あなたのコードに依存します chua le 2014.02.27 01:49 #39 qiolさんありがとうございます。 Keith Watford 2014.02.27 08:07 #40 chuale: こんにちは、thrdelさん。 なぜ私はこの警告メッセージが表示されます "暗黙の変換 '数字'から '文字列' postin forum.mq4 69" コーディングに対して " if(ticket<0)Print("Error OP_BUY order failed, error: "+GetLastError());" ですか? "数値 "から "文字列 "への暗黙の変換は、大きなループがある場合、面倒なことになります。 エラー報告で何行もスクロールしなければならないということです。 あなたの場合、GetLastError()は整数コードなので、printステートメントで文字列に変換されることを警告しているに過ぎないのです。 もし、問題ないのであれば、(string)を追加することで、このような煩わしい警告を止めることができます。 if(ticket<0) Print("Error OP_BUY order failed, error:" + (string) GetLastError()); ちなみに、もしご存知なかったら・・・。 私は通常、これをExterns/Inputsの後に置きます。 #include <stdlib.mqh> の後に置き、その後に if(ticket<0) Print("Error OP_BUY order failed, error: " + ErrorDescription(GetLastError() ) ); そうすれば、コードだけでなく、エラーの説明も表示されるようになります。 12345 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
こんにちは。
下記をコンパイルしたところ、このようなエラーが発生しました。どの部分が間違っていたのか、教えてください。
エラーレポートには、エラーの場所が書かれています。
',' - unexpected token postin forum.mq4 59 53
エラー箇所をダブルクリックすると、カーソルが問題箇所に直接移動します。
GumRaiさん、こんにちは。
ありがとうございます、直りました。誤って括弧を挿入してしまったのがエラーの原因です。
WHRoederさん、ありがとうございます。
は
thrdelさん、こんにちは。
Time[0]はバー0の時刻を指しているのでしょうか?Time[1]、Time[2]などはあるのでしょうか?ググってみましたが、ネット上ではあまり情報がありません。また、このEAを2つの通貨 ペアに装着した場合、OrderSelectはチャート自体の注文のみを選択するのか、それともターミナル内の全ての注文を選択するのでしょうか?
こんにちは、thrdelです。
" if(ticket<0)Print("Error OP_BUY order failed, error: "+GetLastError());" というコーディングに対して "implicit conversion from 'number' to 'string' postin forum.mq4 69" という警告メッセージが表示されるのはなぜでしょうか?
Time[0]は小節0番の時間を指しているのでしょうか?Time[1]、Time[2]などはあるのでしょうか?
はい
ググってみましたが、ネット上ではあまり情報がないようです。
http://bit.ly/1fJi4XA
また、このEAを2つの通貨ペアに付けた場合、OrderSelectはチャート自体の注文のみを選択するのか、それともターミナルにある全ての注文を選択するのか、どちらでしょうか?
あなたのコードに依存します
こんにちは、thrdelさん。
なぜ私はこの警告メッセージが表示されます "暗黙の変換 '数字'から '文字列' postin forum.mq4 69" コーディングに対して " if(ticket<0)Print("Error OP_BUY order failed, error: "+GetLastError());" ですか?
"数値 "から "文字列 "への暗黙の変換は、大きなループがある場合、面倒なことになります。
エラー報告で何行もスクロールしなければならないということです。
あなたの場合、GetLastError()は整数コードなので、printステートメントで文字列に変換されることを警告しているに過ぎないのです。
もし、問題ないのであれば、(string)を追加することで、このような煩わしい警告を止めることができます。
ちなみに、もしご存知なかったら・・・。
私は通常、これをExterns/Inputsの後に置きます。
#include <stdlib.mqh>
の後に置き、その後に
そうすれば、コードだけでなく、エラーの説明も表示されるようになります。