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

 
Vladimir Karputov:

これでよしとする。


もうひとつ重要なのは、価格をどのように更新するか(更新しないか)です。スプレッド - どうやって手に入れるの?

    double point, price, ask, bid;
    ulong digits;

    if(!SymbolInfoDouble(symbol, SYMBOL_ASK, ask)) return(true);
    if(!SymbolInfoDouble(symbol, SYMBOL_ASK, bid)) return(true);
    if(!SymbolInfoInteger(symbol, SYMBOL_DIGITS, digits)) return(true);
    if(!SymbolInfoDouble(symbol, SYMBOL_POINT, point)) return(true);
SymbolInfoInteger(symbol, SYMBOL_SPREAD);
 
Mikhail Sergeev:

では、今後の参考までに。

1.SymbolInfoDouble

この関数で最後のティックの 情報を取得する場合は、SymbolInfoTick() を使用する方がよいでしょう。 端末が取引口座に接続した時点から、このシンボルの相場がなかった可能性があります。この場合、要求された値は未定義となる。

2.スプレッドはAskとBidの差としてとらえるのがよいでしょう。

3.凍結のレベル:3つ(SYMBOL_TRADE_FREEZE_LEVEL、SYMBOL_TRADE_STOPS_LEVEL、計算スプレッド)のうち最大の値を探し、3倍 すれば満足です。

ポイント3は、KodoBaseで作業しているときに実際に推論したものです(KodoBaseとMarketのバリデータは同じものです)。
Документация по MQL5: Получение рыночной информации / SymbolInfoDouble
Документация по MQL5: Получение рыночной информации / SymbolInfoDouble
  • www.mql5.com
2. Возвращает true или false в зависимости от успешности выполнения функции.  В случае успеха значение свойства помещается в приемную переменную, передаваемую по ссылке последним параметром. Если функция используется для получения информации о последнем тике, то лучше использовать SymbolInfoTick(). Вполне возможно, что по данному символу с...
 
Vladimir Karputov:

では、今後の参考までに。

1.SymbolInfoDouble

この関数で最後のティックの 情報を取得する場合は、SymbolInfoTick() を使用する方がよいでしょう。 端末が取引口座に接続した時点から、このシンボルの相場がなかった可能性があります。この場合、要求された値は未定義となる。

2.スプレッドはAskとBidの差としてとらえるのがよいでしょう。

3.凍結のレベル:3つ(SYMBOL_TRADE_FREEZE_LEVEL、SYMBOL_TRADE_STOPS_LEVEL、計算スプレッド)のうち最大の値を探し、3倍 すれば満足です。

ポイント3は、KodoBaseで作業しているときに実際に推論したものです(KodoBaseとMarketのバリデータは同じものです)。

ありがとうございました。今から少し変更して試してみます。

 
Mikhail Sergeev:

ありがとうございました。今から変更をして試してみます。

そうですね、結果は面白いことになりそうです。

 
Vladimir Karputov:

そうですね、結果は面白いことになりそうです。

問題解決注文を削除するためには、次のように入力する必要があります:request.symbol

取引の種類によって、どのようなデータをリクエストに渡すべきか、構造化された情報は見つかっていません。そして、例としてhttps://www.mql5.com/ru/docs/constants/tradingconstants/enum_trade_request_actions を使いました。

ないんです。


フリーズしたまま多くのバリエーションを確認しました。私の場合、シングルサイズで十分でした。

Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Торговля осуществляется посредством отправки с помощью функции OrderSend() приказов на открытие позиций, а также приказов на установку, модификацию и удаление отложенных ордеров. Каждый торговый приказ содержит указание на тип запрашиваемой торговой операции. Торговые операции описаны в перечислении ENUM_TRADE_REQUEST_ACTIONS...
 
Mikhail Sergeev:

問題解決注文を削除するためには、request.symbolに 記入する必要があります。

取引操作の種類によって、どのようなデータをリクエストに渡すべきかについて、構造化された情報は見つかりませんでした。そして、例としてhttps://www.mql5.com/ru/docs/constants/tradingconstants/enum_trade_request_actions を使いました。

ないんです。


フリーズしたまま多くのバリエーションを確認しました。私の場合、シングルサイズで十分でした。

なぜ、そんな複雑なことをする必要があるのですか?トレードクラスCTradeを使用します。

 
Vladimir Karputov:

なぜ、そこまでするのか?CTradeトレーディングクラスを使用します。

残念ながら、これはMT4の頃からありました。適応させやすくなったのです。


CTradeは 知りませんが、シンボルを指定しなければならないところはどこでも、メソッドに渡されるパラメータに存在するようです。また、OrderDelete(const ulong ticket)メソッドには存在しないので、動作しない。あらかじめ、どこかにrequest.symbolを埋めておく必要がある。

 
Mikhail Sergeev:

残念ながら、これはMT4の頃からあることです。適応しやすくなったのです。


CTradeについて - よくわからなかったのですが、シンボルを指定する必要があるところはどこでも、メソッドに渡されるパラメータにあるようです。また、OrderDelete(const ulong ticket)メソッドには存在しないので、動作しない。どこかでrequest.symbolを埋めなければならない。

何がダメなのか?REMOTE ORDERSの 設定・変更・削除、POISONSのオープン・変更・クローズを行う、トレードクラスです。

絶対にすべてがうまくいく。そして、どんなトレードコマンドでも全て1行で書けるようになっています。


CTトレード

Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade
Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade
  • www.mql5.com
Стандартная библиотека / Торговые классы / CTrade - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vladimir Karputov:

では、何がダメなのでしょうか?取引クラスです。REMOTE ORDERSの 設定、変更、削除、POISONSのオープン、変更、クローズを行います。

絶対にすべてがうまくいく。そして、どんなトレードコマンドでも全て1行で書けるようになっています。


CTトレード

//+------------------------------------------------------------------+
//| Delete specified pending order                                   |
//+------------------------------------------------------------------+
bool CTrade::OrderDelete(const ulong ticket)
  {
//--- check stopped
   if(IsStopped(__FUNCTION__))
      return(false);
//--- clean
   ClearStructures();
//--- setting request
   m_request.action    =TRADE_ACTION_REMOVE;
   m_request.magic     =m_magic;
   m_request.order     =ticket;
//--- action and return the result
   return(OrderSend(m_request,m_result));
  }

だから、どの時点でm_request.symbolが 満たされるのかがわからないんです

とにかく、問題は解決しました。本当にありがとうございました。

 
Mikhail Sergeev:

だから、どの時点でm_request.symbolが 記入されるのかがわからないだけです

とにかく、問題は解決しました。今回も大変お世話になりました

CTradeを通して デバッガを取れば、シンボルがどこに行ったかわかるはずです :)

理由: