if (DayOfWeek() == 0 || DayOfWeek() == 6 ) return(0); // В выходные не работаем. if (!IsTradeAllowed()) return(0); // Пропустить тик, если терминал занят. if (Close_All_Orders) // Разрешение на закрытие ордеров. if (DayOfWeek() >= 5 && // Если пятница и закрытие ордеров разрешено, то TimeHour(TimeCurrent()) >= CloseHH && // в назначенный час TimeMinute(TimeCurrent()) >= CloseMM ) // в назначенные минуты - { DeleteOrders(); return(0); } // все ордера закрываются.
if (Trade) // Разрешение на торговлю. if (TimeHour(TimeCurrent()) >= OpenHH && // В назначенный час, TimeMinute(TimeCurrent()) >= OpenMM ) // в назначенные минуты - { OpenOrders(); return(0); } // открыть ордера.
なぜファイルから読み込んでいるのですか?ReadCBOE変数にファイル全体が入っているので、それを使えばいいんです。
それで問題はありませんが、すべての行が変数に収まるわけではありません!MTは行の長 さに独自の制限があり、ファイルはサイトから情報に書き込まれ、ファイルは</body></html>を終了しながら、行 - 65k文字(またはそこ)でブレークします。いずれにせよ、最終的なファイルサイズは69KBです。
記事を 読む基本的にファイルのある行を読むという方法は自然界には存在せず、ある行までのすべての行を読まなければならない...。記事中にテキストファイルを一行ずつ読む関数があります。
うわー、ありがとうございます。自分では見つけられませんでした。HTMLタグで検索すればよかったです。
そういうことなんです。確認しました。
とにかく、エラーが発生しています。ここでは、
あなたはヒーローよ、ジュンコ、黙々とコードを修正し...。というような感じで。そんな感じだったって言うんだろうけど、違うの?そうなのか?
何を修正した?NULLをチェックする?それでいいんです。どうしたんですか?間違いを見つけたら、それを修正する。
直さないんですね。見ましたよ。指摘されても、訂正しない。間違いを犯しても、それを修正しないのが好きなのか?では、それを自慢するのか?
=============
失礼します。MQL4で書くことはほとんどないですね。必要なものはすべて書きました。私はディスクリプションやエラーとは無縁の仕事をしています。ずっと昔に書かれ、封印され、忘れ去られたものです。
C++では、ディスクリプタは通常NULLと比較される。
とにかく、エラーが発生しています。ここでは、
何か別のものを書くか、ファイルを削除するか、書き込み専用フラグを立てるか。
何を修正した?NULLをチェックする?それでいいんです。どうしたんですか?間違いを見つけたら、それを修正する。
直さないんですね。見ましたよ。指摘されても、訂正しない。間違いを犯しても、それを修正しないのが好きなのか?では、それを自慢するのか?
=============
失礼します。MQL4で書くことはほとんどないですね。必要なものはすべて書きました。私はディスクリプターやエラーを扱うことはしません。ずっと昔に書かれ、封印され、忘れ去られたものです。
C++では、ディスクリプタは通常NULLと比較される。
違うんです。効くんです。ただ、このコードではファイルを上書きしないだけです。すでに書き込まれたファイルを見ていることになります。うまくいかないようです。実際には、あるべき場所に書かれていたのですが、その続きは旧来の線のままです。。何か別のものを書き込むか、ファイルを削除するか、書き込み専用フラグを設定する。
うん、うまくいったよ...ありがとう。
extern int OpenMM = 25; // Время открытия ордеров (минуты).
extern int CloseHH = 23; // Время закрытие/удаление ордеров (часы).
extern int CloseMM = 45; // Время закрытие/удаление ордеров (минуты).
この部分のコードは動作しており、特に不満はない。金曜日23:45の注文は通常通り終了します。DeleteOrders()関数は正常に動作します。
if (!IsTradeAllowed()) return(0); // Пропустить тик, если терминал занят.
if (Close_All_Orders) // Разрешение на закрытие ордеров.
if (DayOfWeek() >= 5 && // Если пятница и закрытие ордеров разрешено, то
TimeHour(TimeCurrent()) >= CloseHH && // в назначенный час
TimeMinute(TimeCurrent()) >= CloseMM ) // в назначенные минуты -
{ DeleteOrders(); return(0); } // все ордера закрываются.
オープニングオーダーのコードは、類推によって作られます。指定されたフォームでは、コードが全く動作しません。 しかし、分単位の行を削除またはコメントアウトすると、すべてが正常に動作し、注文は14:00に開始されます。関数OpenOrders()は正常に動作します。この(または他の)コードラインに問題がある可能性があるもの。TimeMinute
(TimeCurrent())>= OpenMM ?
if (TimeHour(TimeCurrent()) >= OpenHH && // В назначенный час,
TimeMinute(TimeCurrent()) >= OpenMM ) // в назначенные минуты -
{ OpenOrders(); return(0); } // открыть ордера.
追記:基本的に、時間によって注文を開閉するEAは、インターネット上に結構ありますね。しかし、何らかの理由で満足のいく結果が得られない場合があります。上記のエラーに対処したいのですが・・・。
ありがとうございます...
こんにちは。このエラーについて助けてください。
すべて正しいようです、動作するはずです。あなたのコードを私のコードで試してみました - 分で動作します。ただし、14:25から14:59まで、15:25から15:59まで等のみ。
その方がいいのかもしれません。