MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1428

 
ANDREY:

だいたいのことはわかった...はずだ。ご指摘ありがとうございます。もしよろしければ、配列名$ array[] の前と値$var の前のドル記号の意味を教えていただけませんでしょうか?

なんとなくmql4からじゃない気がするんだけど。

そうです、mqlの ものではありませんが、意味は同じ です。

 
Aleksei Stepanenko:
あなたの場合、本題の「なぜ1分ごとに仕分けをする必要があるのか」という答えが興味深いです。あなたのアイデアをより経済的に実現するには?

掲載したコードは、あくまで私が解決できなかった問題の一例です。実際のコードでは、20〜30個の要素からなる列を1目盛り ごとにソートする必要があります。私はクアッドコアプロセッサーを持っていますが、そのためテスト中に遅延を感じることはありません。それに、実際のコードもそれほど大きなものではありません。しかし、まだ自分の考えを完全にコードという形で表現したわけではありません。完全にコーディングし終わったら、パフォーマンスの観点からどのように改善するかを考え始めるつもりです。

また、mqlで1000個の値を検索するのは、1000個の配列要素をソートしたり、配列を使った他の操作よりも時間がかからないということでよかったでしょうか?ところで、教えていただきたいのですが、mql4ではどの操作に時間がかかるのでしょうか?

ありがとうございました

 
Vitaly Muzichenko:

そうです、mqlの ものではありませんが、意味は同じ です。

また、この言語のいくつかの構文がmqlで使えると理解していいのでしょうか?今後のために、この情報は役に立つと思います。
よろしくお願いします。

 
ANDREY:

また、この言語のいくつかの構文がmqlで使用できるということは正しく理解されていますか?今後のために、この情報は役に立つと思います。
よろしくお願いします。

phpですが、mqlについてはこのフォーラムでも十分 回答があるので、調べる必要はないと思います。

 
Vitaly Muzichenko:

phpですが、mqlについてはこのフォーラムでも十分 回答があるので、調べる必要はないと思います。

了解です。ありがとうございます。

 
ANDREY:

了解です。ありがとうございます。

アウトプットをどうするか、きちんと論理的に考えて、書き始める必要があります。いちいちカチカチと数えなくても、状況が変わったときだけ数えると、いろいろなものがあるんです。

むやみに 刻々と重たい計算をするのではなく、状況の変化を監視して、その後に重たい計算をすればいいのです。

 
Vitaly Muzichenko:

アウトプットをどうしたいのか、きちんと論理的に考えてから書き始める必要があるのです。毎回の刻みで 計算する必要はなく、状況が変わったときだけ計算すればいいというものもたくさんあります。

そのためには、むやみに刻 々と計算するのではなく、状況の変化を見極めてから重い計算をすればよいのです。

すでにロジックを考え、出力で何を得たいかを明確に理解しています。Mql4は(Mql5も少し) 理解しているので、原稿から必要なことはかなり(全てではありませんが)理解している程度です。そして何より、このフォーラムで説明されたことはほとんどすべて理解できます。私は今、自分のコンセプトをコード化しようとしていますが、ただ単にどんな方法でもいいわけではなく、コードは素早く実行されなければなりません。と、とにかく ......今まさに、試行錯誤しながら自分のコンセプトをコーディングし(コーディングの経験はほとんどありません)、同時に新しいことを学び、将来のトライに役立てようと頑張っているところです。

 
ANDREY:

ただし、ランダムにではなく、コードの実行時間が最短になるようにする

そこで、何のためにソートが必要なのかを教えていただければ、別の実装を考えることができるかもしれません。

 
Aleksei Stepanenko:

だから、何のための仕分けなのか教えてください。もしかしたら、別の実装のアイデアが浮かぶかもしれません。

ご協力ありがとうございました。私は1-2日以内にソートを含む実際のコードの一部を完成させ、それをここに投稿して、あなたの専門的な意見を聞こうと思います。

そしてもう一つ、Maxim Kuznetsovが 投稿 くれた情報について質問があります。 彼はあなたよりも頻繁にここを訪れていないので、彼のコードについて何か説明してもらえるとありがたいのですが。

void Convert_7x2_2x7 (const double &src[7][2],double &dst[2][7]) { {...

for(int i=0;i<7;i++)

for(int j=0;j<2;j++)

dst[j][i]=src[i][j]とする。

}

}

じっくりと長い間研究して、こんなことが頭に浮かんだのですが......。

1.ユーザー定義関数です。

2.上記コードに言及がない。メインコードの void OnTick() 内で暗示されています。

3.このコードでは、配列のインデックスのみを変更します。配列の項目の値がどうなるかは、推測するしかない。

私が理解できないのは、この点です。

1.この関数の最終的な実行により、dst[j][i] dst[7][2]の新しい 値を取得する場合 、ループのポイントは何だった のでしょうか? dst[j][i]それらのインデックス 値を即座に明示的に割り当てることはできないのでしょうか?

2.このコードでインデックスの値を変更すると、必要な配列要素の値が自動的に新しいセルに変更されるということでよいでしょうか。

3.このカスタム関数がどのように呼び出されるのか、説明を書いていただけるとありがたいです。

配列というテーマは私にとってかなり新しいもので、この情報は私の現在のコードとは関係ありませんが、将来的にはきっと役に立つと思います。そして、私はもともと将来のための蓄えをするのが好きなんです。:-)
お世話になりました。

 

いや、プロには程遠い。

double LoY[31][2], Mirror[2][31];

//вызывается так:
ConvertArray(LoY,Mirror);

//все значения строк из массива LoY запишутся в столбцы Mirror,
//условно сказать, массив повернётся
void ConvertArray(const double &src[31][2],double &dst[2][31])
   {
   for(int i=0; i<31; i++) for(int j=0; j<2; j++) dst[j][i]=src[i][j];
   }