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

 
こんにちは!ヘッジ/ヘッジ口座タイプでプログラム的にオープンポジションを 閉じる方法を説明または指を指してください。MQL5でヘッジポジションを閉じる方法は?この資料だけ見つけました。https://www.mql5.com/ru/articles/4830。
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
BlackCoffee:
こんにちは!ヘッジ/ヘッジ口座タイプでプログラム的にオープンポジションを 閉じる方法を説明または指を指してください。MQL5でヘッジポジションを閉じる方法は?この資料しか見つかりませんでした https://www.mql5.com/ru/articles/4830

Close all positions コードの例

ポジションを扱う場合、すべてのポジションをゼロまで ループする必要があります。

//+------------------------------------------------------------------+
//| Close all positions                                              |
//+------------------------------------------------------------------+
void CloseAllPositions()
  {
   for(int i=PositionsTotal()-1;i>=0;i--) // returns the number of current positions
      if(m_position.SelectByIndex(i))     // selects the position by index for further access to its properties
         m_trade.PositionClose(m_position.Ticket()); // close a position by the specified symbol
  }

Close all positions
Close all positions
  • www.mql5.com
Закрытие позиций при достижении уровня прибыли  Close all if Profit . При этом суммируется общая прибыль по всем позициям: вне зависимости от символа и magic number. Подсчёт прибыли происходит только в момент рождения нового бара.
 
Vladimir Karputov:

Close all positions コードの例

ポジションを扱う場合、すべてのポジションをゼロまで ループする必要があります。

回答ありがとうございました!!!売りポジションを決済するだけならどうでしょうか。これらの行を追加する必要がありますか?
if((ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
                       {
                         //--- prepare request for close SELL position
                        mrequest.type =ORDER_TYPE_BUY;
                        mrequest.price=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
                       }
 

こんなの作りました。ヘッジのために自らを閉じること。


void CloseSellPositions()
  {
   for(int i=PositionsTotal()-1;i>=0;i--) // returns the number of current positions
      if(m_position.SelectByIndex(i))     // selects the position by index for further access to its properties
         if((ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
                       {
                            m_trade.PositionClose(m_position.Ticket()); // close a position by the specified symbol
                       }
  }
しかし、何らかの理由で1つだけポジションが空くことがあります。条件:ポジションが5つ以上ある場合は閉じる。
 
BlackCoffee:

こんなの作りました。ヘッジのために自らを閉じること。


しかし、何らかの理由でクローズしないポジションが1つだけあることがあります。5つ以上のポジションがあれば閉じるという条件を設定した場合。

もう、その時はその時です。

void CloseSellPositions()
  {
   for(int i=PositionsTotal()-1;i>=0;i--) // returns the number of current positions
      if(m_position.SelectByIndex(i))     // selects the position by index for further access to its properties
         if(m_position.PositionType()==POSITION_TYPE_SELL)
            m_trade.PositionClose(m_position.Ticket()); // close a position by the specified symbol
  }

と表示され、終了に失敗した場合は、ログファイルを見てください。リダイレクト、取引なし、価格なし、ストップレベルの近さ...など、理由はいくらでも考えられます。

 
こんにちは。なぜ、初期化時にクラス・オブジェクトを 削除する必要があるのですか?端末を閉じた後もメモリに残っているのでしょうか?それとも、ターミナルが動いている間は、EAがなくてもメモリに残っているのでしょうか?クラスオブジェクト以外に削除する必要があるものは?
 
Ivan_Invanov:
こんにちは。なぜ非初期化でクラス・オブジェクトを 削除する必要があるのですか?端末を閉じた後もメモリに残っているのでしょうか?それとも、Expert Advisorを使用せずに、ターミナルを実行している間、メモリに残っているのでしょうか?クラスオブジェクト以外に削除する必要があるものは?

例えば、Expert Advisorをグラフから削除しても、すべての描画(オブジェクト)はグラフ上に残ります。非初期化では、不要なものをすべて削除し、きれいなグラフにします。こんな感じです。

 
Nauris Zukas:

例えば、Expert Advisorをグラフから削除しても、すべての描画(オブジェクト)はグラフ上に残ります。非初期化では、不要なものをすべて削除し、きれいなグラフにします。こんな感じです。

グラフィカルなコードは使いません。他の方のプログで、クラスオブジェクトが 削除されているのを見たことがあります。初期化で削除されなければ、端末を閉じるまでメモリに残っているという理解で合っていましたか?クラスオブジェクト以外に削除した方が良いものはありますか?ありがとうございます。
 

こんにちは。

インジケーターにidを割り当てるには?EAを購入したのですが、高い時間枠で取引して低い時間枠で取引するような方向性になっています。開発者は、上位のチャートにインジケータを置き、それにidを割り当てるべきと書いています。MTは初めてで、やり方がわからない。どなたかご存知の方、アドバイスお願いします。(バージョンMT5を使用しています)

 
secret:

他のチャートのトレードがチャートに表示されないようにするにはどうしたらいいですか?

指定されたチャートにあるロボットのトレードのみ。

一つのチャートに多くのロボットのトレードがごちゃごちゃと表示されるのが気になるのは私だけでしょうか?誰も気にしてない?

理由: