エラー、バグ、質問 - ページ 313 1...306307308309310311312313314315316317318319320...3185 新しいコメント Владимир 2011.02.22 11:15 #3121 なぜかOnTester関数で現在の 口座の利益を得ることができない このように0を得ることができる double OnTester(){ return(AccountInfoDouble(ACCOUNT_PROFIT));} そして、こうして利益を得ることができるのです。 double OnTester(){ return(AccountInfoDouble(ACCOUNT_BALANCE)-100000);} Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций www.mql5.com Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций - Документация по MQL5 Academic 2011.02.22 11:22 #3122 stringo: 何を議論しているのかw0は入れない。 PS メッセージがあるはずです(おそらく数行下にあります)グローリー 私もそう思う。こういう議論は時間がかかるから、もういいや(議論)。:) しかし、では、足で呼ばれるのは何かというと......あなた自身、すべて完璧に知っていると思いますが、それでも、この関数が外部で宣言によってのみ宣言されている場合、「const」「in」「out」といった修飾子が存在するのです。そして、おそらくこの機能には欠点があります。つまり、返せるパラメータであれば、返さない場合(「return」で返した場合)には警告を出し、関数の第二形態として、パラメータで戻り値を返した場合にも、返せる値である以上、警告を出すべきだということです。そうでなければ、成功/失敗の結果がパラメータを介して返され、値そのものがreturnを介して返された場合、不可能である。そして、成功か否かもALWAYSで返される。つまり - (http://users.telenet.be/bart.demeyere/C++InOutParameters.html) ここに、昔からある解決策があるのです。しかし、私が何も気づかなかったように、一般的な会話は。IMHOでは、このような質問に答える必要があるのは、現在の実装で根本的に何かを変える予定がない場合です :)- "はい、そのような問題があります、それはプログラムの次のバージョンで解決されます、今我々はコードを修正しました、そして我々はエラーを修正するだけです"。誰も( 不十分な人でも)怒らないと思いますが、ただ問題そのものを解決することは重要で必要なことです。 ですから、このバージョンでoutなどの非常に(VERY)便利なモディファイアがあるかどうかは別として、エラーを最小限に抑えることができるのは事実です。 ***この通信をすべて行うには半日かかります。もういいや。:) Rashid Umarov 2011.02.22 11:24 #3123 Erm955:なぜかOnTester関数で現在の 口座の利益を得ることができない このように0を得ることができる double OnTester(){ return(AccountInfoDouble(ACCOUNT_PROFIT));} そして、こうして利益を得ることができるのです。 double OnTester(){ return(AccountInfoDouble(ACCOUNT_BALANCE)-100000);} グローバル変数を 宣言し、OnInit()で現在の残高の値を代入します。OnTester()で、完了したすべての取引の結果に基づいて、利益の合計を計算します。Профит=ТекущийБбаланс - Начальный балансを作成し、OnTester()で出力します。そして、今、あなたが得ようとしているのは、現在の未確定 利益であり、すべてのポジションがクローズされればゼロとなります。 Slava 2011.02.22 11:44 #3124 Academic: グローリー 私もそう思います。こういう議論は時間がかかるので、わざわざ(議論に)参加する必要はありません。:) このバージョンでは、outなどの非常に(VERY)便利なモディファイアがあり、それらはエラーを最小にすることができます。 "何を言い争ってるんだ?"- というのは、私の子供の頃の言葉で、「何を議論しているのだろう」という意味です。 パラメータを参照渡しする ことは、まさにinoutの意味するところです。単に、コンパイラがコントロールできない実装があるだけです。 実際、関数を入力することで実行の流れを分析することは非常に簡単です(Rashidが提示した例)。私たちは、この方法をあえて拒否しました。まさに、コンパイル時間が大幅に増えるからという理由でした。そこで、最もシンプルな方法である警告を表示することにしました。そのような警告は出さないほうがいいのでしょうか?はい、そうしてください。明示的に初期化を行った場合、警告は発生しません。 また、論理式の見積もりを短縮していることも重ねてお伝えします。この場合、最初の ObjectGetDouble が false を返すと(たとえば、プログラムの外部にあるオブジェクトが突然存在しなくなるため)、2 番目の ObjectGetDouble は呼び出されないことを意味します。 Документация по MQL5: Основы языка / Типы данных / Ссылки. Модификатор & и ключевое слово this www.mql5.com Основы языка / Типы данных / Ссылки. Модификатор & и ключевое слово this - Документация по MQL5 Academic 2011.02.22 11:52 #3125 stringo: "何を言い争ってるんだ?"- というのは、私の子供の頃の言葉で、「何を議論しているのだろう」という意味です。 パラメータを参照渡しする ことは、まさにinoutの意味するところです。単に、コンパイラがコントロールできない実装があるだけです。 実際、関数を入力することで実行の流れを分析することは非常に簡単です(Rashidが提示した例)。私たちは、この方法をあえて拒否しました。まさに、コンパイル時間が大幅に増えるからという理由でした。そこで、最もシンプルな方法である警告を表示することにしました。そのような警告は出さないほうがいいのでしょうか?はい、そうしてください。明示的に初期化を行った場合、警告は発生しません。 また、論理式の見積もりを短縮していることも重ねてお伝えします。この場合、最初の ObjectGetDouble が false を返した場合(例えば、プログラムの外部にあるオブジェクトが突然存在しなくなった場合など)、2番目の ObjectGetDouble は呼び出されないことを意味します。そうですね、未定義の動作はありません。これはC言語のコードでは標準的な動作です。 修飾語のinとoutは、リファレンス以外にも可能です。そして、デフォルトでは常にリファレンスのために出たり入ったりしているのです。しかし、in修飾子で参照を渡すことができるので、この関数のパラメータは常に入力であり、参照で渡しても書き込みはできないことになります。http://users.telenet.be/bart.demeyere/C++InOutParameters.html をお読みになりましたか? in: パラメータを読み込む (すべてのブランチで読み込まれない場合は警告が表示されます*)(in:パラメータを読み込む(読み込めない場合は警告))out: パラメータの書き出し先 (すべてのブランチで書き出されない場合は警告*)(out):書き込めるパラメータ(書き込めない場合は警告)in withoutout: パラメータを書き込むことができません。out withoutin: パラメータは書き込まれる前に読み込むことはできません。*すべてのブランチ:関数を通過するすべての正常な流れ(if 文の両方のブランチ、case 文のすべてのブランチ、...)で、ただし例外が投げられた場合は除きます。これはreturn 文と同じで、未定義の動作をさせないという制約です。 そして何より、inと outという キーワードを導入することで、コンパイル時にすでにいくつかの問題を 発見することができる。そして、一刻も早くエラーを見つけたいと思うのが人情ではないでしょうか Slava 2011.02.22 12:11 #3126 const修飾子がある。定数参照を明示的に渡すと、アウトを伴わないインパラメータを意味する。イン、アウト、インアウトの追加エンティティを導入することは絶対にありません。 Academic 2011.02.22 12:25 #3127 stringo:const修飾子がある。定数参照を渡すと、アウトなしで明示的にパラメータinを想定する。イン、アウト、インアウトの追加エンティティを導入することは絶対にありません。やらないなら、やらない。しかし、それではまともな最適化ができないことを認識しなければなりません。また、その例でOUTがあったとしても、警告は発生しなかったはずです。しかし、すべて無駄になる - IMHO - 3分かかりますが、エラーははるかに少ないです。使いたくなければ使わなければいいのです。そうすれば、すべてがいつものようになる。今と同じようにね。:) INせずにOUTだけを作るには?つまり、常に何かが返される、関数の戻り値のようなものですね? 削除済み 2011.02.22 12:54 #3128 デベロッパー1.主要ペアのスプレッドは、1993年5月以降、現時点で約930本の週足が打たれている、ということですね?そして、深い歴史の中では、日数を基準に鉄棒が作られていました。したがって、Expert Advisorは1993年5月から正確にテストすることができます(D1以上のTFを使用する場合)? GBPUSDで1993年5月9日よりも深いところを見ることができるのか(EURUSDで実施されているような)。 MathX 2011.02.22 13:27 #3129 こんにちは。 Graphic Tag"オブジェクトを手動で作成すると、オン/オフ状態に指定されたbmpファイルがないのはなぜか、説明してください。 以下はそのコードです。 ObjectCreate(...)。 ....... ObjectSetString(0, "ColorLabel", OBJPROP_BMPFILE, 0, "Imageson.bmp"); ObjectSetString(0, "ColorLabel", OBJPROP_BMPFILE, 1, "Imagesoff.bmp"); ラベルは指定した位置、指定した色で完全に正しく作成されますが、"Imageson.bmp" と "Imagesoff.bmp" が指定されていません。MT5 の GUI の場合 オブジェクトのリストをクリックし、手動でマーカーにこれらのファイルを設定すると、それらが設定されます。しかし、なぜObjectSetStringはそうしないのでしょうか? いかがでしょうか? Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов www.mql5.com Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов - Документация по MQL5 Ilyas 2011.02.22 13:39 #3130 MathX:いかがでしょうか?トライObjectSetString(0, "ColorLabel", OBJPROP_BMPFILE, 0, "\\Images\\on.bmp"); ObjectSetString(0, "ColorLabel", OBJPROP_BMPFILE, 1, "\\Images\\off.bmp"); 証明書の変更は近日中に行われる予定です。 1...306307308309310311312313314315316317318319320...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
なぜかOnTester関数で現在の 口座の利益を得ることができない
このように0を得ることができる
double OnTester()
{
return(AccountInfoDouble(ACCOUNT_PROFIT));
}
そして、こうして利益を得ることができるのです。
double OnTester()
{
return(AccountInfoDouble(ACCOUNT_BALANCE)-100000);
}
何を議論しているのかw0は入れない。
PS メッセージがあるはずです(おそらく数行下にあります)
グローリー 私もそう思う。こういう議論は時間がかかるから、もういいや(議論)。:)
しかし、では、足で呼ばれるのは何かというと......あなた自身、すべて完璧に知っていると思いますが、それでも、この関数が外部で宣言によってのみ宣言されている場合、「const」「in」「out」といった修飾子が存在するのです。そして、おそらくこの機能には欠点があります。つまり、返せるパラメータであれば、返さない場合(「return」で返した場合)には警告を出し、関数の第二形態として、パラメータで戻り値を返した場合にも、返せる値である以上、警告を出すべきだということです。そうでなければ、成功/失敗の結果がパラメータを介して返され、値そのものがreturnを介して返された場合、不可能である。そして、成功か否かもALWAYSで返される。つまり - (http://users.telenet.be/bart.demeyere/C++InOutParameters.html) ここに、昔からある解決策があるのです。
しかし、私が何も気づかなかったように、一般的な会話は。IMHOでは、このような質問に答える必要があるのは、現在の実装で根本的に何かを変える予定がない場合です :)- "はい、そのような問題があります、それはプログラムの次のバージョンで解決されます、今我々はコードを修正しました、そして我々はエラーを修正するだけです"。誰も( 不十分な人でも)怒らないと思いますが、ただ問題そのものを解決することは重要で必要なことです。
ですから、このバージョンでoutなどの非常に(VERY)便利なモディファイアがあるかどうかは別として、エラーを最小限に抑えることができるのは事実です。
***
この通信をすべて行うには半日かかります。もういいや。:)
なぜかOnTester関数で現在の 口座の利益を得ることができない
このように0を得ることができる
double OnTester()
{
return(AccountInfoDouble(ACCOUNT_PROFIT));
}
そして、こうして利益を得ることができるのです。
double OnTester()
{
return(AccountInfoDouble(ACCOUNT_BALANCE)-100000);
}
グローバル変数を 宣言し、OnInit()で現在の残高の値を代入します。
OnTester()で、完了したすべての取引の結果に基づいて、利益の合計を計算します。
を作成し、OnTester()で出力します。
そして、今、あなたが得ようとしているのは、現在の未確定 利益であり、すべてのポジションがクローズされればゼロとなります。
グローリー 私もそう思います。こういう議論は時間がかかるので、わざわざ(議論に)参加する必要はありません。:)
このバージョンでは、outなどの非常に(VERY)便利なモディファイアがあり、それらはエラーを最小にすることができます。
"何を言い争ってるんだ?"- というのは、私の子供の頃の言葉で、「何を議論しているのだろう」という意味です。
パラメータを参照渡しする ことは、まさにinoutの意味するところです。単に、コンパイラがコントロールできない実装があるだけです。
実際、関数を入力することで実行の流れを分析することは非常に簡単です(Rashidが提示した例)。私たちは、この方法をあえて拒否しました。まさに、コンパイル時間が大幅に増えるからという理由でした。そこで、最もシンプルな方法である警告を表示することにしました。そのような警告は出さないほうがいいのでしょうか?はい、そうしてください。明示的に初期化を行った場合、警告は発生しません。
また、論理式の見積もりを短縮していることも重ねてお伝えします。この場合、最初の ObjectGetDouble が false を返すと(たとえば、プログラムの外部にあるオブジェクトが突然存在しなくなるため)、2 番目の ObjectGetDouble は呼び出されないことを意味します。
"何を言い争ってるんだ?"- というのは、私の子供の頃の言葉で、「何を議論しているのだろう」という意味です。
パラメータを参照渡しする ことは、まさにinoutの意味するところです。単に、コンパイラがコントロールできない実装があるだけです。
実際、関数を入力することで実行の流れを分析することは非常に簡単です(Rashidが提示した例)。私たちは、この方法をあえて拒否しました。まさに、コンパイル時間が大幅に増えるからという理由でした。そこで、最もシンプルな方法である警告を表示することにしました。そのような警告は出さないほうがいいのでしょうか?はい、そうしてください。明示的に初期化を行った場合、警告は発生しません。
また、論理式の見積もりを短縮していることも重ねてお伝えします。この場合、最初の ObjectGetDouble が false を返した場合(例えば、プログラムの外部にあるオブジェクトが突然存在しなくなった場合など)、2番目の ObjectGetDouble は呼び出されないことを意味します。
そうですね、未定義の動作はありません。これはC言語のコードでは標準的な動作です。
修飾語のinとoutは、リファレンス以外にも可能です。そして、デフォルトでは常にリファレンスのために出たり入ったりしているのです。しかし、in修飾子で参照を渡すことができるので、この関数のパラメータは常に入力であり、参照で渡しても書き込みはできないことになります。http://users.telenet.be/bart.demeyere/C++InOutParameters.html をお読みになりましたか?
const修飾子がある。定数参照を明示的に渡すと、アウトを伴わないインパラメータを意味する。イン、アウト、インアウトの追加エンティティを導入することは絶対にありません。
const修飾子がある。定数参照を渡すと、アウトなしで明示的にパラメータinを想定する。イン、アウト、インアウトの追加エンティティを導入することは絶対にありません。
やらないなら、やらない。しかし、それではまともな最適化ができないことを認識しなければなりません。また、その例でOUTがあったとしても、警告は発生しなかったはずです。しかし、すべて無駄になる - IMHO - 3分かかりますが、エラーははるかに少ないです。使いたくなければ使わなければいいのです。そうすれば、すべてがいつものようになる。今と同じようにね。:)
INせずにOUTだけを作るには?つまり、常に何かが返される、関数の戻り値のようなものですね?
デベロッパー
1.主要ペアのスプレッドは、1993年5月以降、現時点で約930本の週足が打たれている、ということですね?
そして、深い歴史の中では、日数を基準に鉄棒が作られていました。
したがって、Expert Advisorは1993年5月から正確にテストすることができます(D1以上のTFを使用する場合)?
GBPUSDで1993年5月9日よりも深いところを見ることができるのか(EURUSDで実施されているような)。こんにちは。
Graphic Tag"オブジェクトを手動で作成すると、オン/オフ状態に指定されたbmpファイルがないのはなぜか、説明してください。
以下はそのコードです。
ObjectCreate(...)。
.......
ObjectSetString(0, "ColorLabel", OBJPROP_BMPFILE, 0, "Imageson.bmp");
ObjectSetString(0, "ColorLabel", OBJPROP_BMPFILE, 1, "Imagesoff.bmp");
ラベルは指定した位置、指定した色で完全に正しく作成されますが、"Imageson.bmp" と "Imagesoff.bmp" が指定されていません。MT5 の GUI の場合
オブジェクトのリストをクリックし、手動でマーカーにこれらのファイルを設定すると、それらが設定されます。しかし、なぜObjectSetStringはそうしないのでしょうか?
いかがでしょうか?
いかがでしょうか?
トライ
ObjectSetString(0, "ColorLabel", OBJPROP_BMPFILE, 0, "\\Images\\on.bmp");
ObjectSetString(0, "ColorLabel", OBJPROP_BMPFILE, 1, "\\Images\\off.bmp");
証明書の変更は近日中に行われる予定です。