私は完全に迷子になった - ページ 2

 
zortharg: 私は誰かに商業的価値のあるものを作ってくれと頼んだわけではありません。私は誰かに「私の ために私の方法をコード化して くれ」と頼んでいるのではありませんよ、WHRoeder。ただ、出発点が必要なんです。
  1. 確かに、あなたが書いているように聞こえました。
    zortharg誰か書いて くれないかなぁということです。
  2. 私はあなたに3つのリンクをあげました:learn to code たくさんの出発点。
 
zortharg:

私は誰かに商業的価値のあるものを作ってくれと頼んだわけではありません。WHRoederさん、私は誰かに「私のために私のメソッドをコード化してくれ」と頼んでいるのではありません。私はただ、出発点が必要なのです。あなたが「検索」の下に置いたリンクから何かを見つけ出すことができるかもしれませんが、私は本当に「これが必要なものです」という骨が折れるようなものが欲しいのです。プログラムが実際にどのようなものであるべきかがわからない。何が厳密に必要なのかがわからない。何の参考にもならないままいきなり自分でやろうとしても、何が足りないのかもわからないので、コンパイラーエラーが出るだけです。


ここを見て ください
 

私は、ピースを組み立てる入り口にいるのです。しかし、私はまだそこに到達していません。意味不明なことがあるのです。たとえば、こんな感じ。

https://docs.mql4.com/array/ArrayCopySeries

これは意味がない。もし私が宣言した配列が同じサイズでなかったらどうなるのでしょうか?基本的に同じサイズでないことは保証されています。配列の末尾から歩き出したくないので、配列は自分が思っているよりも大きいと宣言できますが、もし大きくなったら?また、それより小さい場合はどうなるのでしょうか?もし「配列」が通貨データよりも多くの項目を持つ場合、残りの項目は 0 で埋められるのでしょうか?また、二重インデックスの配列の場合はどうなるのでしょうか?例えば、配列のサイズを [16384][6] と宣言して、[0:16383,0] にコピーしたいデータの長さが 3000 だったとします。どうすればいいのでしょうか?通貨データに設定するために別の配列変数が必要で、それはシングルインデックス変数(16384×6サイズではなく16384サイズだけ)になり、その最初の3000エントリに通貨データが書き込まれ、3000から16383エントリには0が書き込まれて、あとは私が一時変数の中身を [16384][6] サイズ配列に移動すればいいのでしょうか?というのが、今の私のパズルです。

 
zortharg:

私は、ピースを組み立てる入り口にいるのです。しかし、私はまだそこに到達していません。意味不明なことがあるのです。たとえば、こんな感じ。

https://docs.mql4.com/array/ArrayCopySeries

これでは意味がありません。もし宣言した配列が同じサイズでなかったらどうなるのでしょうか?基本的に同じサイズでないことは保証されています。配列の末尾を歩きたくないので、配列は自分が思っているよりも大きいと宣言することができますが、もし大きくなったらどうするのでしょうか?また、それより小さい場合はどうなるのでしょうか?もし「配列」が通貨データよりも多くの項目を持つ場合、残りの項目は 0 で埋められるのでしょうか?また、2重インデックスの配列の場合はどうなるのでしょうか?例えば、配列のサイズを [16384][6] と宣言して、[0:16383,0] にコピーしたいデータの長さが 3000 だったとします。どうすればいいのでしょうか?通貨データに設定するために別の配列変数が必要で、それはシングルインデックス変数(16384×6サイズではなく16384サイズだけ)で、その最初の3000エントリに通貨データが書き込まれ、3000から16383エントリには0が書き込まれて、あとは私が一時変数の中身を[16384][6]サイズの配列に移動すればいいのでしょうか?というのが、今の私のパズルです。

Docsをもう一度読んでみてください。引用すると、"データ配列には実際のメモリ割り当てがなく、何もコピーさ れません。" と書かれています。

これは単に参照を設定するだけなので、コピー先の配列にサイズを設定する必要はありません。ただ宣言するだけです。ドキュメントにある例をもう一度見てください。宣言の中にsizeがありません。

datetime daytimes[];
ArrayCopySeries(daytimes,MODE_TIME,Symbol(),PERIOD_D1);
 

では、icloseで過去の価格を一回ずつダウンロードしなければならないのですか? https://docs.mql4.com/series/iClose 私が思うにその問題点は、ダウンロードしている最中にデータが更新される可能性があることです。ブロックとして全体をダウンロードするのは非常に素晴らしいことです。iTimeで時間をダウンロードし、icloseを使い、同じインデックスで再びiTimeを使い、もし時間が変わっていたら、新しいバー時間間隔が始まっているので、インデックス番号を戻さなければならないのではと思います。それとも、私が理解していない何かがあるのでしょうか?

 

私たちは同じ言語を話しているとは思いません。最初にArrayCopySeries関数について質問され、次にiCloseですべてのデータをダウンロードしたいと言われました。

すべてのデータをダウンロードする必要はなく、必要なときにいつでも利用できます。

何をしようとしているのでしょうか?

最初の配列から完全にアクセスできるのに、なぜ配列の中のすべてのデータを別の配列にコピーする必要があるのでしょうか?

外部のDLLに情報を渡して処理しようとしているのでしょうか?もしそうなら、"CopyRates" 関数を使うべきです -https://www.mql5.com/en/docs/series/copyrates

それ以外の場合は、すべてのデータをダウンロードする必要はありません。通常の方法ですでにアクセス可能です。

 

あなたの最初の投稿を詳しく読み直し、あなたが何を達成しようとしているのかを確認しようと思い、あなたが全く間違った方向に進んでいることに気づきました。

