mt4 (MetaTrader4)使い倒シストレ

メタトレーダー、自作インジケータ、自作EAで完全自動売買。使えるものは何でも使え。
インジケーター、EA(自動売買システム)製作のご依頼はこちらへ
Googolyen FX Factory
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


にほんブログ村 為替ブログ FX システムトレード派へ
--/--/--(--) --:--:-- | スポンサー広告 | Trackback(-) | Comment(-)
FileWriteString
int FileWriteString( int handle, string value, int length)

この関数は現在のバイナリファイルのファイル位置に文字列を書きこむ。
実際に書き込まれたバイト数を返し、エラーが起きれば、負の数を返す。
エラー情報の詳細を得たい場合はGetLastError()関数を呼び出す。
Parameters:
handle   -   FileOpen()関数によって返されたファイルハンドル
value   -   書き込む文字列
length   -   書き込む文字列の長さ。
              もし文字列数がlengthよりも大きい場合、切り捨てとなる。
              もしlengthよりも小さい場合、バイナリの0が埋め込まれる。
Sample:
  int handle;
  string str="some string";
  handle=FileOpen("filename.bin", FILE_BIN|FILE_WRITE);
    if(handle<1)
    {
     Print("can't open file error-",GetLastError());
     return(0);
    }
  FileWriteString(h1, str, 8);
  FileClose(handle);


にほんブログ村 為替ブログ FX システムトレード派へ
スポンサーサイト
FileWriteInteger
int FileWriteInteger( int handle, int value, int size=LONG_VALUE)

バイナリファイルに整数値を書きだす。
もし出力形式としてSHORT_VALUEが指定された場合、2バイトの整数値(short)として書き出され、 CHAR_VALUEが指定された場合、1バイトの整数値(char)として書き出され、 LONG_VALUEが指定された場合、4バイトの整数値(long)として書き出される。
実際に書き込まれたバイト数を返し、エラーが起きれば、負の数を返す。
エラー情報の詳細を得たい場合はGetLastError()関数を呼び出す。
Parameters:
handle   -   FileOpen()関数によって返されたファイルハンドル
value    -   整数値
size     -   バイト長。以下の値をとる。
              CHAR_VALUE(1バイト)
              SHORT_VALUE(2バイト)
              LONG_VALUE(4バイト)
Sample:
  int handle;
  int value=10;
  handle=FileOpen("filename.dat", FILE_BIN|FILE_WRITE);
  if(handle<1)
    {
     Print("can't open file error-",GetLastError());
     return(0);
    }
  FileWriteInteger(handle, value, SHORT_VALUE);
  //...
  FileClose(handle);


にほんブログ村 為替ブログ FX システムトレード派へ
FileWriteDouble
int FileWriteDouble( int handle, double value, int size=DOUBLE_VALUE)

バイナリファイルに倍精度少数を書きだす。
もし出力形式としてFLOAT_VALUEが指定された場合、4バイトの小数値(float)として書き出され、それ以外は8バイトの小数値(double)として書き出される。
実際に書き込まれたバイト数を返し、エラーが起きれば、負の数を返す。
エラー情報の詳細を得たい場合はGetLastError()関数を呼び出す。
Parameters:
handle   -   FileOpen()関数によって返されたファイルハンドル
value    -   小数値
size     -   バイト長。以下の値をとる。
              DOUBLE_VALUE(8バイト、デフォルト値)
              FLOAT_VALUE(4バイト)。
Sample:
  int handle;
  double var1=0.345;
  handle=FileOpen("mydata.dat", FILE_BIN|FILE_WRITE);
  if(handle<1)
    {
     Print("can't open file error-",GetLastError());
     return(0);
    }
  FileWriteDouble(h1, var1, DOUBLE_VALUE);
  //...
  FileClose(handle);


にほんブログ村 為替ブログ FX システムトレード派へ
FileWriteArray
int FileWriteArray( int handle, object array[], int start, int count)

