シンボルと値のセットをフォーマットし、事前に設定されたフォーマットに従ってExpert Advisorログに入力します。
void PrintFormat (string format_string 、 // format string … //単純型の値 ); |
パラメーター
format_string
[in]フォーマット文字列は単純なシンボルで構成され、フォーマット文字列の後に引数が続く場合、フォーマット仕様も含まれます。
…
[入力]カンマで区切られた単純型の値。パラメータの総数は、フォーマット文字列を含めて64を超えることはできません。
戻り値
文字列。
注意
Strategy Testerでの最適化中にPrintFormat()関数は機能しません。
パラメーターの数、順序、およびタイプは、修飾子のセットと正確に一致する必要があります。そうでない場合、印刷結果は未定義です。PrintFormat()の代わりに、printf ()を使用できます。
フォーマット文字列の後にパラメータが続く場合、この文字列には、これらのパラメータの出力フォーマットを示すフォーマット仕様が含まれている必要があります。フォーマットの指定は、常にパーセント記号(%)で始まります。
フォーマット文字列は左から右に読み取られます。最初のフォーマット仕様が満たされている場合(ある場合)、フォーマット文字列の後の最初のパラメーターの値は、プリセット仕様に従って変換および出力されます。2番目のフォーマット仕様は、2番目のパラメーターの変換と出力を呼び出し、フォーマット文字列が終了するまで続きます。
形式仕様の形式は次のとおりです。
%[flags] [width] [。precision] [{h | l | ll | I32 | I64}]タイプ
フォーマット仕様の各フィールドは、単純なシンボル、または単純なフォーマットオプションを示す数字のいずれかです。最も単純な形式仕様には、パーセント記号(%)と、出力パラメーターのタイプを定義する記号(たとえば、%s)のみが含まれます。書式文字列でパーセント記号を出力する必要がある場合は、書式仕様%%を使用します。
旗
旗 | 説明 | デフォルトの動作 |
—(マイナス) | 設定された幅内の左揃え | 正当化 |
+(プラス) | 符号タイプの値の+または-符号の出力 | 値が負の場合にのみ符号が表示されます |
0(ゼロ) | プリセット幅内の出力値の前にゼロが追加されます。場合0 フラグは整数形式で指定されている(I 、U 、X 、Xは、O 、D )及び精度仕様(例えば、%04.d)に設定され、次いで、0は無視されます。 | 何も追加されません |
スペース | 符号および正の値の場合、出力値の前にスペースが表示されます | スペースは挿入されません |
# | フォーマットo 、x またはX とともに使用する場合、出力値の前にそれぞれ0、0xまたは0Xが追加されます。 | 何も追加されません |
| フォーマットe 、E 、a、またはA とともに使用すると、値は常に小数点付きで表示されます。 | 小数点は、非ゼロの小数部がある場合にのみ表示されます。 |
| 形式g またはG と共に使用する場合、flagは出力値に小数点の存在を定義し、先行ゼロの切り捨てを防ぎます。 フラグ#は、フォーマットc 、d 、i 、u 、s と一緒に使用すると無視されます。 | 小数点は、非ゼロの小数部がある場合にのみ表示されます。先行ゼロは切り捨てられます。 |
幅
フォーマットされた値の出力シンボルの最小数を設定する負でない10進数。出力シンボルの数が指定された幅より少ない場合、対応する数のスペースが、配置(フラグ—)に応じて左または右から追加されます。フラグゼロ(0)がある場合、対応する数のゼロが出力値の前に追加されます。出力シンボルの数が指定された幅より大きい場合、出力値は切り捨てられません。
アスタリスク(*)が幅として指定されている場合、int型の値は、渡されたパラメーターのリストの対応する場所に示される必要があります。出力値の幅を指定するために使用されます。
精度
出力精度を設定する負でない10進数-小数点以下の桁数。幅の指定とは異なり、精度の指定では、丸めの有無にかかわらず、分数型の部分を切り捨てることができます。
精度仕様の使用は異なった形式タイプで異なります。
タイプ | 説明 | デフォルトの動作 |
a、A | 精度仕様は、小数点以下の桁数を設定します。 | デフォルトの精度— 6。 |
c、C | 使用されていない |
|
d、i、u、o、x、X | 出力桁の最小数を設定します。対応するパラメーターの桁数がこの精度よりも小さい場合、出力値の左側にゼロが追加されます。出力桁数が指定された精度よりも大きい場合、出力値は切り捨てられません。 | デフォルトの精度— 1。 |
e、E、f | 小数点以下の出力桁数を設定します。最後の桁は四捨五入されます。 | デフォルトの精度— 6.設定された精度が0であるか、小数部がない場合、小数点は表示されません。 |
g、G | 意味のある数字の最大数を設定します。 | 6つの意味のある数字が出力されます。 |
s、S | 文字列の出力シンボルの数を設定します。文字列の長さが精度を超える場合、文字列は切断されます。 | 文字列全体が出力されます。 |
h | l | ll | I32 | I64
パラメーターとして渡されるデータサイズの指定。
Parameter Type | Used Prefix | Joint Specifier of Type |
int | l (lower case L) | d, i, o, x, or X |
uint | l (lower case L) | o, u, x, or X |
long | ll (two lower case L) | d, i, o, x, or X |
short | h | d, i, o, x, or X |
ushort | h | o, u, x, or X |
int | I32 | d, i, o, x, or X |
uint | I32 | o, u, x, or X |
long | I64 | d, i, o, x, or X |
ulong | I64 | o, u, x, or X |
タイプ
型指定子は、フォーマットされた出力の唯一の必須フィールドです。
Symbol | Type | Output Format |
c | int | Symbol of short type (Unicode) |
C | int | Symbol of char type (ANSI) |
d | int | Signed decimal integer |
i | int | Signed decimal integer |
o | int | Unsigned octal integer |
u | int | Unsigned decimal integer |
x | int | Unsigned hexadecimal integer, using “abcdef” |
X | int | Unsigned hexadecimal integer, using “ABCDEF” |
e | double | A real value in the format [-] d.dddde[sign] ddd, where d – one decimal digit, dddd – one or more decimal digits, ddd – a three-digit number that determines the size of the exponent, sign – plus or minus |
E | double | Similar to the format of e, except that the sign of exponent is output by upper case letter (E instead of e) |
f | double | A real value in the format [-] dddd.dddd, where dddd – one or more decimal digits. Number of displayed digits before the decimal point depends on the size of number value. Number of digits after the decimal point depends on the required accuracy. |
g | double | A real value output in f or e format depending on what output is more compact. |
G | double | A real value output in F or E format depending on what output is more compact. |
a | double | A real number in format [−]0xh.hhhh p±dd, where h.hhhh — mantissa in the form of hexadecimal digits, using “abcdef”, dd – One or more digits of exponent. Number of decimal places is determined by the accuracy specification |
A | double | A real number in format [−]0xh.hhhh P±dd, where h.hhhh — mantissa in the form of hexadecimal digits, using “ABCDEF”, dd – One or more digits of exponent. Number of decimal places is determined by the accuracy specification |
s | string | String output |
PrintFormat()の代わりに、printf ()を使用できます。