"ダミー "からの質問 - ページ 65 1...585960616263646566676869707172...277 新しいコメント Yedelkin 2011.09.15 21:53 #641 x100intraday: 関数を呼び出すとき、配列を参照で渡すか、ポインタで渡すか、あるいは他の方法で渡すべきでしょうか。 。 パラメータを 値で渡す 場合と参照で渡す場合のセクションを読んでください。 MQL5リファレンス / 言語の基礎 / 関数 / パラメータの受け渡し Документация по MQL5: Основы языка / Функции / Передача параметров www.mql5.com Основы языка / Функции / Передача параметров - Документация по MQL5 x572intraday 2011.09.15 22:13 #642 Yedelkin: パラメータを 値で渡す 場合と参照で渡す場合について、リファレンス・マニュアルのセクションを読んでください。 MQL5リファレンス / 言語の基礎 / 関数 / パラメータの受け渡し実は、今、そこから来たのですが、前のメッセージに書いたコンパイルエラーは、上記のセクションを読んだ後に起こりました。今、よく読み直してみると、コンストとどこに入れるかが重要なんですね。ありがとうございます、わかりました。 Sergey Gritsay 2011.09.16 10:22 #643 x100intraday:OnCalculateでは、インデックスによるhighのような配列要素を簡単に使用 することができますね。この配列のインデックス要素にExtFuncでアクセスすることも可能でしょうか?関数を呼び出すとき、配列の引数を参照で渡すか、ポインタで渡すか、あるいは他の何かで渡すべきでしょうか?今のところ、OnCalculateからの 配列引数を持つ私の関数呼び出しの同じ行に関するエラーメッセージは、"'high' - パラメータ変換は許可されていません "と"'high' - 定数変数は参照として渡すことはできません "になんとか抑えています。絶望的なのか、解決策はあるのか。これまでOnCalculateでは、highを別の配列にコピー することに頼っていました。 を作成し、ExtFunc で HighArray を直接使用するのではなく、CopyOfHigh を使用します。配列を関数に参照渡せばよいだけです。bool ExtFunc (string str, int P, int i, double & high[]) { if (high[i] < high[i-1]) return(false); return(true); } int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { int i=0; if ExtFunc("s",60,i,high) == 1) Buffer[i] = high[i]; } Роман 2011.09.16 15:19 #644 皆さん、こんにちは。 警告の意味は?タイプ変換エキスパート.mq5でデータが失われる可能 性があります。 コンパイル時? こう書いてある。 string Symb="EURJPY"; int DIGITS = SymbolInfoInteger(Symb,SYMBOL_DIGITS);どうしたんですか? Документация по MQL5: Основы языка / Типы данных / Приведение типов www.mql5.com Основы языка / Типы данных / Приведение типов - Документация по MQL5 Nikolay Kositsin 2011.09.16 15:26 #645 sergey1294: 配列を参照として関数に渡すだけです。 そうではありません。bool ExtFunc (string str, int P, int i, const double & high[]) { if (high[i] < high[i-1]) return(false); return(true); } int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { int i=0; if ExtFunc("s",60,i,high) == 1) Buffer[i] = high[i]; } Yedelkin 2011.09.16 19:26 #646 RomanS: 皆さん、こんにちは。 警告の意味は? タイプ変換エキスパート.mq5でデータが失われる可能 性があります。 をコンパイルするとき、どのようにすればよいのでしょうか?こう書いてある。 どうしたんですか?SymbolInfoInteger()関数はlong型(参考)の値を返すが、DIGITSはint型として宣言されている。これは暗黙の型変換である。型変換」を参照。 Vladimir Gomonov 2011.09.16 20:45 #647 RomanS:警告が意味すること型変換によるデータ消失の可能 性このメッセージの意味は、考慮する文脈によって異なります。例えば、こんな感じです。1. "明示的な型変換をしろ!" int DIGITS = (int) SymbolInfoInteger(Symb,SYMBOL_DIGITS); 2."暗黙の型変換でデータひっかかりの可能性" // これは直訳です。これは、関数が返すlong型のサイズが大きく、より広い範囲の値をカバーするため、理解できることです。もうひとつ、最近よく思い浮かぶ選択肢があります。3. "エラーメッセージやmql5コンパイラの警告がユーザーの母国語で出れば、どれだけクールで魅力的で効果的な学習ができるかをMetaQuotesのスタッフは理解していない"。 Anatoli Kazharski 2011.09.16 21:01 #648 MetaDriver:...mql5のコンパイラの エラーメッセージや警告が ユーザーの母国語で表示されたら、どんなにクールで魅力的で効果的な学習ができるだろう。" うん......悪くはないだろう。とはいえ、私個人はすでに英語に精通していますし、最近は翻訳家も掃いて捨てるほどいますが、やはり貴重な時間を割いてしまうので、それほどでもないのですが。金融市場での取引+プログラミングのような複雑なテーマで翻訳機を使うほどでもない人もいます。MetaTrader 5は、多言語対応プラットフォームです。ヘルプの例にあるメッセージやコメント(時々出くわす)は、ターミナルで選択されている言語にしてほしいです。 masharov 2011.09.17 17:32 #649 iCustomでインジケータを起動した場合、1tick 毎に計算されているのではないかという疑念があります。そして、CopyBufferを介した呼び出しに依存しない。これでいいのでしょうか?もしそれが正しいのであれば、インジケータの計算を無効にして、CopyBufferを呼び出す前だけ有効にすることは可能でしょうか? Yedelkin 2011.09.17 18:05 #650 masharov: iCustomでインジケータを起動した場合、1tick毎に計算されているのではないかという疑念があります。そして、CopyBufferを介した呼び出しに依存しない。これでいいのでしょうか? カスタムインジケータの ロジックに依存します。実は、1日に1回、他の全ての刻みを飛ばして値を再計算することができるのです。いわば、作者の意志に従って。 マシャロフ その場合、インジケータの再計算を無効にして、CopyBufferを呼び出す前のみ有効にすることは可能でしょうか? 基本的に、iCustom経由でインジケーターのコピーを作成し、必要なデータをコピーし、インジケーターのコピーを削除するという、この怪しげな方法を使おうとする人がいるのですが、この方法では、インジケーターのコピーを削除することができません。必要に応じて、この手順を繰り返します。 OnTimer()関数もありますが、私自身は扱ったことがありません。 1...585960616263646566676869707172...277 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
関数を呼び出すとき、配列を参照で渡すか、ポインタで渡すか、あるいは他の方法で渡すべきでしょうか。 。
パラメータを 値で渡す 場合と参照で渡す場合のセクションを読んでください。
MQL5リファレンス / 言語の基礎 / 関数 / パラメータの受け渡し
パラメータを 値で渡す 場合と参照で渡す場合について、リファレンス・マニュアルのセクションを読んでください。
MQL5リファレンス / 言語の基礎 / 関数 / パラメータの受け渡し
実は、今、そこから来たのですが、前のメッセージに書いたコンパイルエラーは、上記のセクションを読んだ後に起こりました。
今、よく読み直してみると、コンストとどこに入れるかが重要なんですね。
ありがとうございます、わかりました。
OnCalculateでは、インデックスによるhighのような配列要素を簡単に使用 することができますね。この配列のインデックス要素にExtFuncでアクセスすることも可能でしょうか?関数を呼び出すとき、配列の引数を参照で渡すか、ポインタで渡すか、あるいは他の何かで渡すべきでしょうか?今のところ、OnCalculateからの 配列引数を持つ私の関数呼び出しの同じ行に関するエラーメッセージは、"'high' - パラメータ変換は許可されていません "と"'high' - 定数変数は参照として渡すことはできません "になんとか抑えています。絶望的なのか、解決策はあるのか。
これまでOnCalculateでは、highを別の配列にコピー することに頼っていました。
を作成し、ExtFunc で HighArray を直接使用するのではなく、CopyOfHigh を使用します。配列を関数に参照渡せばよいだけです。
皆さん、こんにちは。
警告の意味は?
タイプ変換エキスパート.mq5でデータが失われる可能 性があります。
コンパイル時? こう書いてある。
どうしたんですか?
配列を参照として関数に渡すだけです。
そうではありません。
皆さん、こんにちは。
警告の意味は?
タイプ変換エキスパート.mq5でデータが失われる可能 性があります。
をコンパイルするとき、どのようにすればよいのでしょうか?こう書いてある。
どうしたんですか?
警告が意味すること
型変換によるデータ消失の可能 性
このメッセージの意味は、考慮する文脈によって異なります。
例えば、こんな感じです。
1. "明示的な型変換をしろ!"
2."暗黙の型変換でデータひっかかりの可能性" // これは直訳です。
これは、関数が返すlong型のサイズが大きく、より広い範囲の値をカバーするため、理解できることです。
もうひとつ、最近よく思い浮かぶ選択肢があります。
3. "エラーメッセージやmql5コンパイラの警告がユーザーの母国語で出れば、どれだけクールで魅力的で効果的な学習ができるかをMetaQuotesのスタッフは理解していない"。
...mql5のコンパイラの エラーメッセージや警告が ユーザーの母国語で表示されたら、どんなにクールで魅力的で効果的な学習ができるだろう。"
iCustomでインジケータを起動した場合、1tick 毎に計算されているのではないかという疑念があります。そして、CopyBufferを介した呼び出しに依存しない。これでいいのでしょうか?
もしそれが正しいのであれば、インジケータの計算を無効にして、CopyBufferを呼び出す前だけ有効にすることは可能でしょうか?
iCustomでインジケータを起動した場合、1tick毎に計算されているのではないかという疑念があります。そして、CopyBufferを介した呼び出しに依存しない。これでいいのでしょうか?
カスタムインジケータの ロジックに依存します。実は、1日に1回、他の全ての刻みを飛ばして値を再計算することができるのです。いわば、作者の意志に従って。
その場合、インジケータの再計算を無効にして、CopyBufferを呼び出す前のみ有効にすることは可能でしょうか?
基本的に、iCustom経由でインジケーターのコピーを作成し、必要なデータをコピーし、インジケーターのコピーを削除するという、この怪しげな方法を使おうとする人がいるのですが、この方法では、インジケーターのコピーを削除することができません。必要に応じて、この手順を繰り返します。
OnTimer()関数もありますが、私自身は扱ったことがありません。