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

 
lil_lil:

テストには便利ですが、そうでもありません。 オンラインチャートにEAを取り付けた後に、インジケータを取りつけたいのです。可能なのでしょうか?

試していない。理論的には、うまくいくことはまずないでしょう。それが、まだ試していない理由かもしれません。EAをロードするたびにテンプレートが適用 され、その上でEAが再度起動される、というようなイメージになります。そして、テンプレートが適用され、新しいEAのコピーが起動される、というようにすべてが繰り返されます。

歯がゆくなるほど欲しいのであれば、EAとインジケータでテンプレートを適用するスクリプトを作った方がいいかもしれません。

 
皆様、ご参加ありがとうございました。グローバルターミナルでChartApplyTemplate()を呼び出して 変数値を代入してみますが、ChartApplyTemplate()を呼び出す前に、その値を確認してみます。
 

こんにちは。

各PERIOD_M 1の30ティックを使用してバーを作成するにはどうすればよいですか?

解析のために新しいキャラクターを作りたい。

 
こんにちは!問題を解決してください、困っています。シンボル1のアクティブなチャートで動作するEAのコードで、シンボル2のアクティブではない別のチャートに水平線を 引くことを規定する必要があります。画面上にシンボル2のチャートが開かれていることを意味します。 例えば、2つ目のSUI30シンボルでは、こんな風にしました。
double SUop0 = iOpen("SUI30",PERIOD_H1,0);
double lp = SUop0-67;
double hp = SUop0+67; 

   Fun_New_Bar();
      if(New_Bar)      
         {
   ObjectCreate("SUI30","lineForBuy",OBJ_HLINE,0,0,lp);
   ObjectCreate("SUI30","lineForSell",OBJ_HLINE,0,0,hp);
         }
が、メタエディタでは、'string' から 'number' への暗黙の変換がメッセージとして表示されます。何が悪くて、どうすれば解決するのか?ありがとうございます。

 
novichok2018:
こんにちは!問題を解決するのを助けてください、私はそれを行うことはできません。エキスパートアドバイザーのコードでは、シンボル1のアクティブなチャート上で実行すると、シンボル2の他の、NOTアクティブなチャートで水平線の 描画を規定する.画面上にシンボル2のチャートが開かれていることを意味します。例えば、2つ目のSUI30シンボルでは、次のようにしましたが、メタエディタでは、「文字列」から「数値」への暗黙の変換がメッセージとして表示されます。何が悪くて、どうすれば解決するのか?ありがとうございます。

別の関数のオーバーロードを使用する必要があります。

bool  ObjectCreate( 
   long          chart_id,      // идентификатор графика 
   string        object_name,   // имя объекта 
   ENUM_OBJECT   object_type,   // тип объекта 
   int           sub_window,    // индекс окна 
   datetime      time1,         // время первой точки привязки 
   double        price1,        // цена первой точки привязки 
   ... 
   datetime      timeN=0,       // время N-точки привязки 
   double        priceN=0       // цена N-точки привязки 
   );

そして、このチャート識別子は、ChartFirst()からチャートを列挙しようとすると見つかるはずです。

long  ChartNext( 
   long  chart_id      // идентификатор графика
   );

ドキュメントからの抜粋

//--- переменные для идентификаторов графиков 
   long currChart,prevChart=ChartFirst(); 
   int i=0,limit=100; 
   Print("ChartFirst = ",ChartSymbol(prevChart)," ID = ",prevChart); 
   while(i<limit)// у нас наверняка не больше 100 открытых графиков 
     { 
      currChart=ChartNext(prevChart); // на основании предыдущего получим новый график 
      if(currChart<0) break;          // достигли конца списка графиков 
      Print(i,ChartSymbol(currChart)," ID =",currChart); 
      prevChart=currChart;// запомним идентификатор текущего графика для ChartNext() 
      i++;// не забудем увеличить счетчик 
     }
 
Alexey Viktorov:

別の関数のオーバーロードを使用する必要があります

ありがとうございます。

 
Alexey Viktorov:

別の関数のオーバーロードを使用する必要があります。

そして、このチャート識別子は、ChartFirst()からチャートを列挙しようとすると見つかるはずです。

ドキュメントからの抜粋例

残念ながら、私の試みは何も生まれませんでした。既存のメッセージにChartNext() に関連するエラーを追加しただけです。意味がわからない。

 
novichok2018:

私にとっては、残念ながら、それを解明しようとしても、何の手がかりにもならなかった。既存のメッセージにChartNext()アプリケーションに関連するエラーを追加しただけです。意味がわからない。

まあ、チャートIDを一定にしておけば楽なんだけどね。スクリプトを書く

Print(ChartID());

これらの線を引きたいチャート上で実行します。そして、この値をチャート ID として関数に書き込みます。

また、良い面としては、ドキュメントにある例ですが、持っていって使うような、既成の機能ではありません。ループ内の記号と周期を確認する必要があります。正しいものが見つかったら、ループを抜けて、得られた識別子を使用する。

 

OPENCL の cl_ インラインに定数があり、それは #define CL_DBL_MAX と同じです。 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.1024で2の次数をダブルチェックすることで0を得た。2^1024 = 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216 そして、その下にはπの数

#define CL_M_PI 3.1415926535893115998

3.141592653589793238462643383279502884197169

なぜなんだ?

 
Alexey Viktorov:

まあ、グラフIDを一定にすることで作業が楽になるんだけどね。スクリプトを書く

これらの線を引きたいチャート上で実行します。そして、この値をグラフIDとして 関数に書き込む。

また、良い点としては、ドキュメントにある例は、既成の機能ではなく、そのままパクって使うことができることです。ループの中で、記号と周期を確認する必要があります。正しいものが見つかったら、ループを抜けて、得られた識別子を使用する。

ありがとうございます。すべてがスクリプトで動いていて、それが線を引いている。