エラー、バグ、質問 - ページ 1796

 
OrderSend(Async)が同じチェックをするならば、OrderCheckを呼び出す 意味は?
 
Vladimir Pastushak:

クリーンなワインドアップ、クリーンなカスパー、私はターミナルを入れ、カスパーは狂ったようにそれを切り取った。

例外に追加する方法がない......。

再現できない。詳細については、ServiceDeskに お問い合わせください。Windows版、ターミナル版、アンチウイルス版。
 
Aleksey Pak:
再現できない。ServiceDeskにリクエストを 書き、詳細を記述することができます。Windows版、ターミナル版、アンチウイルス版。

DrWebでは何も見つかりません。

 
コンパイルエラー
#define MACRO  \
  if (true)    \
  {            \
    Print(""); \
//    Print(""); \
  }

void OnStart()
{
  MACRO
}
 
Vladislav Andruschenko:

DrWebでは何も見つかりません。

いつも何も見つからない )))
 
Vladimir Pastushak:
いつも何も見つからない )))

いや、ウィルスはよく見つかるんだけど、mt.NETは何も見つからないんだよね。

 

話題の続き です。保留中の注文のリクエストを行う際、Request.type_filling フィールドに値が入らなくなったのはどういう理由ですか?

さて、どう埋めてもOrderGetInteger(ORDER_TYPE_FILLING) == ORDER_FILLING_RETURN となりました。

スクリプト

void OnStart()
{
  MqlTradeRequest Request = {0};
  
  Request.action = TRADE_ACTION_PENDING;

  Request.symbol = _Symbol;
  Request.volume = 1;
  Request.price = SymbolInfoDouble(_Symbol, SYMBOL_BID) - 100 * _Point;

  Request.deviation = 10;
  Request.type = ORDER_TYPE_SELL_STOP;
  
  Request.type_filling = ORDER_FILLING_FOK;
  
  MqlTradeResult Result = {0};
  
  if (OrderSend(Request, Result))
  {
    Sleep(100);
    
    if (OrderSelect(Result.order))    
      Print(EnumToString((ENUM_ORDER_TYPE_FILLING)::OrderGetInteger(ORDER_TYPE_FILLING)));
  }        
}

結果

ORDER_FILLING_RETURN

type_fillingは、同じORDER_TYPE_SELL_STOPに設定されている必要があります。ORDER_FILLING_FOKはスクリプトに書かれています。これは、ストップ注文が受け入れられたときに、ORDER_FILLING_FOKタイプ(all or nothing)のマーケット要求を生成する必要があることを意味します。そうならない理由は何でしょうか。

Pending Order

保留中の注文を出すための取引注文。11個のフィールドの指定が必要 です。

  • アクション
  • 記号
  • ボリューム
  • 価格
  • ストップリミット
  • スラム
  • ティーピー
  • タイプ
  • タイプフィリング
  • タイプタイム
  • 満了
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
#define MACRO  \
  if (true)    \
  {            \
    Print(""); \
/*    Print(""); */ \
  }
これは正しいが、そうでなければブラケット } 自体が
 
A100:
#define MACRO  \
  if (true)    \
  {            \
    Print(""); \
/*    Print(""); */ \
  }
そうです、そうしないとブラケット}が勝手に動いてしまうのです
なぜダブルスラッシュはバックスラッシュの上に作用するのですか?また、マクロを起動すると、なぜダブルスラッシュのコメントが付くのですか?
 
MetaQuotes-デモ
OrderSend(Symb,OP_BUYLIMIT,1,Ask-100*Point,100,0,0,My Order)
Request.action = TRADE_ACTION_PENDING (5)
Request.magic = 0
Request.order = 0
Request.symbol = CHFRUB_TOM
Request.volume = 1.0
Request.price = 57.9
Request.stoplimit = 0.0
Request.sl = 0.0
Request.tp = 0.0
Request.deviation = 100
Request.type = ORDER_TYPE_BUY_LIMIT (2)
Request.type_filling = ORDER_FILLING_RETURN (2)
Request.type_time = ORDER_TIME_DAY (1)
Request.expiration = 1970.01.01 00:00:00
Request.comment = My Order
Request.position = 0
Request.position_by = 0
Result.retcode = 10018
Result.deal = 0
Result.order = 0
Result.volume = 0.0
Result.price = 0.0
Result.bid = 0.0
Result.ask = 0.0
Result.comment = Market closed 53.327 + 0.000 ms
Result.request_id = 334
Result.retcode_external = 0
CHFRUB_TOM - クローズドマーケットと思われる。訂正してください。