Print関数について

共通関数

スポンサーリンク
スポンサーリンク

機能

Print関数はエキスパートアドバイザータブのログ出力欄にメッセージを入力します

<書式>

void  Print(
  argument,     // 初めの値
  …          // 次の値
  );

引数

引数は任意の値を64を超えない範囲で含めることができます。

引数についてはコチラのリンクをご覧ください。

戻り値

なし

戻り値についてはコチラを下記の記事をご覧ください。

備考

配列は Print() 関数には渡せません。配列は要素ごとに渡される必要があります。

double 型のデータは小数点以下最大 16 桁の精度で出力され、どちらの表記がよりコンパクトになるかに応じて、伝統的または科学形式で出力することが出来ます。float 型のデータは小数点以下 5 桁で出力されます。実数を異なる精度または事前定義された形式で出力するには PrintFormat()関数が使用されます。

bool 型のデータは「 true 」または 「 false 」のラインとして出力されます。日付は YYYY.MM.DD HH:MI:SS として出力されます。日付を別の形式で表示するには TimeToString() 関数が使用されます。カラー型のデータはR、G、Bの文字列、または、色がカラーセットに存在する場合は色名として出力されます。

Print() 関数はストラテジーテスターでの最適化中には使用できません。

MQL5リファレンスより

異なるデータ型が多数ある状態をログ出力させたいときは、記述が猥雑になり、エラーを発生させがちです。

そういう時はprintf関数、PrintFormat関数を使う方が懸命でしょう

同じような理屈で、チャート上に多数の情報をコメント出力する場合は、Comment関数で、ぐちゃくちゃ整合性をとろうとするより、StringFormat関数で文字列を整形した文字列型変数Comment関数にあてがうのがベターかな、と個人的には思います。

サンプルコード

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
      //フィボナッチ数列の計算終点
  int countFibo=15;
  
  //計算に必要な変数の宣言
  int iCounter=0,first=0,second=1;
  
  //フィボナッチを格納する変数
  int nowFiboNum;
  do
    {
     nowFiboNum=first+second;
    Print("iCounter = ",iCounter,"  フィボナッチ数 = ",nowFiboNum," flag=",IsStopped());
     first=second;
     //firstにsecondの値を代入
     second=nowFiboNum;
    //secondに nowFiboNumの値を代入

     iCounter++;//1増加 (この演算子がない場合、無限ループが発生)
     
    
    }
  
  while(iCounter<countFibo && !IsStopped());
  //15未満で、終了フラグが出ていない間はループする
   
  }//do
  
//+------------------------------------------------------------------+

IsStopped()関数については↓をご覧ください

OnStart関数については↓をご覧ください。

コメント

タイトルとURLをコピーしました