翻訳の難しさ :) - ページ 5

 
fxsaber もし、#include <Trade/Trade.mqh> があれば、この行を後ろに挿入 してください。
その後であれば、すべてOK )
 
Alexey Volchanskiy:

質問 - MQL5でポジションのコミッションを知るにはどうしたらよいですか?

MQL4ではこんな感じでやってました。

MQL5には手数料はありません。

注文のプロパティを 見たところ、同様に手数料がありません。どうしたらいいのでしょうか?

シンボルのプロパティのどこかにある
 
Alexey Volchanskiy:

質問 - MQL5でポジションのコミッションを知るにはどうしたらよいですか?

MQL4ではこんな感じでやってました。

MQL5には手数料はありません。

注文のプロパティを 見たところ、同様に手数料がありません。どうしたらいいのでしょうか?

ディールプロパティを見るといい。HistoryDealGetDouble(ticket, DEAL_COMMISSION)です。
 
Alexey Volchanskiy:

質問 - MQL5でポジションのコミッションを知るにはどうしたらよいですか?

MQL4ではこんな感じでやってました。

MQL5には手数料はありません。

注文のプロパティを 見たところ、同様に手数料がありません。どうしたらいいのでしょうか?

を呼び出すと、ライブラリは正しい値を返します。

OrderCommission()

ソースコードでは以下のように表示されます。

   static ulong GetPositionDealIn(const ulong HistoryTicket=0)
     {
      ulong Ticket=0;

      if((HistoryTicket==0) ? ::HistorySelectByPosition(::PositionGetInteger(POSITION_TICKET)) : ::HistorySelectByPosition(HistoryTicket))
        {
         const int Total=::HistoryDealsTotal();

         for(int i=0; i<Total; i++)
           {
            const ulong TicketDeal=::HistoryDealGetTicket(i);

            if(TicketDeal>0)
               if((ENUM_DEAL_ENTRY)::HistoryDealGetInteger(TicketDeal,DEAL_ENTRY)==DEAL_ENTRY_IN)
                 {
                  Ticket=TicketDeal;

                  break;
                 }
           }
        }

      return(Ticket);
     }

   static double GetPositionCommission(void)
     {
      double Commission=::PositionGetDouble(POSITION_COMMISSION);

      // На случай, если POSITION_COMMISSION не работает
      if(Commission==0)
        {
         const ulong Ticket=MT4ORDERS::GetPositionDealIn();

         if(Ticket>0)
           {
            const double LotsIn=::HistoryDealGetDouble(Ticket,DEAL_VOLUME);

            if(LotsIn>0)
               Commission=::HistoryDealGetDouble(Ticket,DEAL_COMMISSION)*::PositionGetDouble(POSITION_VOLUME)/LotsIn;
           }
        }

      return(Commission);
     }
 

さあ、どうぞ...ドキュメントにはPOSITION_COMISSION プロパティはなく、DEAL_COMISSION トランザクションプロパティにのみあります。

ありがとうございます、ドキュメントの不正確さをまた知ることができました。

 
では、コミッションはどのように考慮されているのでしょうか。ポジションの利益には加算されないのですか?ポジションを開いた 直後の残高に影響するのか?
 
Dmitry Fedoseev:
では、コミッションはどのように考慮されているのでしょうか。ポジションの利益には加算されないのですか?ポジションを建てる 取引の直後は、残高に影響があるのでしょうか?
はい。
 
fxsaber:

を呼び出すと、ライブラリは正しい値を返します。

ソースコードでは次のようになっています。

最後にdefineをコメントアウトしていますが、そのようにするのでしょうか?もうひとつ。YouTubeの私のブログで、MQL4からMQL5への翻訳ビデオリールを作る予定です。あなたの図書館も翻訳していいですか?もちろん、kodobaseへのリンクです。

/*
#define OrderClose  MT4ORDERS::MT4OrderClose
#define OrderModify MT4ORDERS::MT4OrderModify // нельзя, например: CTrade::OrderModify
#define OrderDelete MT4ORDERS::MT4OrderDelete // нельзя, например: CTrade::OrderDelete

#define OrdersHistoryTotal MT4ORDERS::MT4OrdersHistoryTotal

#define OrderTicket      MT4ORDERS::MT4OrderTicket
#define OrderType        MT4ORDERS::MT4OrderType // нельзя, например: CHistoryOrderInfo::OrderType
#define OrderLots        MT4ORDERS::MT4OrderLots
#define OrderSymbol      MT4ORDERS::MT4OrderSymbol
#define OrderComment     MT4ORDERS::MT4OrderComment
#define OrderOpenPrice   MT4ORDERS::MT4OrderOpenPrice
#define OrderOpenTime    MT4ORDERS::MT4OrderOpenTime
#define OrderStopLoss    MT4ORDERS::MT4OrderStopLoss
#define OrderTakeProfit  MT4ORDERS::MT4OrderTakeProfit
#define OrderClosePrice  MT4ORDERS::MT4OrderClosePrice
#define OrderCloseTime   MT4ORDERS::MT4OrderCloseTime
#define OrderExpiration  MT4ORDERS::MT4OrderExpiration
#define OrderMagicNumber MT4ORDERS::MT4OrderMagicNumber
#define OrderProfit      MT4ORDERS::MT4OrderProfit
#define OrderCommission  MT4ORDERS::MT4OrderCommission
#define OrderSwap        MT4ORDERS::MT4OrderSwap
#define OrderPrint       MT4ORDERS::MT4OrderPrint
*/
 
Alexey Viktorov:

どうだろう...。ドキュメントにはPOSITION_COMISSION プロパティはなく、DEAL_COMISSION トランザクションプロパティにのみあります。

ありがとうございます、ドキュメントの不正確さをまた知ることができました。

また、ドキュメントにはそのようなプロパティはありませんが、コンパイルはできます )ここでは、ターミナルのヘルプに書かれていることをすべて紹介します。

ポジションボリューム

ポジションボリューム

二重

ポジション・プライス・オープン

ポジション価格

二重

POSITION_SL

オープンポジションのストップロスレベル

二重

POSITION_TP

オープンポジションの利益確定レベル

二重

位置価格

シンボルの現在価格

二重

POSITION_SWAP

スワップ累積額

二重

ポジションプロフィット

当期利益

二重

 
Alexey Viktorov:
トランザクションのプロパティをご覧ください。HistoryDealGetDouble(ticket, DEAL_COMMISSION)です。
では、手数料はポジションをクローズ した後でないとわからないのですか?しかし、少なくともalpとrobotのECN口座では開設時に取られています。これはまずい。