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

 
Money_Man:

так выдаёт ошибку 4305


Нету на торговом сервере, к которому Вы подключаетесь, символа "AAPL". Нету от слова "совсем нет".

 
Комбинатор:
Напиши "Apple" вместо "AAPL" как у тебя в обзоре рынка

ааааааака   )))
заработался(((  
прошу меня извинить) 
видимо потому что у меня открыт не один терминал

большое списибо всем кто откликнулся

 

Тестер МТ4 при создании файла истории в заголовок заносит TickValue=0, TickSize=0 и параметры, относящиеся к комиссии заносит не пойму какие и откуда? Значения полей по марже тоже то заполняет, то нет - у разных брокеров по-разному.

Это баг или Может структура заголовка неправильная? В справке на сайте  указана такая . Нашел информацию о том, что она устарела и поэтому использую такую 

#property strict
#property show_inputs

input string symb="AUDCHF";

#define TOSTRING(A) #A+" = "+(string)(A) struct TestHistoryHeader   {    int               version;            // 405    char              copyright[64];      // copyright    char              description[128];   // server name                                          // 196    char              symbol[12];    int               period;    int               model;              // for what modeling type was the ticks sequence generated    int               bars;               // amount of bars in history    int               fromdate;    int               todate;    int               totalTicks;    double            modelquality;       // modeling quality                                          // 240    //---- general parameters    char              currency[12];       // currency base    int               spread;    int               digits;    int               unknown1;    double            point;    int               lot_min;            // minimum lot size    int               lot_max;            // maximum lot size    int               lot_step;    int               stops_level;        // stops level value    int               gtc_pendings;       // instruction to close pending orders at the end of day                                          // 292    //---- profit calculation parameters    int               unknown2;    double            contract_size;      // contract size    double            tick_value;         // value of one tick    double            tick_size;          // size of one tick    int               profit_mode;        // profit calculation mode        { PROFIT_CALC_FOREX, PROFIT_CALC_CFD, PROFIT_CALC_FUTURES }                                          // 324    //---- swap calculation    int               swap_enable;        // enable swap    int               swap_type;          // type of swap                   { SWAP_BY_POINTS, SWAP_BY_DOLLARS, SWAP_BY_INTEREST }    int               unknown3;    double            swap_long;    double            swap_short;         // swap overnight value    int               swap_rollover3days; // three-days swap rollover                                          // 356      //---- margin calculation    int               leverage;           // leverage    int               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 level    int               margin_stopout_mode;// stop out check mode            { MARGIN_TYPE_PERCENT, MARGIN_TYPE_CURRENCY }    double            margin_initial;     // margin requirements    double            margin_maintenance; // margin maintenance requirements    double            margin_hedged;      // margin requirements for hedged positions    double            margin_divider;     // margin divider    char              margin_currency[12];// margin currency                                          // 420      //---- commission calculation    double            comm_base;          // basic commission    int               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 use    int               from_bar;           // fromdate bar number    int               to_bar;             // todate bar number    int               start_period[6];    // number of bar at which the smaller period modeling started    int               set_from;           // begin date from tester settings    int               set_to;             // end date from tester settings                                          // 476    //----    int               end_of_test;    int               freeze_level;       // order's freeze level in points    int               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())); }

Желтым пометил проблемные места.

Вот распечатка MetaQuotes Demo

0       17:26:59.889    ReadFXTHeader AUDCHF,M1: Copyright 2001-2016, MetaQuotes Software Corp.
0       17:26:59.889    ReadFXTHeader AUDCHF,M1: AUD
0       17:26:59.889    ReadFXTHeader AUDCHF,M1: header.set_from = 0
0       17:26:59.889    ReadFXTHeader AUDCHF,M1: (datetime)header.set_to = 2017.10.09 00:00:00
0       17:26:59.889    ReadFXTHeader AUDCHF,M1: (datetime)header.end_of_test = 2017.10.11 00:00:00
0       17:26:59.890    ReadFXTHeader AUDCHF,M1: header.tick_value = 0 Должно быть DoubleToStr(NormalizeDouble(SymbolInfoDouble(AUDCHF,SYMBOL_TRADE_TICK_VALUE),5),5) = 0.86761
0       17:26:59.890    ReadFXTHeader AUDCHF,M1: header.tick_size = 0 Должно быть DoubleToStr(NormalizeDouble(SymbolInfoDouble(AUDCHF,SYMBOL_TRADE_TICK_SIZE),5),5) = 0.00001
0       17:26:59.890    ReadFXTHeader AUDCHF,M1: header.comm_base = 0
0       17:26:59.890    ReadFXTHeader AUDCHF,M1: header.comm_type = 0
0       17:26:59.890    ReadFXTHeader AUDCHF,M1: header.comm_lots = 2

0 17:26:59.890 ReadFXTHeader AUDCHF,M1: AccountCurrency() = EUR

Вот распечатка c Robo-Forex (суффикс ".e")

0       17:34:05.417    ReadFXTHeader AUDCHF.e,M1: RoboForex-Demo
0       17:34:05.417    ReadFXTHeader AUDCHF.e,M1: AUD
0       17:34:05.417    ReadFXTHeader AUDCHF.e,M1: header.set_from = 0
0       17:34:05.417    ReadFXTHeader AUDCHF.e,M1: (datetime)header.set_to = 2017.10.09 00:00:00
0       17:34:05.417    ReadFXTHeader AUDCHF.e,M1: (datetime)header.end_of_test = 2017.10.11 00:00:00
0       17:34:05.417    ReadFXTHeader AUDCHF.e,M1: header.tick_value = 0 Должно быть DoubleToStr(NormalizeDouble(SymbolInfoDouble(AUDCHF.e,SYMBOL_TRADE_TICK_VALUE),5),5) = 1.02795
0       17:34:05.417    ReadFXTHeader AUDCHF.e,M1: header.tick_size = 0 Должно быть DoubleToStr(NormalizeDouble(SymbolInfoDouble(AUDCHF.e,SYMBOL_TRADE_TICK_SIZE),5),5) = 0.00001
0       17:34:05.417    ReadFXTHeader AUDCHF.e,M1: header.comm_base = -3.598220646991178e+91
0       17:34:05.417    ReadFXTHeader AUDCHF.e,M1: header.comm_type = 1064329805
0       17:34:05.417    ReadFXTHeader AUDCHF.e,M1: header.comm_lots = 2

0 17:34:05.417 ReadFXTHeader AUDCHF.e,M1: AccountCurrency() = USD

Подключаемся к любому брокеру.

Подкачиваем историю по символу.

Запускаем любой ЕА в тестере на М1 (любой промежуток тестирования и можно не дожидаться завершения).

После теста из папки тестера копируем созданный тестером файл истории symb+"1_0.fxt" в каталог MQL4/Files

Запускаем скрипт на любом графике.

Смотрим лог.

 

Периодически происходит воспроизведение нажатия кнопки "Home" на чарте в MT5, т.е. график смещается произвольно в самое начало - чем вызвано сие?


 
Aleksey Vyazmikin:

Периодически происходит воспроизведение нажатия кнопки "Home" на чарте в MT5, т.е. график смещается произвольно в самое начало - чем вызвано сие?


Выколупайте отвёрткой кнопку "Home" :)

 
Kirill Belousov:

Тестер МТ4 при создании файла истории в заголовок заносит TickValue=0, TickSize=0 и параметры, относящиеся к комиссии заносит не пойму какие и откуда? Значения полей по марже тоже то заполняет, то нет - у разных брокеров по-разному.

...

Полагаю, проблема из-за этого странного поля:

 //---- profit calculation parameters
   int               unknown2;

В оригинале его не было, откуда оно взялось?  

 
Исполнение стопов во время гепа уже фиксят?
 
Vitaly Muzichenko:

Выколупайте отвёрткой кнопку "Home" :)


Нет, проблема не в этом. Так как происходит сие и когда MT5 на заднем плане и когда даже чарт иной.

 

Полагаю, проблема из-за этого странного поля:

 //---- profit calculation parameters
   int               unknown2;

В оригинале его не было, откуда оно взялось?  


Это 4 байта для выравнивания адресов в структуре.

предыдущее gtc_pendings  и последующее поле contract_size считываются корректно

 

Скиньте плиз ссылку на тему: ... sl: 0.00000 tp: 0.00000 failed [Off quotes]