[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 324

 
TheXpert >> :

アラート、オプションとして。コメント--で結構です。

while(true)をwhile(!IsStopped())に置き換える。

遅くなりましたが)))

はい、IsStoppedを忘れてました。

 
Svinozavr >> :

遅くなりましたが)))

次回は私が先陣を切りますよ :) .

Svinozavr>>:

出力されるf-fiを書き、それを通して必要なものを書き込む。

オプションです。


 
TheXpert >> :

>> ありがとうございました。コメントの色を変更することは可能ですか?それとも白だけ?

 
TheXpert >> :
次回は私が先陣を切りますよ :) .

ところで、はい、ありがとうございます、ここでは非常に迅速な返信です :)

 
Mathers >> :

ありがとうございます。Commentの色を変更することは可能ですか?それとも白だけ?

>>そんなことはない。

 

ティック毎に 処理する必要がない場合、新しいバーが表示されたときだけ処理するようにするにはどうしたらよいでしょうか。

きっと、既成の機能があるのでしょう。リンクを貼ってくれ...


アップデイト

ありがとうございます、見つけました(。

//+------------------------------------------------------------------+
//|  возвращает признак появления нового бара для указанного периода |
//+------------------------------------------------------------------+
bool isNewBar(int timeFrame)
   {
   bool res=false;
   
   // массив содержит время открытия текущего (нулевого) бара
   // по 7 (семь) таймфреймам
   static datetime _sTime[7];  
   int i=6;
 
   switch ( timeFrame) 
      {
      case 1  : i=0; break;
      case 5  : i=2; break;
      case 15 : i=3; break;
      case 30 : i=4; break;
      case 60 : i=5; break;
      case 240: break;
      case 1440:break;
      default:  timeFrame = 1440;
      }
//----
   if (_sTime[ i]==0 || _sTime[ i]!=iTime(Symbol(), timeFrame,0))
      {
      _sTime[ i] = iTime(Symbol(), timeFrame,0);
      res=true;
      }
      
//----
   return( res);   
   }
 

スクリプトを使って、チャートに独自のスケールを設定するにはどうしたらいいですか?

どのバーを先に表示するかという機能はありますが、リセットする方法はありません。

 

皆さんこんにちは、説明できる方いますか?RefreshRates()関数ですが、常に呼び出す必要があるのか、Expert Advisorやスクリプトが長い計算を行う場合、エラー処理関数などで自動的に動作するのでしょうか?
2つ目の質問:コードの例ですが、エラーを修正し、switchオペレータにパラメータを渡しました。

int start()
  {
      int A = 1000;
      bool B=true;       // Условие успешной работы
//--------------------------------------------------------------
    if(Bars < A)         // Недостаточно баров
    {      
      Alert("Недостаточно баров в окне инструмента.");
      return;            // Выход из start()
    }
    if( B==false)         // Критическая ошибка   
      {      
      Alert("Эксперт не работает.");     
      return;            // Выход из start   
      }
//+-------------------------------------------------------------- 
  return(0);
  }
//--------------------------------------------------------------
    int Bloc_Error(int S)    // Пользовательская ф-ия обработки ошибок
    {   
      switch( S)    
      { 
      case 3:                // Неверные параметры:
      B=false;
      return(0);                                
      }  
    }

さて、今度は別のエラーです。未定義の変数B
のようです。宣言していなかったのでしょうか?

bool B=true;

エラーメッセージは このようなものです。
'B' - variable not defined ----------------- C:\Program FilesMetaTrader - Masterforex﹑Scripts2.mq4 (31, 7)

ここでまた質問ですが、この数字は何なのでしょうか?(31, 7)のように、エラーによって必ず異なるのですが、指定したディレクトリの同じエントリを見ると、まるでドキュメントのエラー名のようです...。は、MetaEditor 4で、どこかでExpert Advisorのように、例えば、実行と実行のエラーは、各数値のためのエラーの特定の原因に対応し、ソリューションの説明を参照してくださいすることが可能なのですか?

 
Daiver2 писал(а)>>

皆さんこんにちは、説明できる方いますか?RefreshRates()関数は、常に呼び出される必要があるのでしょうか、それともエキスパートやスクリプトが長い計算を行ったときに、エラー処理関数などで自動的にトリガーされるのでしょうか?
2つ目の質問:コードの例ですが、エラーを修正し、switchオペレータにパラメータを渡しました。

さて、今度は別のエラー、たとえば変数Bが未定義であるとか
宣言しなかったのか?

エラーメッセージはこのようなものです。
'B' - variable not defined ----------------- C:\Program FilesMetaTrader - Masterforex﹑Masterforex﹑Scripts2.mq4 (31, 7)

それゆえ、もう一つの質問、この数字は何なのか?(31, 7)のように、エラーによっていつも違うのですが、指定したディレクトリの同じエントリを見ると、まるでドキュメントのエラー名のようです......。は、どこかMetaEditor 4で、どこかExpert Advisorのように、例えば、ソリューションの説明を参照してください、実行と実行エラーは、それぞれの番号のエラーの特定の原因については、その値に対応するのですか?

start()関数の外側で定義し、グローバルにする必要があります。そうすると、その変数はどの関数からも利用できるようになります

 
Vinin >> :

start()関数の外側で定義し、グローバルにする必要があります。そうすると、その変数はどの関数からも利用できるようになります

説明しよう。Startは他と同じ関数なので、Start内の変数定義は全てStartの外では効果がありません。変数は、エキスパートアドバイザ本体で、initの前にのみグローバルに定義することができます。そうすれば、すべての機能から見えるようになります。

数字は、エラーが発生した行番号とその行の文字数です。