この関数は配列をバイナリファイルへ書き出す。int型、bool型、datetime型、color型の配列は4バイト整数値として各要素毎に書き出される。
double型の配列は8バイトの倍精度少数として各要素毎に書き出される。
string型の配列は、各要素の終端に"\r\n"が自動的に追加され、文字列として書き出される。
書き出された要素数を返し、もしエラーが起きれば、負の数が帰ってくる。
エラー情報の詳細を得たい場合はGetLastError()関数を呼び出す。
Parameters:
handle   -   FileOpen()関数によって返されたファイルハンドル
array[]   -   配列
start   -   書き出し始める要素番号
count   -   書き出す数
Sample:
  int handle;
  double BarOpenValues[10];
  // copy first ten bars to the array
  for(int i=0;i<10; i++)
    BarOpenValues[i]=Open[i];
  // writing array to the file
  handle=FileOpen("mydata.dat", FILE_BIN|FILE_WRITE);
  if(handle>0)
    {
     FileWriteArray(handle, BarOpenValues, 3, 7); // writing last 7 elements
     FileClose(handle);
    }


にほんブログ村 為替ブログ FX システムトレード派へ
FileWrite
int FileWrite( int handle, ...)

この関数はCSVファイルへのデータ書き出しに用いる。
区切り文字は自動で挿入される。
ファイルへ書き込んだ後、行末には"\r\n"が追加される。 数値は出力の際、テキストへ変換される。(Print()関数参照)
書き込んだ文字数を返し、もしエラーが起きたら、負の数を返す。
エラー情報の詳細を得たい場合はGetLastError()関数を呼び出す。
Parameters:
handle   -   FileOpen()関数によって返されたファイルハンドル
...      -   書き込むデータ。各データはコンマで区切る。63個指定できる。
              int型とdouble型は自動的に文字列に変換される。
              しかしcolor型、datetime型、bool型は自動変換されず整数として書き出される。
              配列を指定することはでず、各要素を指定する。
Sample:
  int handle;
  datetime orderOpen=OrderOpenTime();
  handle=FileOpen("filename", FILE_CSV|FILE_WRITE, ';');
  if(handle>0)
    {
     FileWrite(handle, Close[0], Open[0], High[0], Low[0], TimeToStr(orderOpen));
     FileClose(handle);
    }


にほんブログ村 為替ブログ FX システムトレード派へ
FileTell
int FileTell( int handle)

現在のファイル位置を返す。
エラー情報の詳細を得たい場合はGetLastError()関数を呼び出す。
Parameters:
handle   -   FileOpen()関数によって返されたファイルハンドル
Sample:
  int handle;
  int pos;
  handle=FileOpen("my_table.dat", FILE_BIN|FILE_READ);
  // reading some data
  pos=FileTell(handle);
  Print("current position is ", pos);


にほんブログ村 為替ブログ FX システムトレード派へ
FileSize
int FileSize( int handle)

ファイルサイズのバイト数を返す。
エラー情報の詳細を得たい場合はGetLastError()関数を呼び出す。
Parameters:
handle   -   FileOpen()関数によって返されたファイルハンドル
Sample:
  int handle;
  int size;
  handle=FileOpen("my_table.dat", FILE_BIN|FILE_READ);
  if(handle>0)
    {
     size=FileSize(handle);
     Print("my_table.dat size is ", size, " bytes");
     FileClose(handle);
    }


にほんブログ村 為替ブログ FX システムトレード派へ
FileSeek
bool FileSeek( int handle, int offset, int origin)

