記事"Expert AdvisorプログラミングにおけるMQL5標準トレードクラスライブラリの使用"についてのディスカッション - ページ 3 1234 新しいコメント Yedelkin 2011.02.26 18:24 #21 COrderInfo クラスにも行がある。return(FormatType(str,Type())); ... FormatType(type,Type()) ... if(m_type==Type() && m_state==State() && しかし、このクラスにはType()関数がない。 Yedelkin 2011.02.26 19:10 #22 この記事のセクション 1.4 では、COrderInfo クラスの機能を説明していますが、その説明から判断すると、このクラスは有効な未決 注文を扱うように設計されています。保留中の注文のプロパティを取得するためにこのクラスを使用するには、まず注文の総数を要求し、注文チケットで選択 します。//指定された期間の過去の注文をすべて選択する。 if (HistorySelect(0,TimeCurrent())) // すべての注文 { // オーダーの総数を取得する int o_total = OrdersTotal(); } しかし、HistorySelect() 関数が「取引と注文の履歴」、つまり過去の注文を 照会するために設計されているのであれば、なぜ有効な未決注文の総数を照会する際にこの関数を使用するのでしょうか? Yedelkin 2011.02.26 19:26 #23 Yedelkin: COrderInfoクラスでは. しかし、このクラスには Type() 関数がありません。CDealInfo と CPositionInfoクラスも 同じ状況です。 Yedelkin 2011.02.26 21:42 #24 どなたか説明してください。CDealInfoクラスのコードの一部です://+------------------------------------------------------------------+ //|DealInfo.mqh //+------------------------------------------------------------------+ #include <Object.mqh> #include "SymbolInfo.mqh" //+------------------------------------------------------------------+ //| クラス CDealInfo.| //| Appointment: 取引履歴情報にアクセスするためのクラス。 //| クラス CObject から派生しています。| //+------------------------------------------------------------------+ class CDealInfo : public CObject { ... public: ... //--- 文字列位置プロパティへの高速アクセス・メソッド string Symbol() const; ... }; ... //+------------------------------------------------------------------+ //| プロパティ値 "DEAL_SYMBOL "を取得する。 //| INPUT: いいえ。| //| OUTPUT: プロパティ値 "DEAL_SYMBOL"。 //|| REMARK: No.| //+------------------------------------------------------------------+ string CDealInfo::Symbol() const { return(HistoryDealGetString(m_ticket,DEAL_SYMBOL)); //馬鹿なリターン } ... //+------------------------------------------------------------------+ //| 取引パラメータをテキストに変換する。 //| INPUT:str - 受信文字列、| //| deal - クラス・インスタンスへのポインタ。 //| OUTPUT: フォーマットされた文字列。| //|| REMARK: No.| //+------------------------------------------------------------------+ string CDealInfo::FormatDeal(string& str) const { string type,volume,price,date; CSymbolInfo symbol; //--- セットアップ symbol.Name(Symbol()); int digits=symbol.Digits(); //--- 取引の説明を形成する switch(Type()) { ... } //--- 結果を返す return(str); } ... //+------------------------------------------------------------------+CDealInfo::FormatDeal(string& str)関数にこの行があります: symbol.Name(Symbol());Symbol()関数は、CDealInfoクラス自体にも、クライアント端末の標準関数にも 定義されています。Symbol.Name()関数の引数として渡される関数はどれですか?どのような規則ですか? Mykola Demko 2011.02.26 22:37 #25 Yedelkin:どなたか説明してください。CDealInfoクラスのコードの一部です:CDealInfo::FormatDeal(string& str)関数にこの行があります:Symbol()関数は、CDealInfoクラス自体にも、クライアント端末の標準関数にも 定義されています。Symbol.Name()関数の引数として渡される関数はどれですか?どのようなルールですか?変数のスコープと同じ規則が、ここでも働きます。ある変数がグローバルレベルとローカルレベルで1つの名前で宣言されている場合、ローカルスコープ内ではその名前はローカル変数を指し、外ではグローバル変数を指します。標準関数がクラス内でオーバーロードされた場合、オーバーロードされた関数本体はクラス内で呼び出され、標準関数本体はグローバル・レベルで呼び出される。オーバーロードされた関数本体は、クラス・ポインタを通してグローバル・レベルで呼び出すことができる。 Yedelkin 2011.02.26 22:49 #26 Urain:ここでも変数のスコープと 同じルールが働く。ある変数がグローバルレベルとローカルレベルで同じ名前で宣言されている場合、ローカルスコープ内ではその名前はローカル変数を指し、外ではグローバル変数を指すことになる。標準関数がクラス内でオーバーロードされた場合、オーバーロードされた関数本体はクラス内で呼び出され、標準関数本体はグローバル・レベルで呼び出される。オーバーロードされた関数の本体は、クラスポインタを通してグローバルレベルで呼び出すことができます。 ありがとうございました!明快で理解しやすかったです! investeo 2012.01.01 15:12 #27 サミュエル、このような詳細な記事を書いてくれてありがとう。感謝している。 Tonny Obare 2013.01.16 07:22 #28 わかりやすくていい 削除済み 2016.01.17 17:57 #29 とてもいい記事だ!参考にしている。 Amy Liu 2017.01.04 07:52 #30 1.4章では、COrderInfoの 記述に注文履歴を使っているが、正しいか? 1234 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
COrderInfo クラスにも行がある。
return(FormatType(str,Type())); ... FormatType(type,Type()) ... if(m_type==Type() && m_state==State() &&しかし、このクラスにはType()関数がない。
この記事のセクション 1.4 では、COrderInfo クラスの機能を説明していますが、その説明から判断すると、このクラスは有効な未決 注文を扱うように設計されています。保留中の注文のプロパティを取得するためにこのクラスを使用するには、まず注文の総数を要求し、注文チケットで選択 します。
しかし、HistorySelect() 関数が「取引と注文の履歴」、つまり過去の注文を 照会するために設計されているのであれば、なぜ有効な未決注文の総数を照会する際にこの関数を使用するのでしょうか?COrderInfoクラスでは.
しかし、このクラスには Type() 関数がありません。
どなたか説明してください。CDealInfoクラスのコードの一部です:
CDealInfo::FormatDeal(string& str)関数にこの行があります:
symbol.Name(Symbol());Symbol()関数は、CDealInfoクラス自体にも、クライアント端末の標準関数にも 定義されています。Symbol.Name()関数の引数として渡される関数はどれですか?どのような規則ですか?どなたか説明してください。CDealInfoクラスのコードの一部です:
CDealInfo::FormatDeal(string& str)関数にこの行があります:
Symbol()関数は、CDealInfoクラス自体にも、クライアント端末の標準関数にも 定義されています。Symbol.Name()関数の引数として渡される関数はどれですか?どのようなルールですか?変数のスコープと同じ規則が、ここでも働きます。ある変数がグローバルレベルとローカルレベルで1つの名前で宣言されている場合、ローカルスコープ内ではその名前はローカル変数を指し、外ではグローバル変数を指します。
標準関数がクラス内でオーバーロードされた場合、オーバーロードされた関数本体はクラス内で呼び出され、標準関数本体はグローバル・レベルで呼び出される。オーバーロードされた関数本体は、クラス・ポインタを通してグローバル・レベルで呼び出すことができる。
ここでも変数のスコープと 同じルールが働く。ある変数がグローバルレベルとローカルレベルで同じ名前で宣言されている場合、ローカルスコープ内ではその名前はローカル変数を指し、外ではグローバル変数を指すことになる。
標準関数がクラス内でオーバーロードされた場合、オーバーロードされた関数本体はクラス内で呼び出され、標準関数本体はグローバル・レベルで呼び出される。オーバーロードされた関数の本体は、クラスポインタを通してグローバルレベルで呼び出すことができます。