MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1822

 
Tretyakov Rostyslav #:

それは、構造

であり、これは特定のシンボルによる参照である

...といった具合に、構造を読み取る例がないのです。最初の質問から判断すると、相手も理解できないでしょう。

 
Tretyakov Rostyslav #:
クロージング関数と"-x "とは何かを掲載します。

それ以外には何もない。そして、xは未決済注文の利益値をマイナスにしたものです。

 
Tretyakov Rostyslav #:
クロージング関数と"-x "とは何かを掲載します。

クローズ機能とは、どのような条件で注文をクローズすべきなのか?

xは条件か?

では、私は何を見せたのか。

あるいは、差し支えなければ、必要なことをもっと詳しく書いてください。

いずれにせよ、ありがとうございました

 
законопослушный гражданин 現在の価格について、最も要求の多い情報を迅速に入手することを目的としています。

しかし、使用例にはこう書かれている。

つまり、MqlTick 構造体を参照する関数自体が構造体の中に あるのです。

どうしてでしょう?

SymbolInfoTick関数は、ティックデータを特別なMqlTick 構造体に書き込み、そのフィールドから取得することができます。

struct MqlTick
  {
   datetime     time;          // Время последнего обновления цен
   double       bid;           // Текущая цена Bid
   double       ask;           // Текущая цена Ask
   double       last;          // Текущая цена последней сделки (Last)
   ulong        volume;        // Объем для текущей цены Last
   long         time_msc;      // Время последнего обновления цен в миллисекундах
   uint         flags;         // Флаги тиков
   double       volume_real;   // Объем для текущей цены Last c повышенной точностью
  };
Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура для получения текущих цен
Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура для получения текущих цен
  • www.mql5.com
Структура для получения текущих цен - Структуры данных - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexander Avksentyev #:
// профит в пунктах
 int getOrderProfit() {
  switch (OrderType()) {
  case OP_BUY:
    return (int)((Bid - OrderOpenPrice()) / Point);
  case OP_SELL:
    return (int)((OrderOpenPrice() - Ask) / Point);
  default: 
    return 0;
  }
}

呼び出し前に注文を選択(OrderSelect)することが必須である。

 
Alexander Avksentyev #:

クローズ機能とは、どのような条件で注文をクローズすべきかということです。

象さんには気がつきませんでした)))オープンオーダーの終値は何円だと思いますか?

OrderClose(min_ticket,OrderLots(),OrderClosePrice(),iSlippage,clrPink);

こんな風にやってみよう

   int min_ticket=FindTicketOrder();

   if(OrderSelect(min_ticket, SELECT_BY_TICKET,MODE_TRADES)) 
    { 
      if(OrderProfit()<=-x)
        {
         if(OrderType()==OP_BUY)
           {
            if(OrderClose(min_ticket,OrderLots(),Bid,iSlippage,clrPink))
               Print("Buy Order Close");
            else
               Print("Order вернул ошибку - ",GetLastError());
           }
         if(OrderType()==OP_SELL)
           {
            if(OrderClose(min_ticket,OrderLots(),Ask,iSlippage,clrPink))
               Print("Sell Order Close");
            else
               Print("Order вернул ошибку - ",GetLastError());
           }
        }
    } 
 
Mihail Matkovskij #:

呼び出し前に注文を選択(OrderSelect)することが必須である。

現在のキャラクターからの注文でない場合?

 
Tretyakov Rostyslav #:

そして、象さんには気がつきませんでした)))未決済注文の終値は何 円に相当すると思いますか?

この方法で試してみてください

入札記号

 
Tretyakov Rostyslav #:

そして、象さんには気がつきませんでした)))未決済注文の終値は何円に相当すると思いますか?

そのように試してみてください。

そんな風に思っています。

OrderClosePrice()

掲示板で、bidとaskの代わりに、指定すればうまくいくと読みました。信じてしまった私は、世間知らずの愚か者です。別のBid || Askを試したが、これもうまくいかなかった。
ありがとうございました。

 
Artyom Trishkin #:

現在のシンボルからの注文でない場合?

次に、SymbolInfoDoubleです。