1つのEAで、1つのチャートから複数の通貨ペアを監視し、取引することができますか? - ページ 2

 
angevoyageur:

彼の質問に答えたくないなら、返事をしなければいい、簡単なことだ。人を不快にさせる必要はありません。

そして、私を信じて、それは私にも利用可能です。私が投稿 したい すべてを 投稿 した場合 私は 少なくとも、より多くの 1000 評価 ポイントを持って います。



もし、彼が何らかのリサーチをして、Code Base を見ていたら、例えばhttps://www.mql5.com/en/code/11176 のようなものを見つけていたでしょう。

このような例をもっと見ることができます。

彼はコードを書く方法を学ぶために十分に行わないとどのように貿易1 EA異なるシンボルを行うための例を得るために彼のためにコードを書くために他の人から取得したいこと

自分では何もせずに...

CodeMonkeyがxennonに書いたように。

「ここでの問題は、それができないことではなく、あなたがそれをしようとすることさえ気にしなかったということです。'

.

もしゼノンがこの返事をするようになったら、それはまた彼のやり方であり、間違った反応です。

というのが、私の考えなのですが、いかがでしょうか?

 
deVries:


を、「某コードベース」で調べたら、例えば、https://www.mql5.com/en/code/11176

そして、あなたはより多くのそのような例を見つけることができます 彼が今求めている方法は、私や私は他の人に推測している見ている

彼はコードを書く方法を学ぶのに十分でなく、どのように1つのEA異なるシンボルを交換する方法を行う例を得るために彼のためにコードを他の人から取得したい、と私は推測しています。

自分では何もせずに...

CodeMonkeyがxennonに書いたように。

「ここでの問題は、それができないことではなく、あなたがそれをしようとすることさえ気にしなかったということです。'

.

もしゼノンがこの返事をするようになったら、それはまた彼のやり方であり、間違った反応です。

あなたは私が見ている状況を理解していると思います...。

もちろん、私もそう思います。

しかし、誰かが返信した場合、OP(または他のユーザー)を不快にさせる必要はないことにも同意します。この掲示板はもっと良い雰囲気が必要だと思います。

 
deVries:

xennon: januari 2012から登録され、今この質問でここに来るか?

私には、彼が読み、学ぶことによっていくつかの研究を行うための時間に見えます。

もし彼がそのEAを作りたいのなら、彼がそれを作ることに問題があるなら、彼は彼の試みと一緒に来なければなりません。

それは可能です......2年以上後、彼は今確かにそれを知っている


ああ、2年だからなんだ!? MQLを積極的にいじくりまわしていたわけではありません。- 実際、私のMQLでの経験は、おそらく1ヶ月未満でしょう。 何か前向きで有益なことをするか、それとも××××をするか、どちらかにした方がいいと思います。 なんという愚かな発言でしょうか。
 
xennon:

ああ、2年だからなんだ!? というのは、私がMQLを積極的にいじくりまわしてきたということではありません。- 実際、私のMQLでの経験はおそらく1ヶ月未満です。 何か前向きで役に立つことをするか、それともxxxをするか、どちらかにした方がいいと思います。 何という愚かな発言でしょう。

言葉遣いに気をつけるよう、すでに忠告している。これが最後の警告だ

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

 
xennon:

ああ、2年だからなんだ!? MQLを積極的にいじくりまわしていたわけではありません。- 実際、私のMQLでの経験は、おそらく1ヶ月未満でしょう。 何か前向きで有益なことをするか、それとも××××をするか、どちらかにした方がいいと思います。 なんという愚かな発言でしょうか。


私が指摘したcodebaseの例ですが、https://www.mql5.com/en/forum/149766/page2#915892

 
xennon:

私は、任意の通貨ペアで動作する単一のEAを持っていますが、それは複数の通貨ペアを監視し、各ペアで発生したトリガーに応答することが可能であることを疑問に思っています。

基本的に、私は興味のあるすべてのペアをポーリングし、それぞれのペアで事前に設定された基準をテストし、必要に応じて買い/売り/クローズ/アラートで応答するEAが欲しいのです。

私はこれを行うことはできませんが、誰かが多くのチャートを開き、主に効率の利益のために別々に各チャートにEAを適用することなくこれを達成する方法として何かアイデアがあれば聞きたいと思います(1ダースの代わりに1つのコードのブロックを持っている方が良いですか)。


Thx.


私の予想では、シンボル用の文字列配列を作成し、興味のあるシンボルに対してループを回すと思います。

次のようなものです。

string nameArray[]={"EURUSD","...","USDJPY"};

では

