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

 
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
 
Здравствуйте, приобрел у вас советника "черепаху" для МТ5 загрузил в программу, а он показывает только сигналы, а сам не торгует, может я что то неправильно сделал, хотя в настройках я ни чего не менял и галочка "разрешить автоматическую торговлю" включена. Почему не работает автоматическая торговля???
 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Торговая платформа MetaTrader 5 стала доступна клиентам AMP Futures для торговли фьючерсами

fxsaber, 2018.07.23 21:03

Из-за размера тика невозможно открыть позицию на некоторых символах.

На скрине показано, что спред и цены не кратны TickSize


В результате на стороне Терминала (OrderCheck) происходит облом (включая ручной режим). Подправьте поведение OrderCheck на такие случаи!

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

Терминал при работе с файлами использует WinAPI функции, которые в рамках своей архитектуры полностью считывают весь файл с диска.
Если нужна работа с частью файла - то используйте WinAPI по маппингу файла в память.

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

Вам шашечки или ехать?