ライブラリ: MT4Orders - ページ 75

 

POSITION_COMMISSIONで 手数料を得られないことに気づいたとき、フォーラムでMT4Ordersライブラリでそれができると読みました。テストしてみましたが、それもうまくいきませんでした。DEAL_COMMISSION経由で関数を書くことはできますが、なぜMT4Ordersライブラリが役に立たなかったのかを明確にしたかったのです。

void TestComision(string sy, int op=-1, int mn=-1)
  {
   if(!m_symbol.Name(sy)) // シンボル名を設定する
      return;
   m_symbol.RefreshRates();

   for(int i=PositionsTotal()-1; i>=0; i--) // オープンポジションの数を返す
      if(m_position.SelectByIndex(i))
         if((m_position.Symbol()==sy || sy=="") && (op<0 || m_position.PositionType()==op))
            if(mn<0 || m_position.Magic()==mn)
               if(m_position.PositionType()==POSITION_TYPE_SELL)
                 {
                  Print(i," sy: ",sy,"-88880- mProfit: ",m_position.Profit()," MT4OrderCommission(): ",OrderCommission());
                 }

  }
2020.04.14 23:45:00   5 sy: AUDNZD-88880- mProfit: 7.84 MT4OrderCommission(): 0.0
2020.04.14 23:45:00   4 sy: AUDNZD-88880- mProfit: -11.72 MT4OrderCommission(): 0.0
2020.04.14 23:45:00   3 sy: AUDNZD-88880- mProfit: -14.51 MT4OrderCommission(): 0.0
2020.04.14 23:45:00   2 sy: AUDNZD-88880- mProfit: -11.25 MT4OrderCommission(): 0.0
2020.04.14 23:45:00   1 sy: AUDNZD-88880- mProfit: -7.48 MT4OrderCommission(): 0.0
2020.04.14 23:45:00   0 sy: AUDNZD-88880- mProfit: -10.17 MT4OrderCommission(): 0.0
 
Nauris Zukas POSITION_COMMISSIONで 手数料を得られないことに気づいたとき、フォーラムでMT4Ordersライブラリでそれができると読みました。テストしてみましたが、それもうまくいきませんでした。DEAL_COMMISSION経由で関数を書くことはできますが、なぜMT4Ordersライブラリが役に立たなかったのかを明確にしたかったのです。
#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>

CPositionInfo m_position;
CSymbolInfo m_symbol;

#include <MT4Orders.mqh> //https://www.mql5.com/ja/code/16006

void TestComision(string sy, int op=-1, int mn=-1)
  {
   if(!m_symbol.Name(sy)) // シンボル名を設定する
      return;
   m_symbol.RefreshRates();

   for(int i=PositionsTotal()-1; i>=0; i--) // オープンポジションの数を返す
      if(m_position.SelectByIndex(i))
         if((m_position.Symbol()==sy || sy=="") && (op<0 || m_position.PositionType()==op))
            if(mn<0 || m_position.Magic()==mn)
               if(m_position.PositionType()==POSITION_TYPE_SELL)
                 {
                  OrderSelect(INT_MAX, SELECT_BY_POS);
                  
                  Print(i," sy: ",sy,"-88880- mProfit: ",m_position.Profit()," MT4OrderCommission(): ",OrderCommission());
                 }

  }

void OnStart()
{
  TestComision(_Symbol);
}
 
fxsaber #:

ありがとう。

 
5を32軸のVinにインストール。最新版では8つのエラーが出た。しかし、2018年版は動作する。
 
Valeriy Yastremskiy #:
5を32軸のVinにインストール。最新版では8つのエラーが出た。しかし、2018年版は動作する。

もっと技術的な情報を提供していただけると助かります。私は、MT5の最後の動作するx32ビルドがまだ何かをサポートしていなかったと仮定します。例えば、MQL_HANDLES_USED

私は戦闘でb2958_x64のみを使用し、b3260にコンパイルします。
 
fxsaber #:

もっと技術的な情報を提供するのが良いでしょう。MT5の最後の動作するx32ビルドは、まだ何かをサポートしていなかったと推測されます。例えば、MQL_HANDLES_USED

私は戦闘でb2958_x64のみを使用し、b3260にコンパイルします。

2020年3月8日からビルド2361をインストール。最新版のエラーにMQL_HANDLES_USEDが あります。8エラー。リリース // 08.02.2022

32ビットリリースでエラーなしでコンパイル可能 // 30.05.2018

 
Valeriy Yastremskiy #:

2020年3月8日からビルド2361をインストール。最新版のエラーにMQL_HANDLES_USEDが あります。8エラー。リリース // 08.02.2022

#define  MQL_HANDLES_USED MQL_MEMORY_USED
#include <MT4Orders.mqh>
 
fxsaber #:
'DEAL_SL' - undeclared identifier       MT4Orders2021.mqh       1281    89
'HistoryDealGetDouble' - no one of the overloads can be applied to the function call    MT4Orders2021.mqh       1281    60
could be one of 2 function(s)   MT4Orders2021.mqh       1281    60
   built-in: double HistoryDealGetDouble(ulong,ENUM_DEAL_PROPERTY_DOUBLE)       MT4Orders2021.mqh       1281    60
   built-in: bool HistoryDealGetDouble(ulong,ENUM_DEAL_PROPERTY_DOUBLE,double&) MT4Orders2021.mqh       1281    60
'DEAL_TP' - undeclared identifier       MT4Orders2021.mqh       1282    91
'HistoryDealGetDouble' - no one of the overloads can be applied to the function call    MT4Orders2021.mqh       1282    62
could be one of 2 function(s)   MT4Orders2021.mqh       1282    62
   built-in: double HistoryDealGetDouble(ulong,ENUM_DEAL_PROPERTY_DOUBLE)       MT4Orders2021.mqh       1282    62
   built-in: bool HistoryDealGetDouble(ulong,ENUM_DEAL_PROPERTY_DOUBLE,double&) MT4Orders2021.mqh       1282    62

ありがとう。1281行目と1282行目も。DEAL_SL DEAL_TPの 変数です。

時間があれば。一般的には、誤ってこのノートブック5kuにインストールしました。そして、テストする欲求が現れた)))))

 
Valeriy Yastremskiy #:

ありがとう。1281行目と1282行目も。変数DEAL_SL DEAL_TP

#define  MQL_HANDLES_USED MQL_MEMORY_USED
#define  DEAL_TP DEAL_PRICE
#define  DEAL_SL DEAL_PRICE
#include <MT4Orders.mqh>
サイトエンジンもこれらのENUMをサポートしていません - 赤くハイライトされません。
 
fxsaber #:
ZY サイトエンジンもこれらのENUMをサポートしていません。

ありがとうございます。