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

 
ダックは信号に関する記事でそうではないんです。
 
void ClosePositions()
  {
   for(int i=PositionsTotal()-1;i>=0;i--) // returns the number of current orders
      if(m_position.SelectByIndex(i))     // selects the position by index for further access to its properties
         if(m_position.Symbol()==m_symbol.Name() && m_position.Magic()==Magic)
            m_trade.PositionClose(m_position.Ticket()); // close a position by the specified symbol
  }
この機能を、AAAコメントのあるポジションを 検索してクローズ するように変更する方法を教えてください。
Совершение сделок - Торговые операции - MetaTrader 5
Совершение сделок - Торговые операции - MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
EgorKim:
この機能を、AAAコメントのあるポジションを 検索してクローズ するように変更する方法を教えてください。

ヘルプ:CPositionInfo

テキストプロパティへのアクセス ...
 

ありがとうございます。

また、コンパイル時に'数値'から'文字列'への暗黙の変換が悪目立ちしている理由を教えてください。

if(m_trade.Buy(InpLots,m_symbol.Name(),m_symbol.Ask(),sl,tp, "AAA")

正しい購入コマンドはどのようなものでしょうか?

 
EgorKim:

ありがとうございます。

また、コンパイル時に'数値'から'文字列'への暗黙の変換が悪目立ちしている理由を教えてください。

if(m_trade.Buy(InpLots,m_symbol.Name(),m_symbol.Ask(),sl,tp, "AAA")

正しい購入コマンドはどのようなものでしょうか?

参考:購入する

ヘルプ:条件付きif-else文

 

コードの書き方が違うぞ。

以下はそのコードです。

long     chislo       =5;
if(m_trade.Buy(InpLots,m_symbol.Name(),m_symbol.Ask(),sl,tp,"AAA"+chislo))

コンパイラが「AAA "+chislo"」と文句を言う。

 
EgorKim:

コードの書き方が違うぞ。

以下はそのコードです。

コンパイラが「AAA "+chislo"」と文句を言う。

参考:IntegerToString


追記:本日は以上です。もう寝てるんですけどね。

 
EgorKim:

コードの書き方が違うぞ。

以下はそのコードです。

コンパイラが「AAA "+chislo"」と文句を言う。

long     chislo       =5;
if(m_trade.Buy(InpLots,m_symbol.Name(),m_symbol.Ask(),sl,tp,"AAA"+(string) chislo))
 

ウラジーミル・カルプトフ、アレクセイ・ヴィクトロフ

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

 

コードについてアドバイスをお願いします。

現在、4つのベイが1ロットずつ、4つのセルが1ロットずつ開放されています。記号は同じです。

このポジションでは、買い1枚、売り1枚のみ決済されます。

void CloseBy()
  {
   ulong ticket_buy=ULONG_MAX;
   ulong ticket_sell=ULONG_MAX;
   for(int i=0;i<PositionsTotal();i++) // ATTENTION! Here, specially began a detour with "0"
      if(m_position.SelectByIndex(i)) // selects the position by index for further access to its properties
         {
         if(m_position.PositionType()==POSITION_TYPE_BUY && ticket_buy==ULONG_MAX)
            ticket_buy=m_position.Ticket();

         if(m_position.PositionType()==POSITION_TYPE_SELL && ticket_sell==ULONG_MAX)
            ticket_sell=m_position.Ticket();
        }
   if(ticket_buy!=ULONG_MAX && ticket_sell!=ULONG_MAX)
      m_trade.PositionCloseBy(ticket_buy,ticket_sell);
//---
   return;
  }

この位置では何も閉まらない

void CloseBy()
  {
   ulong ticket_buy=ULONG_MAX;
   ulong ticket_sell=ULONG_MAX;
   for(int i=0;i<PositionsTotal();i++) // ATTENTION! Here, specially began a detour with "0"
      if(m_position.SelectByIndex(i)) // selects the position by index for further access to its properties
        {
         if(m_position.PositionType()==POSITION_TYPE_BUY && ticket_buy==ULONG_MAX)
            ticket_buy=m_position.Ticket();

         if(m_position.PositionType()==POSITION_TYPE_SELL && ticket_sell==ULONG_MAX)
            ticket_sell=m_position.Ticket();
        }
   if(ticket_buy!=ULONG_MAX && ticket_sell!=ULONG_MAX)
      m_trade.PositionCloseBy(ticket_buy,ticket_sell);
//---
   //return;
  }

4つの買い、4つの売りをすべてカウンタークローズするには、どうしたらよいですか?

理由: