記事"MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第1部)概念、データ管理および最初の結果"についてのディスカッション - ページ 7

 
この場を借りて、素晴らしい仕事に感謝します。ようやくクラス作りが理解できるようになりました。
 

さて、私はあなたの提案に従ってコードを勉強しています。

そして、プロテクトクラスのコンストラクタの 実装のところで止まってしまいました。

私が送ったこのコードにはコンパイル後にエラーがあります。TakeProfitでポジションをクローズするフラグを返す部分です。

どうやら'Status'という 識別子が 宣言されていない よう だ。

 

Нашел "проблему" ... Была между клавиатурой и компьютером ...МЕНЯ!

このウェブサイトは、методов переменная была определена ...

Так как я еще не дошел до конца кода, то искал ошибку ...Но в последовательности переменная определена и все решено.

Извините за неудобства.

Спасибо

 
albertpess :

まあ、あなたの提案に従って、手順を追ってコードを勉強しています。

そして、プロテクトクラスのコンストラクタの 実装のところで止まってしまいました。

私が送ったこのコードにはコンパイル後にエラーがあります。TakeProfitでポジションをクローズするフラグを返す部分です。

Status' 識別子が 宣言されていない ようだ

つまり、どこかで何かを間違えたのだ。何かを見落とした。

記事に添付されているファイルをターミナル・フォルダにダウンロードし、EAをコンパイルしてください。

そして、記事にあるように、ステップバイステップですべてを分解してください。

 
Artyom Trishkin:

だから、どこかで何かを間違えたんだ。何かを見落とした。

記事に添付されているファイルをターミナル・フォルダにダウンロードし、EAをコンパイルしてください。

そして、記事にあるように、ステップバイステップですべてを分解してください。

ありがとうございました。

 
とても役に立ったし、よくやった!ありがとう
 
かなりいいよ。
 

プロテクトクラスのコンストラクタの実装

//+------------------------------------------------------------------+
| クローズド・パラメトリック・コンストラクタ|
//+------------------------------------------------------------------+
COrder::COrder(ENUM_ORDER_STATUS order_status,const ulong ticket)
  {
//--- 整数のプロパティを保存する
   m_ticket=ticket;
   m_long_prop[ORDER_PROP_STATUS]                              = order_status;
   m_long_prop[ORDER_PROP_MAGIC]                               = this.OrderMagicNumber();
   m_long_prop[ORDER_PROP_TICKET]                              = this.OrderTicket();

こんにちは、Artyomです、

を使うことができます:

m_long_prop[ORDER_PROP_TICKET] = (long)ticket; // ticketは渡されたパラメータです。

 
Ming Ge # :
この.OrderTicket();

もし

 this . OrderTicket ();

が上で設定したm_ticketの値を返すなら、それは可能だ。

しかし、これを書いたのはずいぶん前なので、すぐには思い出せない。

調べました。このメソッドはorderプロパティにチケットを書き込む:

 //+------------------------------------------------------------------+
 | Возвращает тикет|
 //+------------------------------------------------------------------+
 long COrder::OrderTicket( void ) const 
  {
 #ifdef __MQL4__
   return ::OrderTicket();
 #else
   long res= 0 ;
   switch ((ENUM_ORDER_STATUS) this .GetProperty(ORDER_PROP_STATUS))
     {
       case ORDER_STATUS_MARKET_POSITION   :
       case ORDER_STATUS_MARKET_ORDER      :
       case ORDER_STATUS_MARKET_PENDING    :
       case ORDER_STATUS_HISTORY_PENDING   :
       case ORDER_STATUS_HISTORY_ORDER     :
       case ORDER_STATUS_DEAL              : res=( long )m_ticket;  break ;
       default                             : res= 0 ;               break ;
     }
   return res;
 #endif
   }

単純な代入に置き換える必要があるかどうかは、自分で決めてください。