for(x=numberOfSymbols;x>=0;x--)
   {
   string symbol=nameArray[x];
   CustomCondition(symbol)
   ....
   .....
//or something like that
 
xennon:

私は、任意の通貨ペアで動作する単一のEAを持っていますが、それは複数の通貨ペアを監視し、各ペアで発生したトリガーに応答することが可能であることを疑問に思っています。

基本的に、私は興味のあるすべてのペアをポーリングし、それぞれのペアで事前に設定された基準をテストし、必要に応じて買い/売り/クローズ/アラートで応答するEAが欲しいのです。

私はこれができないと思っていますが、効率化のために多くのチャートを開き、各チャートに別々にEAを適用することなくこれを達成する方法について、誰かがアイデアを持っていたら聞きたいと思います(1ダースの代わりに1ブロックのコードがある方が良いでしょうか)。


Thx.

xennonさん、こんにちは。

あなたの質問に対する簡単な答えは「イエス」です。

私は同じようなことをしようと考えていましたが、まだ何もコーディングしていないので、私がどのようにコードを構成するかの基本的なアウトラインを紹介します。コードベースは、コーディングに不慣れな方には、用語がわかりにくいこともあり、混乱することもあるかもしれません。

また、私のアイデアはまだテストされておらず、実装されていないため、私が予見していないバグやより良いコードの方法があるかもしれません。私は決してマスターコーダーではなく、一般的にかなり錆びているので、誰かが何か提案があれば、私はすべての耳を傾け、エラーがある場合は私を撮影しないでください。

一般的なアイデアは、OnTickイベントが接続されているチャートに対してのみ動作するため、他の通貨ペアの ティックはティックイベントを生成せず、EAは動作しませんが、ミリ秒イベントタイマーは1秒間に複数回トリガーでき、価格の変化を監視することができますので、ミリ秒タイマーイベントを使用することです。また、3つの配列を使用します。1つは使用したいシンボルの文字列を格納し、もう1つは価格データを格納するための配列です。

少し解説してみます。配列nameArrayは各シンボルを配列として格納しますが、より重要なのは、配列内の位置を特定するために文字列を使用することはできませんが、インデックス値は可能なので、他の2つの配列の位置を設定するために配列の要素を使用することができることです。各シンボルのティックが異なる時間に受信されるため、PriceArrayに書き込まれるデータはすべて同じ時間帯になるわけではなく、時間帯によってアクティブになるシンボルもあります。3番目の配列は、必要な価格データを書き込むためのものです。

コードは、コードと英語の組み合わせで、追加すべきものが書かれています。非常にシンプルですが、あなたのアイデアの出発点となるはずです。配列が末尾に達したときにどのように処理するかなど、多くのギャップがありますが、これはすべて学習曲線の一部です。1つのシンボルで動作するようにし、次に2つのシンボルで動作するようにし、といった具合に、コードのバグを排除し修正することをお勧めします。例えば、ティックデータを格納するために3つの配列の代わりにStructデータ型やオブジェクトを使用することができますが、このデザインは最初は少しシンプルなので、コーディングの後の段階で構造体やオブジェクト指向プログラミングに目を向けることができます。

分かりやすく説明したつもりですが、皆さんにとっては非常に分かりにくいかもしれません。もし、さらに分かりにくいところがあれば教えてください。

以下は擬似コードです。

// OnInit ()
    {
     string nameArray[]={"EURUSD","...","USDJPY"};                         // As suggested by thrdel. Creates an array with currency pairs
     int TicksRecorded [#  of symbols monitored];                           // Records the required position in the PriceData array to write the next tick data to for each symbol
     double PriceData [#  of symbols monitored][Ticks][data to record];     // Stores price data for each symbol required for as many ticks as required

     Create the timer and set an appropriate interval
     Open a file to save data if required for future use
     
     for (x=0; x < #  of symboels; x++)                                     // Get all prices for all the symbols you want and store them in the first position of the Ticks and data to record dimensions
           {                                                               // Also adapted from thrdel's code example
            PriceData [x][0][0] = Ask;
            PriceData [x][0][0] = Bid;
            ... whatever else you want to record
           }

// EventSetMillisecondTimer()
    {
     Refresh all price data for all symbols
     for (x=0; x < #  of symbols; x++)                                     // Get all prices for all the symbols you want and store them in the first position of the Ticks and data to record dimensions
           {
            if ((current Ask != to previously recorded Ask for that x) or (current Bid != to previously recorded Bid for that x)... and every other price data you want)
                {
                 TicksRecorded [x]++;                                    // Increments the position in the PriceData array holding the latest tick data for that symbol
                 PriceData [x][TicksRecorded[x]][0] = Ask;
                 PriceData [x][TicksRecorded[x]][1] = Bid;
                 ... and whatever else you want to record
                 Flag to indicate a new tick has been received set to true
                }
            if (new data)
                {
                 Set new data flag to false
                 Do custom action
                }
           }
     }

// OnDeinit ()
     {
      Kill the timer
      Save data to a file if required
     }
 

私は、グローバル変数を使って、1つのチャートからEAをモニターしたり、トレードしたりできるようにしています。

しかし、あなたのEAはもう少し堅牢で、1つのチャートに特化しないようにする必要があります。

 

なぜ、次のようにするとうまくいかないのでしょうか?


if (this is true){。

ticket=OrderSend("GBPUSD",OP_SELL,lot,Bid,0,0,0,", 0,0,Red)。

ticket=OrderSend("GBPJPY",OP_BUY,lot,Ask,0,0,0,"",0,0,Green) { ticket=OrderSend("GBPJPY",OP_BUY,lot,Ask,0,0,0,",0,0,Green)

ticket=OrderSend("USDJPY",OP_BUY,lot,Ask,0,0,0,", 0,0,Green);

}


エラー4106シンボル不明をポップアップします

 
Daniel Laverdiere: なぜ以下が動作しないのでしょうか?

if (this is true){.

ticket=OrderSend("GBPUSD",OP_SELL,lot,Bid,0,0,0,", 0,0,Red);

ticket=OrderSend("GBPJPY",OP_BUY,lot,Ask,0,0,0,"",0,0,Green) { ticket=OrderSend("GBPJPY",OP_BUY,lot,Ask,0,0,0,",0,0,Green)

ticket=OrderSend("USDJPY",OP_BUY,lot,Ask,0,0,0,""0,0,Green).この場合、注文を受け付けません。

}


エラー4106シンボル不明をポップアップ

  1. コードを投稿するときは、SRCボタンを使ってください!

  2. チャートの命名パターンが正確に"BasQuo"でない場合、動作しません。

  3. 1つのEAで複数の通貨を取引しないでください。