MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 507 1...500501502503504505506507508509510511512513514...1953 新しいコメント Ihor Herasko 2018.03.27 17:55 #5061 lil_lil:MTFインジケータ、外部設定にH1を入れて、M15チャートに貼り付けています。バー4で信号が点滅します。H1バーを閉じたときは信号が点滅せず、M15では4バーで信号の点滅が停止します。したがって、i+Nは、設定で選択した期間と、インジケータを取り付けた期間のチャートによって、Nが変化するように計算する必要があります。 全コードをお持ちですか? Juer 2018.03.28 15:09 #5062 こんにちは。OOP謝罪派の方、解りませんので宜しくお願いします。 そこで、例えばCCandleというクラスがあります。このクラスでは、このクラスのすべてのオブジェクトに対して同じパラメータが存在することになります。これらのパラメータはOnInit()で初期化することもでき、このクラスのすべてのオブジェクトで同じになります。では、どのようにすれば、新しいオブジェクトを作成するときに毎回初期化されることがないように、正しく行うことができるのでしょうか。これらをすべてCCandle::Init()関数に入れたとします。解らないんです。 Ihor Herasko 2018.03.28 15:31 #5063 Juer:こんにちは。OOPの謝罪者さん、解らないので助けてください。 例えばCCandleのようなクラスがあります。このクラスでは、このクラスのすべてのオブジェクトに対して同じパラメータが存在することになります。これらのパラメータは、OnInit()で初期化することもでき、このクラスのすべてのオブジェクトで同じになります。では、どのようにすれば、新しいオブジェクトを作成するときに毎回初期化されることがないように、正しく行うことができるのでしょうか。これらをすべてCCandle::Init()関数に入れたとします。解らないんです。これは、クラスのコンストラクタに ある初期化リストで行われます。 class CCandle { int m_nA; double m_fB; datetime m_dtC; void CCandle::CCandle(void); }; CCandle::CCandle(void) : m_nA(0) , m_fB(0.0) , m_dtC(0) { } Artyom Trishkin 2018.03.28 15:34 #5064 Juer:こんにちは。OOP謝罪派の方、解りませんので宜しくお願いします。 そこで、例えばCCandleというクラスがあります。このクラスでは、パラメータはこのクラスのすべてのオブジェクトで同じになります。これらのパラメータはOnInit()で初期化することもでき、このクラスのすべてのオブジェクトで同じになります。では、どのようにすれば、新しいオブジェクトを作成するときに毎回初期化されることがないように、正しく行うことができるのでしょうか。これらをすべてCCandle::Init()関数に入れたとします。解らないんです。 クラス内にパラメトリックコンストラクタを作成し、オブジェクトを初期化するために必要なパラメータを渡します。 Juer 2018.03.28 16:03 #5065 何も理解できなかった。オブジェクトに対する初期化は問題ない。与えられたクラスのすべてのオブジェクトに対して一度だけ初期化するにはどうすればよいですか?つまり、新しいオブジェクトを作成するたびにパラメータを初期化する必要がなく、すでに値が初期化されている。 lsv107 2018.03.28 16:28 #5066 同僚、ループ本体からreturn演算 子を使用することが正しいかどうか助言してください?例えば、ループを持つ関数があるとします。ある瞬間に何らかの値を返して、その結果、関数を終了する必要があります。正しくは、break を使用してからreturn(value) を使用します。しかし、すぐにreturn(value)を使っていいのだろうか? Artyom Trishkin 2018.03.28 16:32 #5067 Juer: 何も理解できなかった。オブジェクトに対する初期化は問題ない。与えられたクラスのすべてのオブジェクトに対して一度だけ初期化するにはどうすればよいですか?つまり、新しいオブジェクトを作成するたびにパラメータを初期化する必要がなく、すでに値が初期化されている。 パラメータは、存在するものから初期化することができます。 Artyom Trishkin 2018.03.28 16:33 #5068 lsv107:同僚、ループ本体からreturn演算 子を使用することが正しいかどうか助言してください?例えば、ループを持つ関数があるとします。ある瞬間に何らかの値を返して、その結果、関数を終了する必要があります。正しくは、break を使用してからreturn(value) を使用します。しかし、一度にreturn(value)だけで良いのだろうか? ループから抜けることを妨げるものは何もない。 Juer 2018.03.28 16:34 #5069 Artyom Trishkin: パラメータは、存在するものから初期化することができます。なんだか、素朴な疑問ですね。ポイントは、同じものを初期化することです。 lsv107 2018.03.28 16:45 #5070 Artyom Trishkin: ループから抜けるのを止めるものはない。ただ、関数内部でループがアクティブなまま、return演算子が アクティブなループからコールポイントに制御を移すだけだと、その関数が再度呼ばれたときにスタックオーバーフローの危険がある(再帰)ので、それを恐れていたのです。これはまさにPascalの場合であり、構造プログラミングのルールでは、ループは一つずつ終了させ、その後に関数を終了させるべきものであった。returnが、関数とともに、ループを終了させるのであれば、素晴らしいことですが、長い休みの後、プログラミングに戻ったので、明確にするべきだったのです。 1...500501502503504505506507508509510511512513514...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
MTFインジケータ、外部設定にH1を入れて、M15チャートに貼り付けています。バー4で信号が点滅します。H1バーを閉じたときは信号が点滅せず、M15では4バーで信号の点滅が停止します。したがって、i+Nは、設定で選択した期間と、インジケータを取り付けた期間のチャートによって、Nが変化するように計算する必要があります。
全コードをお持ちですか?
こんにちは。OOP謝罪派の方、解りませんので宜しくお願いします。
そこで、例えばCCandleというクラスがあります。このクラスでは、このクラスのすべてのオブジェクトに対して同じパラメータが存在することになります。これらのパラメータはOnInit()で初期化することもでき、このクラスのすべてのオブジェクトで同じになります。では、どのようにすれば、新しいオブジェクトを作成するときに毎回初期化されることがないように、正しく行うことができるのでしょうか。これらをすべてCCandle::Init()関数に入れたとします。解らないんです。
こんにちは。OOPの謝罪者さん、解らないので助けてください。
例えばCCandleのようなクラスがあります。このクラスでは、このクラスのすべてのオブジェクトに対して同じパラメータが存在することになります。これらのパラメータは、OnInit()で初期化することもでき、このクラスのすべてのオブジェクトで同じになります。では、どのようにすれば、新しいオブジェクトを作成するときに毎回初期化されることがないように、正しく行うことができるのでしょうか。これらをすべてCCandle::Init()関数に入れたとします。解らないんです。
これは、クラスのコンストラクタに ある初期化リストで行われます。
こんにちは。OOP謝罪派の方、解りませんので宜しくお願いします。
そこで、例えばCCandleというクラスがあります。このクラスでは、パラメータはこのクラスのすべてのオブジェクトで同じになります。これらのパラメータはOnInit()で初期化することもでき、このクラスのすべてのオブジェクトで同じになります。では、どのようにすれば、新しいオブジェクトを作成するときに毎回初期化されることがないように、正しく行うことができるのでしょうか。これらをすべてCCandle::Init()関数に入れたとします。解らないんです。
何も理解できなかった。オブジェクトに対する初期化は問題ない。与えられたクラスのすべてのオブジェクトに対して一度だけ初期化するにはどうすればよいですか?つまり、新しいオブジェクトを作成するたびにパラメータを初期化する必要がなく、すでに値が初期化されている。
同僚、ループ本体からreturn演算 子を使用することが正しいかどうか助言してください?例えば、ループを持つ関数があるとします。ある瞬間に何らかの値を返して、その結果、関数を終了する必要があります。正しくは、break を使用してからreturn(value) を使用します。しかし、一度にreturn(value)だけで良いのだろうか?
パラメータは、存在するものから初期化することができます。
なんだか、素朴な疑問ですね。ポイントは、同じものを初期化することです。
ループから抜けるのを止めるものはない。
ただ、関数内部でループがアクティブなまま、return演算子が アクティブなループからコールポイントに制御を移すだけだと、その関数が再度呼ばれたときにスタックオーバーフローの危険がある(再帰)ので、それを恐れていたのです。これはまさにPascalの場合であり、構造プログラミングのルールでは、ループは一つずつ終了させ、その後に関数を終了させるべきものであった。returnが、関数とともに、ループを終了させるのであれば、素晴らしいことですが、長い休みの後、プログラミングに戻ったので、明確にするべきだったのです。