初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 657

 
Alexey Kozitsyn:
すべて要領よく、参考文献まであるようで・・・。ただ、「説明書を読んだ」と宣言する人がいて、「ネット(ちなみにFORTSに使われている)を外してほしい」と言われると......。皮肉で言ってるんだろ?
それを肝に銘じて、嫌味のないように準備します。
 
Anatoli Kazharski:
追い払われないように気をつけよう。)
もう手遅れだ、もう着いている。
 
new-rena:
遅れてきた、もう着いたのか。
誰がどこで何をしているのか、一目瞭然です。)
 
Vladimir Karputov:

ヘッジ会計の場合の例です。

最初の操作は買い0.02、2番目の操作は売り0.01です。買い0.02と売り0.001の合計2つのポジション。 そして、売り0.01のポジションを閉じ買い0.02のポジションを閉じるのです。

//+------------------------------------------------------------------+
//|                                                       TestEA.mq5 |
//|                              Copyright © 2016, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2016, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
CTrade         m_trade;                      // trading object
CPositionInfo  m_position;                   // trade position object
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   static long counter=0;
   counter++;
   if(counter%300==0 && counter<700)
     {
      static int number=0;
      number++;
      if(number==1)
         m_trade.Buy(0.02);
      if(number==2)
         m_trade.Sell(0.01);
     }
   if(counter>7000)
     {
      int positions= PositionsTotal();
      if(positions == 0)
         return;
      int positions_total=PositionsTotal();
      for(int i=positions_total-1;i>=0;i--)
         if(m_position.SelectByIndex(i))
            m_trade.PositionClose(m_position.Ticket(),-1);
     }
  }
//+------------------------------------------------------------------+

とジャーナルに掲載されました。

