Тестер МТ4 при создании файла истории в заголовок заносит TickValue=0, TickSize=0 и параметры, относящиеся к комиссии заносит не пойму какие и откуда? Значения полей по марже тоже то заполняет, то нет - у разных брокеров по-разному.
Это баг или Может структура заголовка неправильная? В справке на сайте указана такая . Нашел информацию о том, что она устарела и поэтому использую такую
#property strict
#property show_inputs
input string symb="AUDCHF";
#define TOSTRING(A) #A+" = "+(string)(A)
struct TestHistoryHeader
{
intversion; // 405charcopyright[64]; // copyrightchardescription[128]; // server name// 196char symbol[12];
int period;
int model; // for what modeling type was the ticks sequence generatedint bars; // amount of bars in historyint fromdate;
int todate;
int totalTicks;
double modelquality; // modeling quality// 240//---- general parameterschar currency[12]; // currency baseint spread;
int digits;
int unknown1;
double point;
int lot_min; // minimum lot sizeint lot_max; // maximum lot sizeint lot_step;
int stops_level; // stops level valueint gtc_pendings; // instruction to close pending orders at the end of day// 292//---- profit calculation parametersint unknown2;
double contract_size; // contract sizedouble tick_value; // value of one tickdouble tick_size; // size of one tickint profit_mode; // profit calculation mode { PROFIT_CALC_FOREX, PROFIT_CALC_CFD, PROFIT_CALC_FUTURES }// 324 //---- swap calculationint swap_enable; // enable swapint swap_type; // type of swap { SWAP_BY_POINTS, SWAP_BY_DOLLARS, SWAP_BY_INTEREST }int unknown3;
double swap_long;
double swap_short; // swap overnight valueint swap_rollover3days; // three-days swap rollover// 356 //---- margin calculationint leverage; // leverageint free_margin_mode; // free margin calculation mode { MARGIN_DONT_USE, MARGIN_USE_ALL, MARGIN_USE_PROFIT, MARGIN_USE_LOSS }int margin_mode; // margin calculation mode { MARGIN_CALC_FOREX,MARGIN_CALC_CFD,MARGIN_CALC_FUTURES,MARGIN_CALC_CFDINDEX };int margin_stopout; // margin stopout levelint margin_stopout_mode;// stop out check mode { MARGIN_TYPE_PERCENT, MARGIN_TYPE_CURRENCY }double margin_initial; // margin requirementsdouble margin_maintenance; // margin maintenance requirementsdouble margin_hedged; // margin requirements for hedged positionsdouble margin_divider; // margin dividerchar margin_currency[12];// margin currency// 420 //---- commission calculationdouble comm_base; // basic commissionint comm_type; // basic commission type { COMM_TYPE_MONEY, COMM_TYPE_PIPS, COMM_TYPE_PERCENT }int comm_lots; // commission per lot or per deal { COMMISSION_PER_LOT, COMMISSION_PER_DEAL }// 436 //---- for internal useint from_bar; // fromdate bar numberint to_bar; // todate bar numberint start_period[6]; // number of bar at which the smaller period modeling startedint set_from; // begin date from tester settingsint set_to; // end date from tester settings// 476//----int end_of_test;
int freeze_level; // order's freeze level in pointsint generating_errors;
// 488 //----int reserved[60];
};
void OnStart()
{
//---
int dig=(int)MarketInfo(symb,MODE_DIGITS);
TestHistoryHeader header={0};
ResetLastError();
int handle=FileOpen(symb+"1_0.fxt",FILE_READ|FILE_BIN);
if(handle!=INVALID_HANDLE)
{
FileReadStruct(handle,header);
FileClose(handle);
}
else {Print("Ошибка открытия файла ",GetLastError()); return;}
Print(CharArrayToString(header.description));
Print(CharArrayToString(header.margin_currency));
Print(TOSTRING(header.set_from));
Print(TOSTRING((datetime)header.set_to));
Print(TOSTRING((datetime)header.end_of_test));
Print(TOSTRING(header.tick_value)," Должно быть ", TOSTRING(DoubleToStr(NormalizeDouble(SymbolInfoDouble(symb,SYMBOL_TRADE_TICK_VALUE),dig),dig)));
Print(TOSTRING(header.tick_size)," Должно быть ", TOSTRING(DoubleToStr(NormalizeDouble(SymbolInfoDouble(symb,SYMBOL_TRADE_TICK_SIZE),dig),dig)));
Print(TOSTRING(header.comm_base));
Print(TOSTRING(header.comm_type));
Print(TOSTRING(header.comm_lots));
Print(TOSTRING(AccountCurrency()));
}
Тестер МТ4 при создании файла истории в заголовок заносит TickValue=0, TickSize=0 и параметры, относящиеся к комиссии заносит не пойму какие и откуда? Значения полей по марже тоже то заполняет, то нет - у разных брокеров по-разному.
так выдаёт ошибку 4305
Нету на торговом сервере, к которому Вы подключаетесь, символа "AAPL". Нету от слова "совсем нет".
Напиши "Apple" вместо "AAPL" как у тебя в обзоре рынка
ааааааака )))
заработался(((
прошу меня извинить)
видимо потому что у меня открыт не один терминал
большое списибо всем кто откликнулся
Тестер МТ4 при создании файла истории в заголовок заносит TickValue=0, TickSize=0 и параметры, относящиеся к комиссии заносит не пойму какие и откуда? Значения полей по марже тоже то заполняет, то нет - у разных брокеров по-разному.
Это баг или Может структура заголовка неправильная? В справке на сайте указана такая . Нашел информацию о том, что она устарела и поэтому использую такую
Желтым пометил проблемные места.
Вот распечатка MetaQuotes Demo
Вот распечатка c Robo-Forex (суффикс ".e")
Подключаемся к любому брокеру.
Подкачиваем историю по символу.
Запускаем любой ЕА в тестере на М1 (любой промежуток тестирования и можно не дожидаться завершения).
После теста из папки тестера копируем созданный тестером файл истории symb+"1_0.fxt" в каталог MQL4/Files
Запускаем скрипт на любом графике.
Смотрим лог.
Периодически происходит воспроизведение нажатия кнопки "Home" на чарте в MT5, т.е. график смещается произвольно в самое начало - чем вызвано сие?
Периодически происходит воспроизведение нажатия кнопки "Home" на чарте в MT5, т.е. график смещается произвольно в самое начало - чем вызвано сие?
Выколупайте отвёрткой кнопку "Home" :)
Тестер МТ4 при создании файла истории в заголовок заносит TickValue=0, TickSize=0 и параметры, относящиеся к комиссии заносит не пойму какие и откуда? Значения полей по марже тоже то заполняет, то нет - у разных брокеров по-разному.
...
Полагаю, проблема из-за этого странного поля:
В оригинале его не было, откуда оно взялось?
Выколупайте отвёрткой кнопку "Home" :)
Нет, проблема не в этом. Так как происходит сие и когда MT5 на заднем плане и когда даже чарт иной.
Полагаю, проблема из-за этого странного поля:
В оригинале его не было, откуда оно взялось?
Это 4 байта для выравнивания адресов в структуре.
предыдущее gtc_pendings и последующее поле contract_size считываются корректно
Скиньте плиз ссылку на тему: ... sl: 0.00000 tp: 0.00000 failed [Off quotes]