どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 708

 

こんにちは。

テッセレーション(端末MT-4-670、Alt+R)をしていると、チャートウィンドウが毎回新しい場所に配置される。

画面上の各チャートの位置が一定になるように固定することは可能かどうか、アドバイスをお願いします。

 
Shurkin:

こんにちは。

テッセレーション(端末MT-4-670、Alt+R)をしていると、チャートウィンドウが毎回新しい場所に配置される。

画面上の各チャートの位置が一定になるように固定することは可能かどうか、アドバイスをお願いします。



配置は、「モザイク」コマンドを適用した時点でどのグラフがアクティブになっていたかに依存します。
 
barabashkakvn:


配置は、"Mosaic "コマンドを適用した時点でアクティブだったグラフに依存します。


また、グラフの先行配置にも依存する。この依存関係のアルゴリズムは完全には解明されていない。
 
Shurkin:


また、チャートの先行配置にも依存します。この依存関係のアルゴリズムは完全には解明されていない。

必要な時に一度だけ手動で設定した方が、ピクセル精度で常に同じように開くことができますよ。
 

エラーはどこですか?

double Level=1.2925;
int i;
double u;
double q=High[1];
double a=Low[1];
for(u=a;u<q;i++)
  {
   u=u+i*Point;
   if(u==Level)
      Alert("Предыдущий бар пересекал уровень");
  }
 
305:

エラーはどこですか?

このコード片をインジケータに挿入すれば、エラーは発生しません。

int OnCalculate (const int rates_total,      // размер входных таймсерий
                 const int prev_calculated,  // обработано баров на предыдущем вызове
                 const datetime &time[],     // Time
                 const double &open[],       // Open
                 const double &high[],       // High
                 const double &low[],        // Low
                 const double &close[],      // Close
                 const long &tick_volume[],  // Tick Volume
                 const long &volume[],       // Real Volume
                 const int &spread[]         // Spread
                 )
  {
   double Level=1.2925;
   int i;
   double u;
   double q=High[1];
   double a=Low[1];
   for(u=a;u<q;i++)
     {
      u=u+i*Point;
      if(u==Level)
         Alert("Предыдущий бар пересекал уровень");
     }
   return(prev_calculated);
  }
 
簡単なスクリプトはあるのですが、何も出てきません。アラートが表示されない
 
barabashkakvn:


その時、スクリプトがあれば。

double q=High[1]; // массив High не объявлен - компиляции не будет
double a=Low[1];  // массив Low не объявлен - компиляции не будет
配列の宣言、初期化(記入)が必要です。

いつから標準時系列の宣言が必要になったのでしょうか?また、上記の例のように、ループの中で二重 式の値は許されるのでしょうか?ループのカウンターの作り方も違うし。
 

初期化について - "five "と混同している。

しかし、double型の2つの値を直接比較することはできません。おそらく、ここに誤りがあるのでしょう。実数型(double、float)

 
型そのもの(double, float)の問題ではなく、ループの構築の問題です
for(double u=a;u<q; int i++) //i - нигде не инициализирован, всегда ли значение по умолчанию = 0?