ライブラリ: MT4Orders - ページ 10 1...34567891011121314151617...95 新しいコメント fxsaber 2017.02.05 16:15 #91 Aliaksandr Kryvanos:シンボルとマジックによる選択が機能しないif (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber){}OrderSelectは 動作しません。注文(インデックスによるチケット)を選択して動作しません。添付ファイルに簡単な例がありますが、なぜかMT5では動作しません。 このコードはMT4では動作しません。ポジションをゼロに設定し、別の値と比較しているからです。OrderSend(Symbol(),OP_BUY, 0.01,Ask, 0, 0,0,"",0,0,clrNONE); コードを次のように修正してください。OrderSend(Symbol(),OP_BUY, 0.01,Ask, 0, 0,0,"",MagicNumber,0,clrNONE); アラームは偽です。 削除済み 2017.02.06 10:27 #92 ありがとうございます、申し訳ありません。たまたま、あるEAをmt5バージョンに翻訳しようとしていて、時間がかかり、取引ロジックが一致せず、マジックやそれに影響する可能性のあるものすべてをチェックしたので、簡単な例を書いたのですが、うまくいきませんでした。しかし、その後、私は自分の間違いを発見し、上記のこの例はそれとは何の関係もありません。自分の投稿を削除したかったのですが、時間がありませんでした。 Alexey Volchanskiy 2017.02.06 18:29 #93 Aliaksandr Kryvanos:シンボルとmajicによる選択が動作しませんif (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber){}OrderSelectが 機能しません。注文(インデックスによるチケット)を選択して動作しません。添付ファイルの簡単な例ですが、なぜかmt5では動作しません。 OrderSendでマジックを設定しない 削除済み 2017.02.08 07:18 #94 MT5で注文を送信する際のエラーに関するデータを取得するにはどうすればよいでしょうか。bool CloseError = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 100);if (CloseError == false){ ResetLastError(); error = GetLastError(); Print(" CloseOpenedTrades OrderClose failed" + " - ticket=", OrderTicket() + string(error) + ") " + ErrorDescription(error) + " - ticket= ", OrderTicket());}エラーコードはMqlTradeResult 構造体に含まれています。結果にアクセスしないと、MT5で上記のコードを使用することができません。トレードサーバーのエラーを返すようにmt4orders.mqhを修正するにはどうすればよいでしょうか? fxsaber 2017.02.08 07:31 #95 Aliaksandr Kryvanos:MT5で注文を送信する際のエラーに関するデータを取得するにはどうすればよいでしょうか。bool CloseError = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 100);if (CloseError == false){ ResetLastError(); error = GetLastError(); Print(" CloseOpenedTrades OrderClose failed" + " - ticket=", OrderTicket() + string(error) + ") " + ErrorDescription(error) + " - ticket= ", OrderTicket());}エラーコードはMqlTradeResult 構造体に含まれています。結果にアクセスせずにMT5で上記のコードを使用することはできません。 MqlTradeResultのコードで補足してください。 削除済み 2017.02.08 08:43 #96 例えば、注文をクローズする際にエラーが発生した場合、GetLastError() は、MqlTradeResult Result; Result.retcode in OrderSend(Request, Result)? fxsaber 2017.02.08 09:39 #97 Aliaksandr Kryvanos: つまり、注文の決済時にエラーが発生した場合、MqlTradeResult Result; Result.retcodeをOrderSend(Request, Result)でチェックしなくても、GetLastError()は(取引サーバーの)エラーコードを返しますか?はい、実装は難しくありません。Aliaksandr Kryvanos: bool CloseError = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 100);if (CloseError == false){ ResetLastError(); error = GetLastError(); Print(" CloseOpenedTrades OrderClose failed" + " - ticket=", OrderTicket() + string(error) + ") " + ErrorDescription(error) + " - ticket= ", OrderTicket());}ハイライトされた意味がわかりません。 削除済み 2017.02.08 10:03 #98 fxsaber:はい、実装は難しくありません。ハイライトの意味がわかりません。mt4用のEAにありました。実装は難しくないとのことですが、実際にはMqlTradeResult 構造体を分析しなくても、注文が送信されなかった場合、GetLastError()はトレードサーバーエラーを返すことができます。にチェックを追加するだけです:static bool NewOrderSend( const MqlTradeRequest &Request ) { MqlTradeResult Result; if (::OrderSend(Request, Result) || Result.retcode != TRADE_RETCODE_DONE) { Print("OrderSend() error: ", ResultRetcodeDescription(Result.retcode)); return(false); } else { return(true); } //return(MT4ORDERS::OrderSend(Request, Result) ?Result.retcode < TRADE_RETCODE_ERROR : false); }しかし、GetLastError() がそのまま動作するのであれば、そうする必要があるのでしょうか? Questions from Beginners MQL5 成行注文を正しく発注するにはどうしたらよいですか? How do I open fxsaber 2017.02.08 10:17 #99 Aliaksandr Kryvanos:これはmt4アドバイザーの場合です。ロジックにエラーがあります。実装は難しくないとのことですが、実際にはMqlTradeResult 構造体を分析しなくても、注文が送信されなければGetLastError()はトレードサーバーエラーを返すことができます。にチェックを追加するだけです:static bool NewOrderSend( const MqlTradeRequest &Request ) { MqlTradeResult Result; if (::OrderSend(Request, Result) || Result.retcode != TRADE_RETCODE_DONE) { Print("OrderSend() error: ", ResultRetcodeDescription(Result.retcode)); return(false); } else { return(true); } //return(MT4ORDERS::OrderSend(Request, Result) ?Result.retcode < TRADE_RETCODE_ERROR : false); }しかし、GetLastError()がそのまま機能するのであれば、その必要があるのでしょうか?私はあなたを理解していません。あなたのifの実装はエラーを含んでいます。さらに、TRADE_RETCODE_DONE_PARTIAL というものがあります。そして、あなたのコードを修正したとしても、エラーメッセージが記録されるだけです(そして、それを毎回見たくない人がいるかもしれません)。しかし、それはMQLでは使用できません。したがって、GetLastErrorが標準の実行時エラーと 追加の取引サーバーのリターンコードの 両方を返す場合の変形が最も最適であると思われます。 削除済み 2017.02.08 10:33 #100 なるほど、GetLastError() に トレードサーバーのエラーも出力させる方法を教えてください。ありがとうございます。 1...34567891011121314151617...95 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
シンボルとマジックによる選択が機能しない
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
{
}
OrderSelectは 動作しません。注文(インデックスによるチケット)を選択して動作しません。添付ファイルに簡単な例がありますが、なぜかMT5では動作しません。
シンボルとmajicによる選択が動作しません
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
{
}
OrderSelectが 機能しません。注文(インデックスによるチケット)を選択して動作しません。添付ファイルの簡単な例ですが、なぜかmt5では動作しません。
MT5で注文を送信する際のエラーに関するデータを取得するにはどうすればよいでしょうか。
if (CloseError == false)
{
ResetLastError();
error = GetLastError();
Print(" CloseOpenedTrades OrderClose failed" + " - ticket=", OrderTicket() + string(error) + ") " + ErrorDescription(error) + " - ticket= ", OrderTicket());
}
エラーコードはMqlTradeResult 構造体に含まれています。結果にアクセスしないと、MT5で上記のコードを使用することができません。トレードサーバーのエラーを返すようにmt4orders.mqhを修正するにはどうすればよいでしょうか?
MT5で注文を送信する際のエラーに関するデータを取得するにはどうすればよいでしょうか。
if (CloseError == false)
{
ResetLastError();
error = GetLastError();
Print(" CloseOpenedTrades OrderClose failed" + " - ticket=", OrderTicket() + string(error) + ") " + ErrorDescription(error) + " - ticket= ", OrderTicket());
}
エラーコードはMqlTradeResult 構造体に含まれています。結果にアクセスせずにMT5で上記のコードを使用することはできません。
つまり、注文の決済時にエラーが発生した場合、MqlTradeResult Result; Result.retcodeをOrderSend(Request, Result)でチェックしなくても、GetLastError()は(取引サーバーの)エラーコードを返しますか?
はい、実装は難しくありません。
if (CloseError == false)
{
ResetLastError();
error = GetLastError();
Print(" CloseOpenedTrades OrderClose failed" + " - ticket=", OrderTicket() + string(error) + ") " + ErrorDescription(error) + " - ticket= ", OrderTicket());
}
ハイライトされた意味がわかりません。
はい、実装は難しくありません。
ハイライトの意味がわかりません。
mt4用のEAにありました。
実装は難しくないとのことですが、実際にはMqlTradeResult 構造体を分析しなくても、注文が送信されなかった場合、GetLastError()はトレードサーバーエラーを返すことができます。
にチェックを追加するだけです:
{
MqlTradeResult Result;
if (::OrderSend(Request, Result) || Result.retcode != TRADE_RETCODE_DONE)
{
Print("OrderSend() error: ", ResultRetcodeDescription(Result.retcode));
return(false);
}
else
{
return(true);
}
//return(MT4ORDERS::OrderSend(Request, Result) ?Result.retcode < TRADE_RETCODE_ERROR : false);
}
しかし、GetLastError() がそのまま動作するのであれば、そうする必要があるのでしょうか?
これはmt4アドバイザーの場合です。
ロジックにエラーがあります。
実装は難しくないとのことですが、実際にはMqlTradeResult 構造体を分析しなくても、注文が送信されなければGetLastError()はトレードサーバーエラーを返すことができます。
にチェックを追加するだけです:
{
MqlTradeResult Result;
if (::OrderSend(Request, Result) || Result.retcode != TRADE_RETCODE_DONE)
{
Print("OrderSend() error: ", ResultRetcodeDescription(Result.retcode));
return(false);
}
else
{
return(true);
}
//return(MT4ORDERS::OrderSend(Request, Result) ?Result.retcode < TRADE_RETCODE_ERROR : false);
}
しかし、GetLastError()がそのまま機能するのであれば、その必要があるのでしょうか?
私はあなたを理解していません。あなたのifの実装はエラーを含んでいます。さらに、TRADE_RETCODE_DONE_PARTIAL というものがあります。
そして、あなたのコードを修正したとしても、エラーメッセージが記録されるだけです(そして、それを毎回見たくない人がいるかもしれません)。しかし、それはMQLでは使用できません。
したがって、GetLastErrorが標準の実行時エラーと 追加の取引サーバーのリターンコードの 両方を返す場合の変形が最も最適であると思われます。