こんにちは。PEOPLE, ANSWER THE QUESTION PLEASE(3回目の投稿です)。ファイルインデックスについての質問です。MQL 4.communityに ある私のMQL4 本の中の「標準関数」のセクションに、「ファイル操作」というスクリプトの例があります。これは、ファイルからデータを読み取り、シンボルウィンドウにグラフィックオブジェクトを表示させるためのものです。
//--------------------------------------------------------------------// timetablenews.mq4// Предназначен для использования в качестве примера в учебнике MQL4.//--------------------------------------------------------------- 1 --int start() // Спец. функция start
{
//--------------------------------------------------------------- 2 --int Handle, // Файловый описатель
Stl; // Стиль вертикальной линииstring File_Name="News.csv", // Имя файла
Obj_Name, // Bмя объекта
Instr, // Название валюты
One,Two, // 1я и 2я чать названия инстр.
Text, // Текст описания события
Str_DtTm; // Дата и время события(строка)datetime Dat_DtTm; // Дата и время события(дата)color Col; // Цвет вертикальной линии//--------------------------------------------------------------- 3 --
Handle=FileOpen(File_Name,FILE_CSV|FILE_READ,";");// Открытие файлаif(Handle<0) // Неудача при открытии файла
{
if(GetLastError()==4103) // Если файла не существует,..Alert("Нет файла с именем ",File_Name);//.. извещаем трейдера else// При любой другой ошибке..Alert("Ошибка при открытии файла ",File_Name);//..такое сообщPlaySound("Bzrrr.wav"); // Звуковое сопровождениеreturn; // Выход из start()
}
//--------------------------------------------------------------- 4 --while(FileIsEnding(Handle)==false)// До тех пор, пока файловый ..
{ // ..указатель не в конце файла//--------------------------------------------------------- 5 --
Str_DtTm =FileReadString(Handle);// Дата и время события(дата)
Text =FileReadString(Handle);// Текст описания событияif(FileIsEnding(Handle)==true) // Файловый указатель в концеbreak; // Выход из чтения и рисования//--------------------------------------------------------- 6 --
Dat_DtTm =StrToTime(Str_DtTm); // Преобразование типа данных
Instr =StringSubstr(Text,0,3);// Извлекаем первые 3 символа
One=StringSubstr(Symbol(),0,3);// Извлекаем первые 3 символа
Two=StringSubstr(Symbol(),3,3);// Извлекаем вторые 3 символа
Stl=STYLE_DOT; // Для всех - стиль пунктир
Col=DarkOrange; // Для всех - цвет такойif(Instr==One || Instr==Two) // А для событий по нашему ..
{ // .. финансовому инструменту..
Stl=STYLE_SOLID; // .. такой стиль..
Col=Red; // .. и такой цвет верт. линии
}
//--------------------------------------------------------- 7 --
Obj_Name="News_Line "+Str_DtTm; // Имя объектаObjectCreate(Obj_Name,OBJ_VLINE,0,Dat_DtTm,0);//Создаем объект..ObjectSet(Obj_Name,OBJPROP_COLOR, Col); // ..и его цвет,..ObjectSet(Obj_Name,OBJPROP_STYLE, Stl); // ..стиль..ObjectSetText(Obj_Name,Text,10); // ..и описание
}
//--------------------------------------------------------------- 8 --FileClose( Handle ); // Закрываем файлPlaySound("bulk.wav"); // Звуковое сопровождениеWindowRedraw(); // Перерисовываем объектыreturn; // Выход из start()
}
//--------------------------------------------------------------- 9 --
正しく理解できていますか?ファイルポインタは、テキスト記号によって流入されるのではなく(例えば:text| where | is file pointer)、例えば、text wherek is "to" character, k-th is highlighted by file pointerのように、式を伴うポインタである。これが文字列の必要性を説明している(p.164参照)。
if(FileIsEnding(Handle)==true) // Файловый указатель в концеbreak; // Выход из чтения и рисования//--------------------------------------------------------- 6 --
if(FileIsEnding(Handle)==true) // Файловый указатель в концеbreak; // Выход из чтения и рисования//--------------------------------------------------------- 6 --
プロの方、アドバイスお願いします。 逆指値注文を保留しているのに、ストップロスを超えるスプレッドが広がった状態で入ってしまった場合・・・。 どうなるんだろう?
注文はスプレッドで食べることになる...。それとも、エラーが発生して注文が発動されないのでしょうか?
こんにちは。PEOPLE, ANSWER THE QUESTION PLEASE(3回目の投稿です)。ファイルインデックスについての質問です。MQL 4.communityに ある私のMQL4 本の中の「標準関数」のセクションに、「ファイル操作」というスクリプトの例があります。これは、ファイルからデータを読み取り、シンボルウィンドウにグラフィックオブジェクトを表示させるためのものです。
以下、Book onMQL4 でこのスクリプトを解析すると、「指定されたチェック(ブロック5-6の最後の2行)が外されると、実行時に余分なオブジェクトが作成 される」という文言があります。そして、その後に初めてwhile ループの終了条件が発動し、制御がブロック8-9に渡される」。
正しく理解できていますか?ファイルポインタは、テキスト記号によって流入されるのではなく(例えば:text| where | is file pointer)、例えば、text wherek is "to" character, k-th is highlighted by file pointerのように、式を伴うポインタである。これが文字列の必要性を説明している(p.164参照)。
確かに。最後の反復処理で、LASTオブジェクトを作成した後
2007.05.11 18:30;JPY
の場合,ファイルポインタは最後のオブジェクトの位置にある,つまり
2007.05.11 18:30;円 工業生産
(oは"o"文字、kはファイルインデックス).これは 、ファイル ポインタがファイルの終端ではなく、そのファイルの最後の文字にあるため です。そして、最初の2行が実行されると、ファイルポインタは空のスペースに移動し、もし行が無ければ
を実行すると、スクリプトは空の説明と0に 対応する時間座標を持つグラフィック(すなわちライン)を作成します。 これは、「指定されたチェック(ブロック5-6の最後の2行)が削除されると、実行時に余分なオブジェクトが作成 されます」というフレーズを意味します。"
質問:私の理解は正しいですか?
a) ファイルポインタの定義。
b)「指定されたチェック(ブロック5-6の最後の2行)が削除さ れると、プログラム実行時に余分なオブジェクトが 生成される」という文言の意味。そして、その後にのみwhile ループの終了条件が発動し、制御はブロック8-9に渡される」。
P.S. フォーラムを散らかさないために、事前にあなたの答えをありがとうございました。
Expert Advisorの設定でSLやTPが設定されているにもかかわらず、SLやTPなしで取引を開始することがあるのは、いつ、なぜか教えてください。開いて、修正しない。
プログラムコードからの「設定」とOrderSend() コマンドの間に「スペーサー」があるため。
履歴フォルダーにあるRAWファイルを開くにはどうしたらよいですか?
フォーラム検索ルール
昔から行われていることですが、どうしたいのでしょうか :)
金融商品一覧の取得
と、すでにこのスレッドに投稿されていますね
こんにちは!検索しても見つからない、同じ楽器でも位置によって違う魔法をかけたい。すぐにアルゴリズムが壊れ、ログにエラーが多発する。これは可能なのでしょうか?その場合、どこを見ればいいのでしょうか?ありがとうございました。