最適化中の単一アレイ計算 - ページ 7 12345678 新しいコメント forexman77 2016.09.20 15:04 #61 forexman77:グローバルレベルで配列を宣言して みた(mql4コード)イニテに記入する開始時に設定されていない場合、1971年の日付を表示する、つまり配列は空であるスタートで配列を埋めていくと、値が表示される。配列がデータタイムに再初期化されるのが原因かもしれませんが、それがないとコンパイルできないのでしょうか?アレイが消える。何が間違っているのか?ここで、もし誰かがそれを必要とするならば、私はアイデアを持っています。ある配列を別の配列にコピーした。datetime T_[];//на глобальном уровне ////////////////////////////////////////////////////////////////// int init() { ArraySetAsSeries(T_,true); massiv(); return(0); } ///////////////////////////////////////////////////////////////// int start() { if(ArraySize(T_)==0) massiv(); return(0); } //////////////////////////////////////////////////////////////// void massiv() { datetime T[40]= { 1262731020,1262735700,1262821920,1262903400,1262989740,1263247200,1263339060,1263420000,1263507480,1263595500, 1265324700,1265407200,1265752980,1265926500,1265930820,1267657200,1267740300,1267826460,1268175840,1268346360, 1270504920,1270684140,1270768500,1272924180,1273011720,1273097100,1273272240,1273528800,1273617180,1275344100, 1275516000,1275602400,1275689160,1276034400,1276124580,1276208700,1276211640,1278027960,1278369780,1278373920 }; ArraySetAsSeries(T,true); ArrayInitialize(T_,0); ArrayResize(T_,40); ArrayCopy(T_,T,0,0,WHOLE_ARRAY); ArrayFree(T); } Alexey Viktorov 2016.09.20 15:17 #62 forexman77:こちらも必要な人がいれば、アイデアを出します。ある配列から別の配列にコピーする。これは何のため?当初の質問は、その後の最適化の繰り返しで配列が再計算されないようにするためでした。これで、もう一方に記入・コピーするだけです。何の役にも立ちません。この配列T[40]は、説明のためにこのように表現されているだけで、実際には順次計算されて充填されるはずだと私は考えています。次の最適化実行の たびに、この配列は以前と同じように再計算されますが、唯一の違いは、配列の構成が異なるということです。 forexman77 2016.09.20 15:31 #63 Alexey Viktorov:何のために?当初の質問は、その後の最適化の繰り返しで配列が再計算されないようにするためでした。そして今、それは単に埋められ、別のものにコピーされています。何の役にも立ちません。この配列T[40]は、説明のためにこのように表現されているだけで、実際には順次計算されて充填されるはずだと私は考えています。次回の最適化実行の たびに、この配列は以前と同じように再計算されますが、唯一の違いは、配列が異なることです。中括弧を通して宣言された配列が保存されませんでした。グローバルに宣言してからiniteで埋めることができませんでした(配列は1つの実行の内部で保存されませんでした)。最適化の繰り返しの間は、私の理解では、配列は保存されず、つまり、プログラムはそれまでのものをすべてリセットしてしまいます。 Alexey Viktorov 2016.09.20 15:52 #64 forexman77:中括弧で宣言された配列が保存されませんでした。グローバルに宣言して、initeで埋めることができませんでした(配列が1回の実行で保存されませんでした)。最適化の繰り返しの間は、私の理解では、配列は保存されず、つまり、プログラムはそれまでのものをすべてリセットしてしまいます。 そうやってループで埋めていくとあっという間です。しかし、配列項目の 計算に時間がかかるようでは、また別の問題です。その場合、配列の要素は反復処理ごとに再計算されます。また、この方法で配列が満たされると、中括弧で囲まれたすべての要素をグローバルに列挙することができます。 このワザは意味が分かりませんが......。 forexman77 2016.09.20 16:05 #65 Alexey Viktorov: また、このように配列が埋め尽くされると、グローバルレベルですべての要素を中括弧で囲んで一覧表示することもできます。 何か、このワザは意味がわからない......。 グローバルにもできる。でも、そこに数千個の元素の塔を乗せるのはちょっと......) Alexey Viktorov 2016.09.20 17:11 #66 forexman77: グローバルなものでやってもいいんじゃない?でも、その上に数千個の元素の塔を建てるというのは、ちょっと嫌でしたね(笑)。思い通りになってよかったですね。スピードは上がったのでしょうか? forexman77 2016.09.20 18:51 #67 Alexey Viktorov:思い通りになってよかったですね。スピードは上がったのでしょうか? 速くなっていますね。 forexman77 2016.11.06 10:49 #68 新しいトピックを作成したわけではありません。今、私は次のことをしようとしています:最初の値date、2番目と3番目の数字doubleを持つ配列があります。配列を日付でソートする必要があるのですが、2番目と3番目の値を日付にバインドしたいのです。そして、複数の配列を1つにまとめて、日付順に並べ替えようと思っています。この方法でやってみましたが、私の理解では、ソートは配列のインデックス、つまりiで行われます。double m[215][3]; m[i][0]=Data; m[i][1]=f1; m[i][2]=f2; Anatoli Kazharski 2016.11.06 11:00 #69 forexman77:新しいトピックを作成したわけではありません。今、私は次のことをしようとしています:最初の値date、2番目と3番目の数字doubleを持つ配列があります。日付の値で配列をソートする必要がありますが、2番目と3番目の値が日付に関連付けられます。... こちらをご覧ください: https://www.mql5.com/ru/forum/42036 Сортировка двухмерного массива. www.mql5.com Форум трейдеров MQL5.community forexman77 2016.11.06 11:21 #70 Anatoli Kazharski: こちらをご覧ください: https://www.mql5.com/ru/forum/42036ほとんど授業ばかりで、私にとっては暗黒の森のようなものです。しかし、ある思いが湧いてきました。日付と数字を別々に配列にする。ただ、ソート後の日付があるインデックス番号を取得する方法、つまり、2次元にあるiを取得する方法はありますか?datetime m[215][1];double d[215][2]; m[0][i]=Dat_DtTm; d[i][0]=f1; d[i][1]=f2; 12345678 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
グローバルレベルで配列を宣言して みた(mql4コード)
イニテに記入する
開始時に設定されていない場合、1971年の日付を表示する、つまり配列は空である
スタートで配列を埋めていくと、値が表示される。配列がデータタイムに再初期化されるのが原因かもしれませんが、それがないとコンパイルできないのでしょうか?
アレイが消える。何が間違っているのか?
ここで、もし誰かがそれを必要とするならば、私はアイデアを持っています。ある配列を別の配列にコピーした。
こちらも必要な人がいれば、アイデアを出します。ある配列から別の配列にコピーする。
これは何のため?
当初の質問は、その後の最適化の繰り返しで配列が再計算されないようにするためでした。これで、もう一方に記入・コピーするだけです。何の役にも立ちません。この配列T[40]は、説明のためにこのように表現されているだけで、実際には順次計算されて充填されるはずだと私は考えています。次の最適化実行の たびに、この配列は以前と同じように再計算されますが、唯一の違いは、配列の構成が異なるということです。
何のために?
当初の質問は、その後の最適化の繰り返しで配列が再計算されないようにするためでした。そして今、それは単に埋められ、別のものにコピーされています。何の役にも立ちません。この配列T[40]は、説明のためにこのように表現されているだけで、実際には順次計算されて充填されるはずだと私は考えています。次回の最適化実行の たびに、この配列は以前と同じように再計算されますが、唯一の違いは、配列が異なることです。
中括弧を通して宣言された配列が保存されませんでした。グローバルに宣言してからiniteで埋めることができませんでした(配列は1つの実行の内部で保存されませんでした)。
最適化の繰り返しの間は、私の理解では、配列は保存されず、つまり、プログラムはそれまでのものをすべてリセットしてしまいます。
中括弧で宣言された配列が保存されませんでした。グローバルに宣言して、initeで埋めることができませんでした(配列が1回の実行で保存されませんでした)。
最適化の繰り返しの間は、私の理解では、配列は保存されず、つまり、プログラムはそれまでのものをすべてリセットしてしまいます。
また、このように配列が埋め尽くされると、グローバルレベルですべての要素を中括弧で囲んで一覧表示することもできます。 何か、このワザは意味がわからない......。
グローバルなものでやってもいいんじゃない?でも、その上に数千個の元素の塔を建てるというのは、ちょっと嫌でしたね(笑)。
思い通りになってよかったですね。
スピードは上がったのでしょうか?
思い通りになってよかったですね。
スピードは上がったのでしょうか?
新しいトピックを作成したわけではありません。
今、私は次のことをしようとしています:最初の値date、2番目と3番目の数字doubleを持つ配列があります。配列を日付でソートする必要があるのですが、2番目と3番目の値を日付にバインドしたいのです。
そして、複数の配列を1つにまとめて、日付順に並べ替えようと思っています。
この方法でやってみましたが、私の理解では、ソートは配列のインデックス、つまりiで行われます。
m[i][0]=Data;
m[i][1]=f1;
m[i][2]=f2;
新しいトピックを作成したわけではありません。
今、私は次のことをしようとしています:最初の値date、2番目と3番目の数字doubleを持つ配列があります。日付の値で配列をソートする必要がありますが、2番目と3番目の値が日付に関連付けられます。
...
こちらをご覧ください: https://www.mql5.com/ru/forum/42036
ほとんど授業ばかりで、私にとっては暗黒の森のようなものです。しかし、ある思いが湧いてきました。日付と数字を別々に配列にする。ただ、ソート後の日付があるインデックス番号を取得する方法、つまり、2次元にあるiを取得する方法はありますか?
double d[215][2];
m[0][i]=Dat_DtTm;
d[i][0]=f1;
d[i][1]=f2;