新参者の冒険 - ページ 5

 

やあ、Tim。

昨日は午前2時頃まで起きていて、PSCをCに変換(疑似コードをコードに変換)していました。仕事から帰ってきてすぐに始めたんだ。

最初のドラフトを書き終えて、i) いくつか足りないものがあること、ii) すべてを「ペア」仕様にしなければならないこと、に気づきました。

私が正しい道を歩んでいるかどうかを確認するために、この件に関して何か知恵を貸していただけないでしょうか。

1.各iMAを 宣言するときにシンボルを指定しないとEAが正しく動作しないので、15個のemaを宣言する必要があります(5つのシンボルとシンボルごとに3つのMa)?

2.CountOrders関数がない。これも5組だからです。10個の関数が必要です。EUR_USD_BuyCount, EUR_USD_SellCount; など。?

3.コードを書くのに効率的な方法と、「初心者」の方法があることに気づきました。私は初心者の方法で行い、その後、効率的な方法を教えていただけると幸いです。

4.マジックナンバー私はあなたがやっていることに憧れ、そのため複数のEAを同時に実行したいと思っています。Magic Numbersについて調べてみましたが、他のコードを見てもどうしてもよくわかりません。コンピュータが異なるEAを区別できるようにする方法について、もっと詳しく知ることができる場所を教えていただけないでしょうか。

ありがとうございました。

ニック

 

こんにちは ニック

申し訳ありませんが、私はここであなたを失っています。私たちはまた馬よりカートを優先しているようで、その結果、後戻りしています。私の前の投稿で、私はあなたがMetaTrader EAウィザードと我々がすでに書いた疑似コードを使用してプログラムの基本的な構造をセットアップすることを提案しました。あなたは戻って、そのステップを完了し、私が見ているために、このフォーラムで結果(mq4ファイル)を投稿することができますか?そうすれば、次のステップに進むことができます。また、万が一、特定のブローカーの要件に問題がある場合は、その都度対処することができます。


最初のEAを作成するプロセスを指導することはできますが、それはあなたが一歩ずつやって、その結果を毎回このフォーラムに投稿して、私がレビューすることを望んでいる場合のみです。そうでなければ、この小さなプロジェクトは、私とあなたの時間を浪費して、レールから外れてしまうと思います。

このプロジェクトは、私やあなたの時間を無駄にすることになると思います。

ニックは、ある人の悪いコードを整理するのは、イライラするし、時間がかかるものです。通常、それは努力に値するものではありません。


ありがとうございました。

Tim

 

やあ、ティム。

イライラさせてすみません、誤解していました。あなたが「動かないのに今すぐコーディングしろ」と言ったので、私は先にコーディングしたほうがいいと思ったんです。それで、あなたの手間を省くために、かなりの時間をかけてコーディングしたのですが、結果的に逆になってしまいました。

でも、心配しないでください。EAフレームワークのPseudoCodeを投稿します。もし、あなたがその時までに忍耐力を失っていなければ、各ブロックについて私を指導することができます:)

 

やあ、Tim。


EA形式の疑似コードを括弧付きで編集して添付しました。もしまだあなたの言いたいことがわからなかったら教えてください、必要に応じて変更します。フラグとフィルターだけは、あなたの時間を節約するために宣言しました。他は何も触ってない。関数の 名前を作らなかったのは、それが何になるのかまだ理解できていないからです。ボス、これからどうするんですか?

ファイル:
 
niko:

やあ、Tim。


EA形式の疑似コードを括弧付きで編集して添付しました。もしまだあなたの言いたいことがわからなかったら教えてください、必要に応じて変更します。フラグとフィルターだけは、あなたの時間を節約するために宣言しました。他は何も触ってない。関数の名前を作らなかったのは、それが何になるのかまだ理解できていないからです。ボス、次は何をするんですか?

こんにちは。疑似コードの必要性には賛成ですが、ちょっとやりすぎだと思います(Timさん、ごめんなさい)。

今、これを作ってみました。30分しかかけてないので、エラーや構文などのチェックはしていません。

しかし、もしあなたがそれを試してみるなら、それはあなたが必要とするものにかなり近いはずです。私は、構造を見てもらうために、意図的に骨組みだけにしておきましたが、それでもやるべきことはあります。例として、fnTrade関数の エラーチェックとTakeProfitの処理のエラーは意図的に省いてあります。


CB


UPDATE: Timのその後の投稿により、私はあなたのために作成したEAを削除し、代わりにTimにそれをさせることにしました。


TIM: マルチカレンシーのロジックについてのあなたの投稿を参考に、私はそのEAをシンボルにとらわれないように構成していました。

 

ニックさん、こんにちは。クラウドブレーカー

