どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 887 1...880881882883884885886887888889890891892893894...1178 新しいコメント владимир 2015.04.13 16:42 #8861 tuner: void start()を実行すれば、エラーは発生しません。 ありがとうございました。エラーは出なくなったが、ポジションがまだ閉じない。 Alexander 2015.04.13 16:55 #8862 rapid_minus: ありがとうございました。エラーは出なくなったが、ポジションがまだ閉じない。 何が原因かを正確に伝えるための十分なコードがない владимир 2015.04.13 16:58 #8863 tuner: 原因が何であるかを正確に知るための十分なコードがない 抜粋 void CritCloseBuy(){ if (((Yellow_0-Red_0)<(Yellow_1-Red_1) && ((MA_0<MA_1)&&(MA_1>MA_2)) || ((Yellow_0-Red_0)>))(Yellow_1-Red_1)&& ((MB_0<MB_1)&&(MB_1>MB_2)))) while(true){ ord_close=OrderClose(OrderTicket(),0.1,MarketInfo(OrderSymbol(),MODE_BID),0,Red); if (ord_close = false){ Comment("BAYポジションのクローズに 失敗しました。エラー#",GetLastError());//エラーのメッセージ break;} else{ Ord=0; break;}. }. 開封の理由かもしれません。 void CritOpen(){ if (///開くための条件//) while(true){ ticket=OrderSend(Symbol(),OP_BUY,0.)です。1,Ask,0,0,NULL,10011,0,clrNONE); //open order BAY, MAGIC 10011 if(ticket<=0){ Comment("ポジションBAY-10011のオープンにエラー#で失敗しました",GetLastError()); break;} else{ Comment("BAY-10011ポジションはロット0でオープンしました。1,price", Ask); Ord=(Ord+1); 。break;}} Any rookie question, so すべて閉じる」/「開く」ツール Please, help me solve Vitalie Postolache 2015.04.13 17:21 #8864 rapid_minus: 抜粋...before ord_close=OrderClose(OrderTicket(),0.1,MarketInfo(OrderSymbol(),MODE_BID),0,Red);注文を選択するには、OrderSelect()関数を 使用するとよいでしょう。このようなclose関数のループの目的がわからないのですが...。 владимир 2015.04.13 17:25 #8865 evillive: before ord_close=OrderClose(OrderTicket(),0.1,MarketInfo(OrderSymbol(),MODE_BID),0,Red); 注文を選択するには、OrderSelect()関数を使用するとよいでしょう。 唯一持っている。実は、最初はそうだったんです。手探り状態で原因追求を開始した。ループの感覚がわからない。 ループで開いたのだから、閉じるのもループで......と、類推してごまかしているだけなのです。 владимир 2015.04.13 17:44 #8866 イゴール・キムは私たちのお手本です。 void start() { ManagePositions();}. //+-----------------------------------------------------------------------------//| 市場価格でポジションを閉じる|//| パラメータ。|//| sym - 測定器名 ("" - 現在のシンボル)|//| op - 操作(-1 - 任意の位置)|//| mn - MagicNumber(-1 - 任意のマジックを)|//+----------------------------------------------------------------------------+ void ClosePositions(string sym="", int op=-1, int mn=-1) { int i, k=OrdersTotal(). if (sym=="") sym=Symbol(); for (i=0; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){ if (OrderSymbol()==sym && (op<0 || OrderType()==op)){ if (mn<0 || OrderMagicNumber()==mn) { if (OrderType()==OP_BUY){ OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, clCloseBuy);} if (OrderType()==OP_SELL) { OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, clCloseSell);}}}}}}. しかし、コンパイラはOrderCloseの戻り値をチェックすることを要求している コーディングのヘルプ Any rookie question, so MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 Vitalie Postolache 2015.04.13 18:06 #8867 rapid_minus:イゴール・キムは私たちのお手本です。しかし、コンパイラはOrderCloseの戻り値のチェックを要求していますでは、例のように、まず選択し、次に閉じます。たった1つの注文でも、100万件の注文でも、まずそれぞれの注文が選ばれなければならないからだ。チェックは非常に簡単です if(!OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, clCloseSell))Print("Closing error #",GetLastError()); Alexander 2015.04.13 18:12 #8868 rapid_minus:イゴール・キムは、私たちのものを例として挙げています。...しかし、コンパイラはOrderCloseの戻り値のチェックを要求しています それは、イゴールが関数を書いた時代には、コンパイラは戻り値のチェックを要求しなかったが、今日のコンパイラは、そうしないと悪態をつくからである。 владимир 2015.04.13 19:28 #8869 evillive:そこで、例のように、まず選択し、次に閉じるようにします。注文が1件でも100万件でも、まず1件ずつ選択しなければならない。チェックは非常に簡単です if(!OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, clCloseSell))Print("Closing error #", GetLastError()); 次のようにしました: if (!OrderClose(OrderTicket(), OrderLots(), Bid, 0, Red){ Comment(" BAYポジションクロージャーは エラー#で失敗しました。",GetLastError()); break;} else{ Ord=0; break;}. 戻り値を確認する必要がある」と要求され続ける。 このように作りました。 ord_close=OrderClose(OrderTicket(), OrderLots(), Bid, 0, Red); if (ord_close = false) 。{ Comment("BAYポジションのクローズに失敗しエラー#",GetLastError()); //エラーメッセージ break;} else{ Ord=0; break;}. サイレントしかし、いずれの場合も、ポジションを閉じることはできません ZS: クローズ条件とオープン条件の定義に間違いがあるようです。 上記の投稿は、クローズ条件の一例です。そこで何が問題なのでしょうか? Vitalie Postolache 2015.04.13 19:57 #8870 rapid_minus:無音である。しかし、いずれの場合も、ポジションを閉じることはできませんZS: クローズポジションとオープンポジションの条件の定義に間違いがあるように思います。上の投稿では、クローズドコンディションの例を挙げています。そこで何が問題なのでしょうか?そうですね......エラーもなく黙々とやっても終わらないのであれば、終了条件がおかしいのでしょう。この条件そのものを考え直し、書き換える必要があるのです。ここの括弧の配置がなぜか間違っている。 if (((Yellow_0-Red_0)<(Yellow_1-Red_1) && ((MA_0<MA_1)&&(MA_1>MA_2))) || ((Yellow_0-Red_0)>(Yellow_1-Red_1) && ((MB_0<MB_1)&&(MB_1>MB_2))))これはどうでしょう? if (((Yellow_0-Red_0<Yellow_1-Red_1) && (MA_0<MA_1 && MA_1>MA_2)) || ((Yellow_0-Red_0>Yellow_1-Red_1) && (MB_0<MB_1 && MB_1>MB_2))) 1...880881882883884885886887888889890891892893894...1178 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
void start()を実行すれば、エラーは発生しません。
ありがとうございました。エラーは出なくなったが、ポジションがまだ閉じない。
原因が何であるかを正確に知るための十分なコードがない
抜粋
void CritCloseBuy()
{
if (((Yellow_0-Red_0)<(Yellow_1-Red_1) && ((MA_0<MA_1)&&(MA_1>MA_2)) || ((Yellow_0-Red_0)>))(Yellow_1-Red_1)&& ((MB_0<MB_1)&&(MB_1>MB_2))))
while(true)
{
ord_close=OrderClose(OrderTicket(),0.1,MarketInfo(OrderSymbol(),MODE_BID),0,Red);
if (ord_close = false)
{
Comment("BAYポジションのクローズに 失敗しました。エラー#",GetLastError());//エラーのメッセージ
break;
}
else
{
Ord=0;
break;
}.
}.
開封の理由かもしれません。
void CritOpen()
{
if (///開くための条件//)
while(true)
{
ticket=OrderSend(Symbol(),OP_BUY,0.)です。1,Ask,0,0,NULL,10011,0,clrNONE); //open order BAY, MAGIC 10011
if(ticket<=0)
{
Comment("ポジションBAY-10011のオープンにエラー#で失敗しました",GetLastError());
break;
}
else
{
Comment("BAY-10011ポジションはロット0でオープンしました。1,price", Ask);
Ord=(Ord+1);
。break;
}
}
抜粋
...before ord_close=OrderClose(OrderTicket(),0.1,MarketInfo(OrderSymbol(),MODE_BID),0,Red);
注文を選択するには、OrderSelect()関数を 使用するとよいでしょう。このようなclose関数のループの目的がわからないのですが...。
before ord_close=OrderClose(OrderTicket(),0.1,MarketInfo(OrderSymbol(),MODE_BID),0,Red);
注文を選択するには、OrderSelect()関数を使用するとよいでしょう。
唯一持っている。実は、最初はそうだったんです。手探り状態で原因追求を開始した。ループの感覚がわからない。
ループで開いたのだから、閉じるのもループで......と、類推してごまかしているだけなのです。
イゴール・キムは私たちのお手本です。
void start() {
ManagePositions();
}.
//+-----------------------------------------------------------------------------
//| 市場価格でポジションを閉じる|
//| パラメータ。|
//| sym - 測定器名 ("" - 現在のシンボル)|
//| op - 操作(-1 - 任意の位置)|
//| mn - MagicNumber(-1 - 任意のマジックを)|
//+----------------------------------------------------------------------------+
void ClosePositions(string sym="", int op=-1, int mn=-1) {
int i, k=OrdersTotal().
if (sym=="") sym=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
if (OrderSymbol()==sym && (op<0 || OrderType()==op)){
if (mn<0 || OrderMagicNumber()==mn) {
if (OrderType()==OP_BUY){
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, clCloseBuy);
}
if (OrderType()==OP_SELL) {
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, clCloseSell);
}
}
}
}
}
}.
しかし、コンパイラはOrderCloseの戻り値をチェックすることを要求している
イゴール・キムは私たちのお手本です。
しかし、コンパイラはOrderCloseの戻り値のチェックを要求しています
では、例のように、まず選択し、次に閉じます。たった1つの注文でも、100万件の注文でも、まずそれぞれの注文が選ばれなければならないからだ。
チェックは非常に簡単です if(!OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, clCloseSell))Print("Closing error #",GetLastError());
イゴール・キムは、私たちのものを例として挙げています。
...
しかし、コンパイラはOrderCloseの戻り値のチェックを要求しています
そこで、例のように、まず選択し、次に閉じるようにします。注文が1件でも100万件でも、まず1件ずつ選択しなければならない。
チェックは非常に簡単です if(!OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, clCloseSell))Print("Closing error #", GetLastError());
次のようにしました: if (!OrderClose(OrderTicket(), OrderLots(), Bid, 0, Red)
{
Comment(" BAYポジションクロージャーは エラー#で失敗しました。",GetLastError());
break;
}
else
{
Ord=0;
break;
}.
戻り値を確認する必要がある」と要求され続ける。
このように作りました。
ord_close=OrderClose(OrderTicket(), OrderLots(), Bid, 0, Red);
if (ord_close = false)
。{
Comment("BAYポジションのクローズに失敗しエラー#",GetLastError()); //エラーメッセージ
break;
}
else
{
Ord=0;
break;
}.
サイレントしかし、いずれの場合も、ポジションを閉じることはできません
ZS: クローズ条件とオープン条件の定義に間違いがあるようです。
上記の投稿は、クローズ条件の一例です。そこで何が問題なのでしょうか?
無音である。しかし、いずれの場合も、ポジションを閉じることはできません
ZS: クローズポジションとオープンポジションの条件の定義に間違いがあるように思います。
上の投稿では、クローズドコンディションの例を挙げています。そこで何が問題なのでしょうか?
そうですね......エラーもなく黙々とやっても終わらないのであれば、終了条件がおかしいのでしょう。この条件そのものを考え直し、書き換える必要があるのです。
ここの括弧の配置がなぜか間違っている。
if (((Yellow_0-Red_0)<(Yellow_1-Red_1) && ((MA_0<MA_1)&&(MA_1>MA_2))) || ((Yellow_0-Red_0)>(Yellow_1-Red_1) && ((MB_0<MB_1)&&(MB_1>MB_2))))
これはどうでしょう?
if (((Yellow_0-Red_0<Yellow_1-Red_1) && (MA_0<MA_1 && MA_1>MA_2)) || ((Yellow_0-Red_0>Yellow_1-Red_1) && (MB_0<MB_1 && MB_1>MB_2)))