この関数はファイルの位置を開始位置からoffsetバイト分移動させる。開始位置はファイルの先頭、ファイルの終端、現在の位置から選ぶ。
その後の読み出し、書き出しは新しいファイル位置から始まる。
もしファイル位置の移動が成功したら、この関数はTRUEを返し、それ以外はFALSEを返す。
エラー情報の詳細を得たい場合はGetLastError()関数を呼び出す。
Parameters:
handle   -   FileOpen()関数によって返されたファイルハンドル
offset   -   開始位置からのオフセット(単位はバイト)
origin   -   開始位置。この値は以下の内の一つをとる:
              SEEK_CUR - 現在位置
              SEEK_SET - ファイルの先頭
              SEEK_END - ファイルの終端
Sample:
  int handle=FileOpen("filename.csv", FILE_CSV|FILE_READ|FILE_WRITE, ';');
  if(handle>0)
    {
     FileSeek(handle, 0, SEEK_END);
     //---- add data to the end of file
     FileWrite(handle, data1, data2);
     FileClose(handle);
     handle=0;
    }


にほんブログ村 為替ブログ FX システムトレード派へ
FileReadString
string FileReadString( int handle, int length=0)

ファイルの現在の位置から文字列を読む。CSVファイル、バイナリファイル両方に適用される。
テキストファイルの場合、文字列は区切り文字の前まで読まれる。バイナリファイルの場合、文字数分だけ文字列が読まれる。
エラー情報の詳細を得たい場合はGetLastError()関数を呼び出す。
Parameters:
handle   -   FileOpen()関数によって返されたファイルハンドル
length   -   読み込む文字数
Sample:
  int handle;
  string str;
  handle=FileOpen("filename.csv", FILE_CSV|FILE_READ);
  if(handle>0)
    {
     str=FileReadString(handle);
     FileClose(handle);
    }


にほんブログ村 為替ブログ FX システムトレード派へ
FileReadNumber
double FileReadNumber( int handle)

現在の位置から区切り文字までの数値を読む。CSVファイル専用。
エラー情報の詳細を得たい場合はGetLastError()関数を呼び出す。
Parameters:
handle   -   FileOpen()関数によって返されたファイルハンドル
Sample:
  int handle;
  int value;
  handle=FileOpen("filename.csv", FILE_CSV, ';');
  if(handle>0)
    {
     value=FileReadNumber(handle);
     FileClose(handle);
    }


にほんブログ村 為替ブログ FX システムトレード派へ
FileReadInteger
int FileReadInteger( int handle, int size=LONG_VALUE)

バイナリファイルの現在の位置から整数値を読む。バイト長は1、2、4バイトが指定できる。
もしバイト長を指定しなかったら、システムは4バイトを読み込もうとする。
エラー情報の詳細を得たい場合はGetLastError()関数を呼び出す。
Parameters:
handle   -   FileOpen()関数によって返されたファイルハンドル
size     -   バイト長。
              CHAR_VALUE(1バイト)かSHORT_VALUE(2バイト)かLONG_VALUE(4バイト)の値。
Sample:
  int handle;
  int value;
  handle=FileOpen("mydata.dat", FILE_BIN|FILE_READ);
  if(handle>0)
    {
     value=FileReadInteger(h1,2);
     FileClose(handle);
    }


にほんブログ村 為替ブログ FX システムトレード派へ
FileReadDouble
double FileReadDouble( int handle, int size=DOUBLE_VALUE)

バイナリファイルの現在の位置から倍精度少数値を読む。バイト長は8バイト(double)か4バイト(float)が指定できる。
エラー情報の詳細を得たい場合はGetLastError()関数を呼び出す。
Parameters:
handle   -   FileOpen()関数によって返されたファイルハンドル
size   -   バイト長。DOUBLE_VALUE(8バイト)かFLOAT_VALUE(4バイト)の値。
Sample:
  int handle;
  double value;
  handle=FileOpen("mydata.dat",FILE_BIN);
  if(handle>0)
    {
     value=FileReadDouble(handle,DOUBLE_VALUE);
     FileClose(handle);
    }


にほんブログ村 為替ブログ FX システムトレード派へ
FileReadArray
int FileReadArray( int handle, object &array[], int start, int count)

