こんにちは。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 --
ドキュメントには、iCustom 関数はサードパーティのインジケータを呼び出すために使用されるべきであると書かれています。
この関数の2番目のパラメータはtimeframe です。インジケータにこのパラメータがあり、iCustom 関数の パラメータに指定される場合、name パラメータの後に、インジケータから渡されるパラメータのリストを入力する場所があるのですが、これは何ですか?
だからいずれにしてもインジケータからタイムフレームパラメータを渡すことにします。同じパラメータを2箇所で指定すると、論理的におかしくなります。では、どうすればよいのでしょうか。
すべてが整いました。すべて指定する必要があります。第2パラメータは、インジケータが物理的に接続されているTFで、カスタムTFはインジケータが計算のためにデータを取得する場所です。もちろん、ロジックがあれば、インジケータコードから第2パラメータを削除することも可能です。
なるほど、そうだったのか。ありがとうございます。
しかし、インジケータに設定すべきパラメータは、EAでも同じように宣言する必要があります。インジケータとExpert Advisorの正しい共同操作のためのすべてのパラメータ値は、両方のケースで等しく定義されるべきであることが判明しましたか?
iCustomで 変数を入力し、EAで宣言していない場合、コンパイル時に、入力した変数が宣言されていないとジャーナルに記載されます。
どのコードベースEAでOrderCloseBy()関数がすべてのパイでどのようにコード化されているかを見ることができるか、誰か知っていますか。チュートリアルのclosebyスクリプトを見たが、EAから呼び出す関数にする方法などが分からない。 もしかしたら、教えてもらえるかもしれませんよありがとうございました。
ここで見たことありますか?https://docs.mql4.com/ru/trading/OrderCloseBy
これを見たことがありますか?https://docs.mql4.com/ru/trading/OrderCloseBy
もちろん、そうです!原理はわかるが、うまくいかないので、この機会にスプレッドで節約する必要がある。だからこそ、うまくいっている例を見たかったんです。Code Baseを調べているのですが、今のところ成功しません。これらのEAでこの相互決済を使う人はいない。ネジではなく、組み立てられた状態で出会えることを期待しています。おやすみなさい!朝にはもっと賢くなっているかもしれませんね。
トレンドラインやインジケータなどを削除する方法を教えてください。Windowsの普通のパソコンでは、選択してからマウスの右ボタンでやったのですが、imacでは方法が分かりません。ま た、ゴールドをコモンリストに追加する方法がわからないのですが?
こんにちは。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. フォーラムを散らかさないために、事前にあなたの答えをありがとうございました。
利益の一部(例:建玉の50%)を決済する方法を教えてください。
Lot =NormalizeDouble(OrderLots()/2,Digits)。