機能
FileReadString関数は、ファイルポインタ(ポインタ=指し示すもの→ファイル操作に必要な情報を格納する変数のことを言います)の現在位置から文字列を読み込みます。
string FileReadString(int file_handle, // ファイルハンドル int length=-1 // 文字列の長さ ); |
引数
第1引数:file_handle
[in] FileOpen() から戻されたファイル記述子=ファイルハンドル(ファイルオープン処理を実施するためのカギのようなもの)
第2引数:length=-1 文字列の長さ
戻り値
_読まれた行(string)
備考
バイナリファイルからの読み込みでは読まれる文字列の長さが指定されるべきです。TXTファイルから読み込む場合は文字列の長さが必要とされず、文字列は現在位置から改行文字「\r\n」まで読み込まれます。CSVファイルから読み込む場合は文字列の長さが必要とされず、文字列は現在位置から最寄りの区切り文字もしくははテキスト文字列の最後の文字まで読み込まれます。
ファイルが FILE_ANSI フラグで開かれた場合は、読まれた行はUnicode に変換されます。
MQL5 リファレンスより
第2引数は初期値を持つので、実質の引数は第1引数の、「FileOpen() で取得したファイルハンドル」 です。外部シグナルを使ってトレードをするEA制作などに使えます。
Comment
サンプルコード
以下のサンプルコードはTerminal>Common>ディレクトリのFilesフォルダにあるSignal.txtというテキストファイルがあることを前提としたものです。
#include <Trade\Trade.mqh>
//ファイルのインクルード
CTrade trade;
//クラスオブジェクトの宣言
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
double Ask=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits);
//チャートの値の取得と正規化
int ExternalFile=FileOpen("Signal.txt",
FILE_READ|FILE_ANSI|FILE_COMMON,
'|',
CP_ACP);
//テキストファイルを開き、ファイルハンドルを取得
string BuySignal=FileReadString(ExternalFile);
//Terminal>Common>Filesフォルダにあるテキストを読み取る
FileClose(ExternalFile);//ファイルを閉じる
if(PositionsTotal()==0 && BuySignal=="BUY IT NOW")//読み取った中に"BUY IT NOW"があれば
{
trade.Buy(0.1,NULL,Ask,0,Ask+100*_Point,NULL);//買い注文
}//if(PositionsTotal()==0 && BuySignal=="BUY IT NOW")
Comment("BuySignal",BuySignal,"PositionsTotal:",PositionsTotal());//コメント表示
}
//+------------------------------------------------------------------+
OnTick関数については↓をご覧ください↓
Normalizedouble関数については↓をご覧ください
FileOpen関数については↓をご覧ください
FileClose関数については↓をご覧ください。
PositionsTotal関数については↓をご覧ください。
Comment関数については↓をご覧ください。
———-
※当サイトでは、プログラミング経験ゼロの方でも、プログラミングの基礎から学べる
をメインコンテンツとして展開しています。
第0回から、順を追って勉強していけばプログラミングの経験がなくてもMQL5を使って、MT5用のEAが作れるように書いています。最初は難しいと感じるかもしれませんが、繰り返し勉強していく事で自然とスキルが身についていくはずです。興味ある方は是非ご覧ください。
コメント