バイナリファイルから指定された要素数だけ配列に読み込む。読み込む前に、配列の大きさを十分取っておいた方が良い。
実際に読み込まれた要素数を返す。
エラー情報の詳細を得たい場合はGetLastError()関数を呼び出す。

Parameters:
handle   -   FileOpen()関数によって返されたファイルハンドル
array[]  -   データを保存する配列
start    -   配列の保存を開始する位置
count    -  読み込む要素数 
Sample:
  int handle;
  double varray[10];
  handle=FileOpen("filename.dat", FILE_BIN|FILE_READ);
  if(handle>0)
    {
     FileReadArray(handle, varray, 0, 10);
     FileClose(handle);
    }


にほんブログ村 為替ブログ FX システムトレード派へ
FileOpenHistory
int FileOpenHistory( string filename, int mode, int delimiter=';')

現在のヒストリーディレクトリ(terminal_directory\history\server_name)またはそのサブフォルダ内のファイルを開く。成功すればファイルハンドルを、失敗すれば-1を返す。
エラー情報の詳細を得たい場合はGetLastError()関数を呼び出す。
Notes:クライアント端末は異なった仲介業者に接続することができない。個々の仲介業者のヒストリーデータ(HSTファイル)はterminal_directory\historyフォルダの該当するサブフォルダ内に保存されている。
この関数は一般的ではない通貨や時間枠のデータを自由に作るのに有効である。ヒストリーフォルダ内の整形済みファイルはオフラインでも開くことができ、データの吸い出しは不要である。

Parameters:
filename   -   ファイル名
mode        -   オープンモード。
                 FILE_BIN, FILE_CSV, FILE_READ, FILE_WRITEの組み合わせが使える。
delimiter  -   CSVファイルの区切り文字。デフォルトでは';'が使われる。
Sample:
  int handle=FileOpenHistory("USDX240.HST",FILE_BIN|FILE_WRITE);
  if(handle<1)
    {
     Print("Cannot create file USDX240.HST");
     return(false);
    }
  // work with file
  // ...
  FileClose(handle);


にほんブログ村 為替ブログ FX システムトレード派へ
FileOpen
int FileOpen( string filename, int mode, int delimiter=';')

入力、出力用のファイルを開く。成功すればファイルハンドルを、失敗すれば-1を返す。
エラー情報の詳細を得たい場合はGetLastError()関数を呼び出す。
Notes:ファイルはterminal_directory\experts\filesフォルダ(テストモードの時はterminal_directory\tester\files)かそのサブフォルダでしか開くことはできない
FILE_BINとFILE_CSVは同時に使うことができない。
もしFILE_WRITEがFILE_READと組み合わされていなければ、0バイトのファイルが開く。もしそのファイルにデータが書き込まれていた場合、それらのデータは消去される。もし追加書き込みをしたいならば、FILE_READ|FILE_WRITEの組み合わせを使って開かなければならない。
もし、FILE_READがFILE_WRITEと組み合わされていなければ、すでに存在しているファイルしか開けない。もしそのファイルが存在していなければ、FILE_WRITEモードを用いて生成させることができる。
実行モジュール内で32個以上のファイルを同時に開くことはできない。同一モジュールで開かれたファイルハンドルは、他のモジュールやライブラリに渡すことはできない。

Parameters:
filename   -   ファイル名
mode        -   オープンモード。
                 FILE_BIN, FILE_CSV, FILE_READ, FILE_WRITEの組み合わせが使える。
delimiter  -   CSVファイルの区切り文字。デフォルトでは';'が使われる。
Sample:
  int handle;
  handle=FileOpen("my_data.csv",FILE_CSV|FILE_READ,';');
  if(handle<1)
    {
     Print("File my_data.dat not found, the last error is ", GetLastError());
     return(false);
    }