Cloudbreakerさん、進捗の遅さにご不満のようですね。この演習のポイントは、MT4を使ってプログラミングする方法をニックに教えることだと思いました。このフォーラムで見た多くのコードやコーディングに関する議論から判断すると、システム的なアプローチが最も信頼性が高く、質の高いコードを作る最短の方法であることが多いという私の主張が正しいようです。


しかし、これは非常に些細なプロジェクトであり、熟練したプログラマーであれば、このようなものを最小限の形式で非常に迅速に作り上げることができるというご指摘は理解できます。しかし、学習にはしばしば時間がかかり、学習できる人が学習しようとする人に不満を持つことは簡単であることを心に留めておいてください。

ニック

あなたが投稿したコードは、私が探していたものとは全く違っていました。私は事態を少し整理し、あなたがやるべきことをコードの中にいくつか書き込んでおきました。

次の課題は、通貨ペアごとに別々のプロシージャを書かずに、異なる通貨ペアを処理する方法を提供することです。


一つの方法は、グローバル宣言のところで、通貨ペアを文字列の配列として宣言することでしょう。

次に、メインプログラムブロックの中で、(開始関数)FORループを使って、配列のインデックスを作成します。

ニックはこのコードをプログラミングして、フォーラムに投稿してください。


また、エラー処理についても考え始める必要があります。テストとデバッグです。MetaTraderでこれを行う一般的な方法の1つは、ログファイルを使用することです。EAにいくつかの行を追加して、あなたが始めることができるようにしました。

私が何をしたかを理解するために見てください。このコードを実行し、ログファイルをアクティブなアカウントまたはストラテジーテスターで 見ることができます。


よろしくお願いします。

ティム

ファイル:
 

やあ、みんな。

この旅をサポートしてくれてありがとう。初心者にとって体系的なアプローチが不可欠であることは同意しますが、それと同じくらい重要な のがコードを掘り下げることです。この2つの要素は、互いの成長を助け、学習プロセスを促進します。私はこのことに気づいたので、両方に時間を費やしました。コーディングのプロセスを理解すればするほど、より良い擬似コードとそれに続くプログラムを作ることができるのです。

私はこの試みを、両方のドキュメントを並行して進めるつもりです。そうすることで、特定の参照点を持つことができ、学習プロセスが何にも増して加速されると思います。

もちろん、Timの指導も受けながらですが、CBのドキュメントを並行して使いながら、どのように、どの部分を追加していけばいいのか、アイデアを出していきたいと思います。

ニック

 
niko:

やあ、みんな。

この旅をサポートしてくれてありがとう。初心者にとって体系的なアプローチが不可欠であることは同意しますが、それと同じくらい重要なのが、コードを掘り下げることです。この2つの要素は、互いの成長を助け、学習プロセスを促進します。私はこのことに気づいたので、両方に時間を費やしました。コーディングのプロセスを理解すればするほど、より良い擬似コードとそれに続くプログラムを作ることができるのです。

私はこの試みを、両方のドキュメントを並行して進めるつもりです。そうすることで、特定の参照点を持つことができ、学習プロセスが何にも増して加速されると思います。

もちろん、Timの指導も受けながらですが、CBのドキュメントを並行して使いながら、どのように、どの部分を追加していけばいいのか、アイデアを出していきたいと思います。

ニック

Nickさん、こんにちは。上の投稿の訂正をご覧ください。


CB

 
cloudbreaker:

Nickさんこんにちは、もう引き下がります。上記の私の投稿の修正をご覧ください。


CB

やあ、CB。あなたがそうすると思って、すぐにダウンロードしたよ。あなたのコードは、私がTimのテンプレートにコピーしないので、私の学習を妨げることはないでしょう。)


何でも屋とはよく言ったものです。

 
niko:

CBさん、そうだと思ったので、早速ダウンロードさせていただきました。あなたのコードは、Timのテンプレートにコピーしないので、私の学習を妨げることはありません。)


よく言われるように、何でも役に立ちます!

心配しないでください。ほんの少し修正するだけで、実際に仕事ができるようになるはずです。

まず、私が組み込んだTakeProfitの「エラー」を修正することから始めてください。StopLossがどのように行われるかを見て、ヒントを得てください。

いったんそれが動くようになったら、エラー処理と、Print()ステートメントのようなオペレータに優しいものを追加して、それが何をしているかをログで簡単に見ることができるようにすることを期待します。

コードにコミットする前の疑似コードは重要 ですが(ベテランプログラマーでも)、煮詰め過ぎないようにしましょう。

あなたは、その人柄の良さから、助けを求めているようですね。私の推測では、あなたは人事の仕事をしているか、人間心理に興味があるのでは?


CB