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

 
pennyhunter:

ありがとう!

私はプログラミングの初心者なのですが、あなたの記事はとても不可解に見えるし、写真も載っていないので怖かったのです。

でも実際は、とてもよく書かれていて、よく翻訳されていて、オブジェクト指向プログラミングに飛び込むのに役立っています。

:)

わかりました。どういたしまして。

 

どうやら以下の箇所に誤りがあるようです:

+------------------------------------------------------------------+
| StopLossポジションのクローズフラグを返す |
+------------------------------------------------------------------------+
bool COrder::OrderCloseByStopLoss(void) const
{
#ifdef __MQL4__
return(::StringFind(:::OrderComment(),"[sl")>WRONG_VALUE);
#else
return
(
this.Status()==ORDER_STATUS_HISTORY_ORDER ? this.OrderReason()==ORDER_REASON_SL :
this.Status()==ORDER_STATUS_DEAL ? this.OrderReason()==DEAL_REASON_SL :false
);
#endif
}
//+------------------------------------------------------------------+
//| TakeProfitでポジションを閉じるフラグを返す|
//+--------------------------------------------------+
bool COrder::OrderCloseByTakeProfit(void) const
{
#ifdef __MQL4__
return(::StringFind(:::OrderComment(),"[tp")>WRONG_VALUE);
#else
return
(
this.Status()==ORDER_STATUS_HISTORY_ORDER ? this.OrderReason()==ORDER_REASON_TP :
this.Status()==ORDER_STATUS_DEAL ? this.OrderReason()==DEAL_REASON_TP : false
);
#endif
}.

返されたメッセージは、'Status' - 未宣言の識別子 Order.mqh です。

残念ながら解決できません。

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

 
albertpess:

どうやら次の一節に誤りがあるようだ:

+------------------------------------------------------------------+
| StopLossポジションのクローズフラグを返す |
+------------------------------------------------------------------------+
bool COrder::OrderCloseByStopLoss(void) const
{
#ifdef __MQL4__
return(::StringFind(:::OrderComment(),"[sl")>WRONG_VALUE);
#else
return
(
this.Status()==ORDER_STATUS_HISTORY_ORDER ? this.OrderReason()==ORDER_REASON_SL :
this.Status()==ORDER_STATUS_DEAL ? this.OrderReason()==DEAL_REASON_SL :false
);
#endif
}
//+------------------------------------------------------------------+
//| TakeProfitでポジションを閉じるフラグを返す|
//+--------------------------------------------------+
bool COrder::OrderCloseByTakeProfit(void) const
{
#ifdef __MQL4__
return(::StringFind(:::OrderComment(),"[tp")>WRONG_VALUE);
#else
return
(
this.Status()==ORDER_STATUS_HISTORY_ORDER ? this.OrderReason()==ORDER_REASON_TP :
this.Status()==ORDER_STATUS_DEAL ? this.OrderReason()==DEAL_REASON_TP : false
);
#endif
}.

返されたメッセージは次のとおりである。

残念ながら解決できません。

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

MetaTrader 4 ? または MetaTrader 5 ?

 

でも同じことが起こる:

m_long_prop[ORDER_PROP_PROFIT_EN] = this.ProfitInPoints();

e

m_double_prop[this.IndexProp(ORDER_PROP_PROFIT_FULL)] = this.ProfitFull();

どちらのスニペットも、Closed パラメトリック・コンストラクタ内に記述します。

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

 
Artyom Trishkin:

MetaTrader 4 ? または MetaTrader 5 ?

MT5
 
albertpess :
MT5

何をされているのか知りたいです。

メッセージ入力ウィンドウのツールバーにあるこのボタン を使ってコードを挿入してください。

 

皆さんの記事を勉強しています。私の目標は、クラスで仕事をする方法を学ぶことです。

 
Artyom Trishkin:

あなたが何をしているのか知りたい。

メッセージ入力ウィンドウのツールバーにあるこのボタンを使ってコードを挿入してください。

bool COrder::OrderCloseByStopLoss(void) const
  {
#ifdef __MQL4__
   return(::StringFind(::OrderComment(),"[sl")>WRONG_VALUE);
#else 
   return
     (
     this.Status()==ORDER_STATUS_HISTORY_ORDER ? this.OrderReason()==ORDER_REASON_SL : 
     this.Status()==ORDER_STATUS_DEAL ? this.OrderReason()==DEAL_REASON_SL : false
     );
#endif 
  }
//+------------------------------------------------------------------+
//| テイクプロフィットによってポジションをクローズするフラグを返します。
//+------------------------------------------------------------------+
bool COrder::OrderCloseByTakeProfit(void) const
  {
#ifdef __MQL4__
   return(::StringFind(::OrderComment(),"[tp")>WRONG_VALUE);
#else 
   return
     (
      this.Status()==ORDER_STATUS_HISTORY_ORDER ? this.OrderReason()==ORDER_REASON_TP : 
      this.Status()==ORDER_STATUS_DEAL ? this.OrderReason()==DEAL_REASON_TP : false
     );
#endif 
  }
 

Спасибо.

Я не знал об этой функции.

 
albertpess :

皆さんの記事を勉強しています。私の目標は、クラスで仕事をする方法を学ぶことです。


どのようなエラーが発生しますか?
もう少し詳しく説明してください。