あなたが説明したように、すべてのデータをRAMにダウンロードする必要はありません。MetaTrader環境がすでに行ってくれているのです。あなたがしなければならないのは、通常の方法でそれにアクセスすることです。

このサイトのコード ベースにある多くのEAの例や、このサイトにもあるMQL4プログラミングの入門書を見て みることをお勧めします。

また、EAをどのように書くかについて説明した様々な記事も読んでみてください。

そうすれば、「車輪の再発明」を試みる代わりに、どのように行われるかを学ぶことができます。

 

このスレッドの最初の数投稿を読めば、それがわかると思います。このフォーラムの人々の大胆さ!彼らは私に何も教えることを拒否し、そして次に。彼らは私に何かを教えることを拒否し、その後、彼らはすでに "通常の方法 "について知らないために私を嘲笑う。ああDO TELL!しかし、それは疑わしく、とにかく理想的ではありません。僕がやろうとしているのは、為替市場の データを自分のコンピューターのRAMにダウンロードし、それに対して計算を行い、コンピューターに売買注文をアップロードさせて為替市場で取引を行うことだ。それが私のやりたいことです。計算をするのが私のコンピュータでないとしたら、いったい何が計算をするのだろう?どこかの遠隔地のコンピュータか?過去の価格にアクセスするたびにインターネット上でデータを送受信するわけにはいきません。もし計算の過程で1000回その価格にアクセスするとしたら、そのアクセスにかかる時間は何千倍、何百倍にもなって計算を遅らせることになるでしょう。これは、コンピュータのアーキテクチャにRAMがある理由の一つで、ハードディスクへの読み書きにかかる時間はずっと長くなります。これと同じ原理で、特定の情報にアクセスするたびにインターネット上でリクエストをするのは良くないので、コンピュータ上のアレイにデータを保存する必要があります。

取引ロボットが何をすることになっているのか、あなたはどんな考えを持っていますか?

 
zortharg:

このスレッドの最初の数投稿を読めば、それが分かるでしょう。このフォーラムの人々の大胆さ!彼らは私に何も教えることを拒否し、そして次に。彼らは私に何かを教えることを拒否し、その後、彼らはすでに "通常の方法 "について知らないために私を嘲笑う。ああDO TELL!しかし、それは疑わしく、とにかく理想的ではありません。僕がやろうとしているのは、為替市場のデータを自分のコンピューターのRAMにダウンロードし、それに対して計算を行い、コンピューターに売買注文をアップロードさせて為替市場で取引を行うことだ。それが私のやりたいことです。計算をするのが私のコンピュータでないとしたら、いったい何が計算をするのだろう?どこかの遠隔地のコンピュータか?過去の価格にアクセスするたびにインターネット上でデータを送受信するわけにはいきません。もし計算の過程で1000回その価格にアクセスするとしたら、そのアクセスにかかる時間は何千倍、何百倍にもなって計算を遅らせることになるでしょう。これは、コンピュータのアーキテクチャにRAMがある理由の一つで、ハードディスクへの読み書きにかかる時間はずっと長くなります。これと同じ原理で、特定の情報にアクセスするたびにインターネット上でリクエストをするのは良くないので、コンピュータ上のアレイにデータを保存する必要があります。

取引ロボットが何をするものだと考えているのですか?

MetaTraderとMQLの環境はそういうものではありません!私が言ったように!RAMにデータを再ダウンロードしないでください。M QL4でコーディングする方法を教えようとするのはやめてください。あなたこそ、コードの書き方の先入観を捨てて、まずは手持ちのツールや環境を勉強してください。

もし、人にSCOFFされたくなかったら、怠けずにドキュメントを(最初から最後まで)読みましょう。このサイトには、ドキュメントやコード例へのリンクがたくさんあります。

私が始めた頃は、まず環境に慣れることなく、助けを求めることはしませんでした。本やドキュメント、そしてこのサイトにあるたくさんの、たくさんの例を 時間をかけて読み、やり方を学びました。

あなたは赤ちゃんではないので、匙を投げられる必要はありません。ここや他の多くのサイトにある完全に無料のドキュメントを読んで学んでください。MQL4やMQL5でEAを書く方法についての本(例えば、Andrew R. YoungのExpert Advisor Programmingなど)を買うこともできます。

しかし、もしあなたが先生を探しているのであれば、話は別です。通常、あなたは「パーソナルトレーナー」を雇うことに対価を支払います。あなたは喜んでお金を払いますか?ジョブズ・ セクション(https://www.mql5.com/en/job)では、多くの人がそのような依頼を受け入れると思います。

また、あなたに最初にコメントしたのは「ubzen」さんで、彼は、あなたがすでに他の言語で優れたプログラマーであると主張したので、「入門書」と「参考文献」を読むことから始めるよう勧めました。とてもいいアドバイスですね。

もう一つ、もしあなたがその小さな灰色の細胞を使って、ここの記事欄で検索していたら、非常に古いが今でも有効なこの記事を見つけたことでしょう。

だから、文句と怠惰であることを停止し、研究開発のあなたの「研究」の部分を行う。あなたはそれを知っているのではありませんか?

 
zortharg:

このスレッドの最初の数記事を読めば、それがわかると思います。このフォーラムの人々の大胆さ!彼らは私に何も教えることを拒否し、そして次に。彼らは私に何かを教えることを拒否し、その後、彼らはすでに "通常の方法 "について知らないために私を嘲笑う。ああDO TELL!しかし、それは疑わしく、とにかく理想的な音ではありません。

なぜ、彼らはあなたを助けなければならないのですか? なぜ、彼らはあなたに義務があると思いますか? 彼らはあなたと同じユーザーである。.あなたはこのフォーラムで誰を助けたのですか?