Ошибки, баги, вопросы - страница 2235

 
fxsaber:

Как может last-цена быть не кратна TickSize?

может, я несколько лет назад задавал такой вопрос, писал тики в зацикленном скрипте while(true) , тики писал по изменению данных в "обзор рынка", часто были тики вида 1.35555000001, или 1.3555999999

я был удивлен, что приходят не нормализованные данные цены от сервера, ответа я тогда не получил, но читал боле поздние топики и видел ответы разработчиков, что часть тиков это тики для работы терминала, и по таким тикам советник не торгует

так и в Вашем случае, такая цена не кратная SYMBOL_TRADE_TICK_SIZE подразумевает, что Вы по такой цене не совершите торговую операцию.... хотя и получается что анализ цены  Last тоже может быть бессмысленным ))))

 
Igor Makanu:

может, я несколько лет назад задавал такой вопрос, писал тики в зацикленном скрипте while(true) , тики писал по изменению данных в "обзор рынка", часто были тики вида 1.35555000001, или 1.3555999999

Ваш случай - особенность преобразования double -> string. У меня несколько иная ситуация.

 
Лог эксперта - 15 Гб. Попытка просмотра его в Терминале вызывает зависание более, чем на минуту.
 
fxsaber:
Лог эксперта - 15 Гб. Попытка просмотра его в Терминале вызывает зависание более, чем на минуту.

А Вы хотите чтобы как было?

 
Alexey Kozitsyn:

А Вы хотите чтобы как было?

В случае большого лога выдывать предупреждение об этом сначала и спрашивать, продолжать или нет.

 
fxsaber:

В случае большого лога выдывать предупреждение об этом сначала и спрашивать, продолжать или нет.

Видите, как сразу конструктивнее стало:)

 
Alexey Viktorov:

Ваша ошибка в том, что после записи в файл данные на диск попадают только после FileClose ИЛИ после принудительного сбрасывания данных на диск FileFlush

Иначе как можно прочесть несуществующий файл???

Вы меня с кем-то путаете. И с FileFlush, и без него - ошибка одна и та же. В реальном эксперте, с которого все начиналось, изначально есть и FileFlush, и сам файл.

Вот флаг FILE_SHARE_WRITE в таком сочетании, похоже, работает, но возникает другой вопрос: какой смысл именно в такой записи? По логике, если включать разделение при записи, то нужно его добавлять именно к флагу записи:

FILE_READ|FILE_BIN|FILE_SHARE_READ|(writing?(FILE_WRITE|FILE_SHARE_WRITE):0)

Именно это я и пробовал, и оно тоже дает ошибку.

 
В общем, не понятно, почему я должен шарить файл для записи, когда требуется только разделение на чтение?
 
Господа-товарищи, может кто поможет разобраться с таким вопросом?
 

В ME не всплывает подсказка с MqlTradeCheckResult

#define TOSTRING(A)  #A + " = " + (string)(A) + "\n"
#define TOSTRING2(A) #A + " = " + EnumToString(A) + " (" + (string)(A) + ")\n"

string ToString( const MqlTradeRequest &Request )
{
  return(TOSTRING2(Request.action) + TOSTRING(Request.magic) + TOSTRING(Request.order) +
         TOSTRING(Request.symbol) + TOSTRING(Request.volume) + TOSTRING(Request.price) +
         TOSTRING(Request.stoplimit) + TOSTRING(Request.sl) +  TOSTRING(Request.tp) +
         TOSTRING(Request.deviation) + TOSTRING2(Request.type) + TOSTRING2(Request.type_filling) +
         TOSTRING2(Request.type_time) + TOSTRING(Request.expiration) + TOSTRING(Request.comment) +
         TOSTRING(Request.position) + TOSTRING(Request.position_by));
}

string ToString( const MqlTradeResult &Result )
{
  return(TOSTRING(Result.retcode) + TOSTRING(Result.deal) + TOSTRING(Result.order) +
         TOSTRING(Result.volume) + TOSTRING(Result.price) + TOSTRING(Result.bid) +
         TOSTRING(Result.ask) + TOSTRING(Result.comment) + TOSTRING(Result.request_id) +
         TOSTRING(Result.retcode_external));
}

string ToString( const MqlTrade