にほんブログ村 為替ブログ FX システムトレード派へ
FileIsLineEnding
bool FileIsLineEnding( int handle)

CSVファイルにおいて、ファイルの最終行に達したらTRUEを、それ以外はFALSEを返す。
エラー情報の詳細を得たい場合はGetLastError()関数を呼び出す。

Parameters:
handle   -   FileOpen()関数によって返されたファイルハンドル
Sample:
  if(FileIsLineEnding(h1))
    {
     FileClose(h1);
     return(false);
    }


にほんブログ村 為替ブログ FX システムトレード派へ
FileIsEnding
bool FileIsEnding( int handle)

ファイルの終端に達したらTRUEを、それ以外はFALSEを返す。
エラー情報の詳細を得たい場合はGetLastError()関数を呼び出す。
もし読み込み中にファイルの終端に達したら、GetLastError()関数はERR_END_OF_FILE (4099)エラーを返す。
Parameters:
handle   -   FileOpen()関数によって返されたファイルハンドル
Sample:
  if(FileIsEnding(h1))
    {
     FileClose(h1);
     return(false);
    }


にほんブログ村 為替ブログ FX システムトレード派へ
FileFlush
void FileFlush( int handle)

ファイルバッファに蓄えられてあるデータをすべて書きだす。
Notes:FileFlush()関数はファイルの読み込み、書き込みの間でしか呼び出せない。ファイルが閉じられた時、自動的にデータは書き出されるため、FileClose()関数を呼び出す前にFileFlush()関数を呼び出す必要はない。

Parameters:
handle   -   FileOpen()関数によって返されたファイルハンドル
Sample:
  int bars_count=Bars;
  int handle=FileOpen("mydat.csv",FILE_CSV|FILE_WRITE);
  if(handle>0)
    {
     FileWrite(handle, "#","OPEN","CLOSE","HIGH","LOW");
     for(int i=0;i< bars_count;i++)
       FileWrite(handle, i+1,Open[i],Close[i],High[i], Low[i]);
     FileFlush(handle);
     ...
     for(int i=0;i< bars_count;i++)
       FileWrite(handle, i+1,Open[i],Close[i],High[i], Low[i]);
     FileClose(handle);
    }


にほんブログ村 為替ブログ FX システムトレード派へ
FileDelete
void FileDelete( string filename)

指定されたファイルを削除する。エラー情報の詳細を得たい場合はGetLastError()関数を呼び出す。
terminal_dir\experts\filesディレクトリ(テストモードの時は、terminal_directory\tester\files)かそのサブディレクトリにあるファイルしか、削除できない。
Parameters:
filename   -   ファイルへのパス
Sample:
  // file my_table.csv will be deleted from terminal_dir\experts\files directory
  int lastError;
  FileDelete("my_table.csv");
  lastError=GetLastError();
  if(laseError!=ERR_NOERROR)
    {
     Print("An error ocurred while (",lastError,") deleting file my_table.csv");
     return(0);
    }


にほんブログ村 為替ブログ FX システムトレード派へ
FileClose
void FileClose( int handle)

FileOpen()関数によって開いたファイルを閉じる。

Parameters:
handle   -   FileOpen()関数によって返されたファイルハンドル
Sample:
  int handle=FileOpen("filename", FILE_CSV|FILE_READ);
  if(handle>0)
    {
     // working with file ...
     FileClose(handle);
    }


にほんブログ村 為替ブログ FX システムトレード派へ
File functions
ファイルを扱う関数群

ファイルを置く場所には以下のディレクトリ(もしくはサブディレクトリ)がある:
  • /HISTORY/(現在のサーバ、業者) - FileOpenHistory関数用;
  • /EXPERTS/FILES - 共通;
  • /TESTER/FILES - テストモード用;

その他のディレクトリ内のファイルではファイル関数は使えない。



にほんブログ村 為替ブログ FX システムトレード派へ
Designed by aykm.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。