Trade   2016.02.25 00:13:35   instant buy 0.02 EURUSD at 1.10167 (1.10158 / 1.10167 / 1.10158)
Trades  2016.02.25 00:13:35   deal #2 buy 0.02 EURUSD at 1.10167 done (based on order #2)
Trade   2016.02.25 00:13:35   deal performed [#2 buy 0.02 EURUSD at 1.10167]
Trade   2016.02.25 00:13:35   order performed buy 0.02 at 1.10167 [#2 buy 0.02 EURUSD at 1.10167]
TestEA (EURUSD,H1)      2016.02.25 00:13:35   CTrade::OrderSend: instant buy 0.02 EURUSD at 1.10167 [done at 1.10167]
Trade   2016.02.25 00:30:17   instant sell 0.01 EURUSD at 1.10157 (1.10157 / 1.10164 / 1.10157)
Trades  2016.02.25 00:30:17   deal #3 sell 0.01 EURUSD at 1.10157 done (based on order #3)
Trade   2016.02.25 00:30:17   deal performed [#3 sell 0.01 EURUSD at 1.10157]
Trade   2016.02.25 00:30:17   order performed sell 0.01 at 1.10157 [#3 sell 0.01 EURUSD at 1.10157]
TestEA (EURUSD,H1)      2016.02.25 00:30:17   CTrade::OrderSend: instant sell 0.01 EURUSD at 1.10157 [done at 1.10157]
TestEA (EURUSD,H1)      2016.02.25 02:12:06   PositionClose #3 POSITION_TYPE_SELL 0.01
Trade   2016.02.25 02:12:06   instant buy 0.01 EURUSD at 1.10131, close #3 (1.10123 / 1.10131 / 1.10123)
Trades  2016.02.25 02:12:06   deal #4 buy 0.01 EURUSD at 1.10131 done (based on order #4)
Trade   2016.02.25 02:12:06   deal performed [#4 buy 0.01 EURUSD at 1.10131]
Trade   2016.02.25 02:12:06   order performed buy 0.01 at 1.10131 [#4 buy 0.01 EURUSD at 1.10131]

TestEA (EURUSD,H1)      2016.02.25 02:12:06   CTrade::OrderSend: instant buy 0.01 position #3 EURUSD at 1.10131 [done at 1.10131]
TestEA (EURUSD,H1)      2016.02.25 02:12:06   PositionClose #2 POSITION_TYPE_BUY 0.02
Trade   2016.02.25 02:12:06   instant sell 0.02 EURUSD at 1.10123, close #2 (1.10123 / 1.10131 / 1.10123)
Trades  2016.02.25 02:12:06   deal #5 sell 0.02 EURUSD at 1.10123 done (based on order #5)
Trade   2016.02.25 02:12:06   deal performed [#5 sell 0.02 EURUSD at 1.10123]
Trade   2016.02.25 02:12:06   order performed sell 0.02 at 1.10123 [#5 sell 0.02 EURUSD at 1.10123]
TestEA (EURUSD,H1)      2016.02.25 02:12:06   CTrade::OrderSend: instant sell 0.02 position #2 EURUSD at 1.10123 [done at 1.10123]

具体的に何がはっきりしないのでしょうか?ポジションを決済 するために、同じ数量の反対注文を出す必要があるということ?

ありがとうございました。やってみます。
 

POSITION_PROFIT」に手数料やスワップが含まれているかどうかは、誰にもわからない。

そうでない場合、MQL5で注文の手数料の金額を調べるには、どのようなパラメータを使用すればよいですか?

 
new-rena:

POSITION_PROFIT」に手数料やスワップが含まれているかどうかは、誰にもわからない。

いいえ」の場合、MQL5で未払い手数料の金額を調べるには、どのようなパラメータが必要ですか?

POSITION_PROFIT は、単にポジションの 利益(手数料、スワップ...を差し引かない)です。ポジションの 累積スワップを調べるには、次のようにします。

POSITION_SWAP

スワップ累積額

二重


また、最終的な手数料やスワップ総額は、ポジションを決済した後、取引履歴で知ることができます。

取引手数料

取引手数料

二重

DEAL_SWAP(ディールスワップ

決算時のスワップ累積額

二重

 
new-rena:

POSITION_PROFIT」に手数料やスワップが含まれているかどうかは、誰にもわからない。

そうでない場合、MQL5で注文に課される手数料の金額を調べるには、どのようなパラメータを使用すればよいですか?

ロシア語では、注文は利益を出すことも損失を出すこともできず、あくまで実行するための注文である。注文が執行されると、選択した価格でマーケットにポジションを受け取ります。


ウラジーミル・カルプトフ

POSITION_PROFITは、ポジションの 利益だけです(手数料、スワップは含まず...)。このようにポジションの 累積スワップを調べることができます。

そして、最終的な手数料やスワップは、ポジションを決済 した後に、取引履歴で確認することができます。

まあ、これは全部間違いというか、不完全なんですけどね。

なぜ、決済後の手数料を知る必要があるのか、というか知る必要があるのですが、いつでも、例えば、口座に手数料とドローやブレイクイーブンがある場合、価格のロールバックや決済の場合、手数料とスワップが重なるレベルで最初のトリガーがあったように計算するにはどうしたらいいのでしょうか。スワップについては、ポジションが1週間市場にとどまり、その間スワップ獲得に3ppかかり、Breakevenが発生したときにドローバックで決済される可能性がありますが、どうでしょうか?

それとも、私が計算を理解していないのでしょうか?

 
Vitaly Muzichenko:

ロシア語では、注文は利益にも損失にもなりえず、あくまで実行するための注文です。注文が執行されると、選択した価格でマーケットにポジションを取得します。


これは全部間違っているというか、不完全なんです。

なぜ、寄り付き後に手数料を知る必要があるのか、というか知る必要があるのですが、いつでも、口座に手数料とトレールやブレイクイーブンがあるとすると、最初のヒットが手数料とスワップが重なるレベルで、価格のロールバックや決済があった場合、どう計算すればいいのでしょうか。スワップについては、ポジションが1週間市場にとどまり、その間スワップ獲得に3ppかかり、Breakevenが発生したときにドローバックで決済される可能性がありますが、どうでしょうか?

それとも、何か計算が足りないのでしょうか?

POSITION_PROFIT」には既に全ての内容(スワップ、利益、手数料)が含まれているとのことですが、これだけで自分にとって利益が出るかどうか結論が出るのでしょうか?
 
new-rena:

POSITION_PROFIT」に手数料やスワップが含まれているかどうかは、誰にもわからない。

そうでない場合、MQL5で注文に課される手数料の金額を調べるには、どのようなパラメータが必要ですか?

MT4Ordersのライブラリを課していない。でも、もしかしたら、古き良きOrderCommissionを呼び出すだけの方が簡単かも?

ヘッジ口座だけでなく、ネット口座にも対応しています。

 
new-rena:
POSITION_PROFIT」には、すでにすべて(スワップ、利益、手数料)が含まれていると理解しています。
では、簡単なExpert Advisorで確認してみましょう...。
理由: