オープンポジションをグループ分けする - ページ 5 12345678910111213 新しいコメント Aliaksandr Hryshyn 2020.03.23 13:54 #41 Alexey Viktorov: たくさんあるのは?毎回のクリックでも埋まらない配列項目?どのように目立たせるのか? このコードは、わざと悪くしたかのように目に刺さる。 まあ、違いがないのなら、この方法でやってみよう。 for(int i = 0; i < 10; i++) { ArrayResize(arrTest, i+1); arrTest[i][0] = iOpen(_Symbol, PERIOD_CURRENT, i); arrTest[i][1] = iClose(_Symbol, PERIOD_CURRENT, i); for(int j=0;j<100;j++) Sleep(1); } なぜダメなのか? ArrayResize(arrTest, 10); for(int i = 0; i < 10; i++) { arrTest[i][0] = iOpen(_Symbol, PERIOD_CURRENT, i); arrTest[i][1] = iClose(_Symbol, PERIOD_CURRENT, i); } Alexey Viktorov 2020.03.23 13:57 #42 Aliaksandr Hryshyn: このコードは、わざと悪くしたかのように目に刺さる。 まあ、違いがないのなら、この方法でやってみよう。 なぜ? ps; あ~、なるほどね。まあ、これは一例ですが。作業配列が埋まるとき,おそらく1つのインデックスで埋まるでしょう.そんな微妙なところに気を配らなければならないバリアントではない。 Aliaksandr Hryshyn 2020.03.23 13:58 #43 Alexey Viktorov: なぜ? おそらく、サイズがあらかじめ分かっている場合に、ループ内で配列を変更させるためでしょう。 正確な理由は分かりませんが :)。 フリーランスなんでしょう!?恐るべし :) Alexey Viktorov 2020.03.23 14:07 #44 Aliaksandr Hryshyn: おそらく、サイズがあらかじめ分かっている場合に、ループ内で配列を変更させるためでしょう。 正確な理由は分かりませんが :)。 フリーランスなんでしょ!恐るべし :) それがどうした? Sergey Voytsekhovsky 2020.03.23 16:11 #45 Alexey Viktorov:それはゴミだ。マニュアルを読まずにこの機能を使ってしまった ... うまくいきました!ありがとうございました。私が書いたことは確かにナンセンスでした。ArrayRemoveの 削除関数は、 どのような次元の配列に対しても問題なく 機能します。 エラーは他の場所にあった。関数を適用した後、次のステップでこの変数が再びループ内で使用され、配列が範囲外になったため、今度はより小さな配列に 再定義する必要がありました(用語が間違っているかもしれませんが、自分では明確に理解できたと思います)。 以下、添付ファイルに作業用バージョンを掲載します。微妙な点が強調されています。 //+------------------------------------------------------------------+ int Array_Caste_Positions_Creating(){ int n = 0; long ticket = 0; bool new_pos = true; //---Запись новых тикетов в массив позиций int All_Position = PositionsTotal(); int Array_Size = ArrayRange(Arr_Position,0); //--- for(int i = 0; i < All_Position; i++){ if(m_position.SelectByIndex(i)){ ticket = PositionGetInteger(POSITION_TICKET); new_pos = true;} for(int e = 0; e < Array_Size; e++){ if(Arr_Position[e][0]==ticket){ new_pos = false; n++; break;}} if(new_pos){ int New_Size = Array_Size+1; ArrayResize(Arr_Position,New_Size,0); Arr_Position[Array_Size][0] = (int)ticket;//Ticket Arr_Position[Array_Size][1] = 0;//Number_Caste (0 = начальные позиции) n++;}} //---Удаление из массива мёртвых тикетов Array_Size = ArrayRange(Arr_Position,0); All_Position = PositionsTotal(); //--- for(int e = 0; e < Array_Size; e++){ int ticket_dead = Arr_Position[e][0]; bool dead_pos = true; for(int i = 0; i < All_Position; i++){ if(m_position.SelectByIndex(i)){ if(ticket_dead == PositionGetInteger(POSITION_TICKET)){ dead_pos = false; n++; break;}}} if(dead_pos){ ArrayRemove(Arr_Position,e,1); Array_Size = ArrayRange(Arr_Position,0);}} //--- return(n);} //+------------------------------------------------------------------+ ファイル: Sower_1_6.mq5 19 kb Sergey Voytsekhovsky 2020.03.23 16:33 #46 自分の教え方が正しいと主張する2人の教師の言い争いに、知らず知らずのうちに同席している悪ガキのような気分である。 私の繊細な意見を述べさせてください。 Alexey Viktorovが 投稿した例のコードは若干不完全でしたが、彼が提示した考えは正しく、私たちの理解を助けるものでした。また、フリーランスの人が、1円でも余計なお金を取ろうとせず、無償で手伝ってくれるのであれば、私はその人を尊敬しています。ありがとうございます。 アリクサンデル・フリシン 「ありがとうございます。あなたも無関心ではなく、心から助けたいと思い、それを実行してくれました。あなたの批判がなければ、どのような展開になっていたか、誰にもわからないでしょう。 Alexey Viktorov 2020.03.23 16:34 #47 Sergey Voytsekhovsky: うまくいきました!ありがとうございました。私が書いたことは本当にナンセンスでした。ArrayRemoveの 削除関数は、 どのような次元の配列に対しても問題なく 機能します。 エラーは他の場所にあった。関数を適用した後、次のステップでこの変数が再びループ内で使用され、配列が範囲外になったため、今度はより小さな配列に再定義する必要がありました(用語が間違っているかもしれませんが、自分では明確に理解できたと思います)。 以下、添付ファイルに作業用バージョンを掲載します。微妙な点が強調されています。 クイックチュートリアル ここにあるのは if(m_position.SelectByIndex(i)){ ticket = PositionGetInteger(POSITION_TICKET); で置き換えることができます。 t icket = PositionGetTicket(i); Sergey Voytsekhovsky 2020.03.23 16:39 #48 Alexey Viktorov: ちょっとしたリテラシー この1枚 に置き換えることができます。 素晴らしい、もしコードの他の場所が拒絶反応を起こすなら - 私に見せてください、私は自作コーダーです、私が掘ったもの、それは私のものです、知識は体系的ではなく、断片的です。正しい道筋をご指導いただけると大変ありがたいです。 修正され、現在はこのようになっています。 //---Запись новых тикетов в массив позиций int All_Position = PositionsTotal(); int Array_Size = ArrayRange(Arr_Position,0); //--- for(int i = 0; i < All_Position; i++){ ticket = (int)PositionGetTicket(i); new_pos = true; for(int e = 0; e < Array_Size; e++){ if(Arr_Position[e][0]==ticket){ new_pos = false; n++; break;}} if(new_pos){ int New_Size = Array_Size+1; ArrayResize(Arr_Position,New_Size,0); Arr_Position[Array_Size][0] = (int)ticket;//Ticket Arr_Position[Array_Size][1] = 0;//Number_Caste (0 = начальные позиции) n++;}} Alexey Viktorov 2020.03.23 17:01 #49 Sergey Voytsekhovsky: 素晴らしい、もしコードの中に拒絶反応を起こす場所が他にあれば - ぜひ見せてください。私は自作コーダーで、見つけたものは私のもので、知識は体系的ではなく、断片的です。正しい道筋をご指導いただければ幸いです。 たまにしかない。記録は残さない。実は私も独学で、独学のおっさんなんです。 mql5のチケットはulong型 です。 そうすれば、タイプに持ち込むものが少なくなる Sergey Voytsekhovsky 2020.03.23 17:09 #50 Alexey Viktorov: 何かきっかけがあったときだけ。私は見ませんよ。そして、一般的には、私も独学で、しかも古い独学でやっています。 mql5のチケットはulong型 です。 そうすれば、タイプに持ち込むものが少なくなる ありがとうございます、参考にさせていただきます、後ほどこちらでやり直します。 12345678910111213 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
たくさんあるのは?毎回のクリックでも埋まらない配列項目?どのように目立たせるのか?
このコードは、わざと悪くしたかのように目に刺さる。
まあ、違いがないのなら、この方法でやってみよう。
なぜダメなのか?
このコードは、わざと悪くしたかのように目に刺さる。
まあ、違いがないのなら、この方法でやってみよう。
なぜ?
ps; あ~、なるほどね。まあ、これは一例ですが。作業配列が埋まるとき,おそらく1つのインデックスで埋まるでしょう.そんな微妙なところに気を配らなければならないバリアントではない。なぜ?
おそらく、サイズがあらかじめ分かっている場合に、ループ内で配列を変更させるためでしょう。
正確な理由は分かりませんが :)。
フリーランスなんでしょう!?恐るべし :)
おそらく、サイズがあらかじめ分かっている場合に、ループ内で配列を変更させるためでしょう。
正確な理由は分かりませんが :)。
フリーランスなんでしょ!恐るべし :)
それがどうした?
それはゴミだ。マニュアルを読まずにこの機能を使ってしまった ...
うまくいきました!ありがとうございました。私が書いたことは確かにナンセンスでした。ArrayRemoveの 削除関数は、 どのような次元の配列に対しても問題なく 機能します。
エラーは他の場所にあった。関数を適用した後、次のステップでこの変数が再びループ内で使用され、配列が範囲外になったため、今度はより小さな配列に 再定義する必要がありました(用語が間違っているかもしれませんが、自分では明確に理解できたと思います)。
以下、添付ファイルに作業用バージョンを掲載します。微妙な点が強調されています。
自分の教え方が正しいと主張する2人の教師の言い争いに、知らず知らずのうちに同席している悪ガキのような気分である。
私の繊細な意見を述べさせてください。
Alexey Viktorovが 投稿した例のコードは若干不完全でしたが、彼が提示した考えは正しく、私たちの理解を助けるものでした。また、フリーランスの人が、1円でも余計なお金を取ろうとせず、無償で手伝ってくれるのであれば、私はその人を尊敬しています。ありがとうございます。
アリクサンデル・フリシン 「ありがとうございます。あなたも無関心ではなく、心から助けたいと思い、それを実行してくれました。あなたの批判がなければ、どのような展開になっていたか、誰にもわからないでしょう。
うまくいきました!ありがとうございました。私が書いたことは本当にナンセンスでした。ArrayRemoveの 削除関数は、 どのような次元の配列に対しても問題なく 機能します。
エラーは他の場所にあった。関数を適用した後、次のステップでこの変数が再びループ内で使用され、配列が範囲外になったため、今度はより小さな配列に再定義する必要がありました(用語が間違っているかもしれませんが、自分では明確に理解できたと思います)。
以下、添付ファイルに作業用バージョンを掲載します。微妙な点が強調されています。
クイックチュートリアル
ここにあるのは
で置き換えることができます。
ちょっとしたリテラシー
この1枚
に置き換えることができます。
素晴らしい、もしコードの他の場所が拒絶反応を起こすなら - 私に見せてください、私は自作コーダーです、私が掘ったもの、それは私のものです、知識は体系的ではなく、断片的です。正しい道筋をご指導いただけると大変ありがたいです。
修正され、現在はこのようになっています。
素晴らしい、もしコードの中に拒絶反応を起こす場所が他にあれば - ぜひ見せてください。私は自作コーダーで、見つけたものは私のもので、知識は体系的ではなく、断片的です。正しい道筋をご指導いただければ幸いです。
たまにしかない。記録は残さない。実は私も独学で、独学のおっさんなんです。
mql5のチケットはulong型 です。
そうすれば、タイプに持ち込むものが少なくなる
何かきっかけがあったときだけ。私は見ませんよ。そして、一般的には、私も独学で、しかも古い独学でやっています。
mql5のチケットはulong型 です。
そうすれば、タイプに持ち込むものが少なくなる
ありがとうございます、参考にさせていただきます、後ほどこちらでやり直します。