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

 
barabashkakvn:
Откуда в Youtube HTTPS? Вот обычный код ролика - http://youtu.be/KG0PIVuJ2kU
Всё бывает! Перейдите по ссылке.
 
Fleder:
Всё бывает! Перейдите по ссылке.
В таком случае, думаю, нужно просто правильно вставлять код с YouTube: 
Ответы новичкам в картинках
Ответы новичкам в картинках
  • www.mql5.com
Как наложить (прикрепить) индикатор на график.
 
сегодня один вопрос и он у многих какого брокера выбрать тобы подписмка работала ? например джон паул 77 ?
 
Roma7777:
сегодня один вопрос и он у многих какого брокера выбрать тобы подписмка работала ? например джон паул 77 ?
Если вы хотите создать счёт под конкретного поставщика сигналов, то лучше у того же брокера и на том же сервере что и поставщик.
 
MigVRN:

Тут есть несколько вариантов:

1) Параметры индикаторов меняются во времени по каким-то критериям (условиям). Поэтому нет необходимости пересоздавать хендлы на каждом тике. Проверять условие и если оно выполнено - пересоздавать.

Допустим условием является наступление события "новый бар" на минутном таймфрейме. Примеров определений события "новый бар" много - поищите на сайте. Мне больше всего нравиться вот этот вариант.

2) Если всё же надо на каждом тике - дожидаться окончания проверки CopyBuffer() в цикле (используя sleep()). Но, скорее всего, тики будут пропускаться. Как вариант - считать индюки не на всю историю, а на последнюю пару сотен баров (лезть в код стандартных индюков и править код) - будет пропускать меньше тиков. 

В общем добавил проверку и обнаружил следующее.

Считывание производил в начале каждого нового 15М бара.

На живом рынке все работает на ура без ошибок. В тестере в самом начале и далее сразу после изменения входных параметров индикаторов появляется однократно! такая ошибка  "Ошибка при копировании из индикатора iBands! (№4806)". То есть хэндл получаю без проблем но индикатор ещё не создался и копирование по этому хэндлу не проходит. Почему тестер себя так ведет не понятно.

 
Renat:

Нужен Internet Explorer как минимум 8 версии, чтобы интерфейс маркета заработал. На IE6 уже никуда не уедешь.

О необходимости IE8 пишется при старте терминала в логах.

Вы исходите из того, что пользователь при запуске приложения проверяет логи. К сожалению, данный вид пользователя относится к вымирающим и в повседневной жизни практически уже не встречается. 

Возможно ли сделать так, чтобы инсталлер MT4/5 проверял версию интернет эксплорера, и если она меньше 8й - предлагал её обновить? 

 
Alvin1976:

На живом рынке все работает на ура без ошибок. ... То есть хэндл получаю без проблем но индикатор ещё не создался и копирование по этому хэндлу не проходит. Почему тестер себя так ведет не понятно.

На живом рынке тоже встречается, если в индикаторах используются "тяжелые" расчеты. Разница между тестером и живым рынком, в данном случае,  проявляется во времени, прошедшим между созданием индикатора и обращением к его буферу.

Это легко проверить. Добавьте глобальную переменную

uint start=0;
После получения хендла индикатора добавьте
start=GetTickCount();

А после получения значений из буфера индикатора добавьте

uint time=GetTickCount()-start; 

PrintFormat("Время между созданием  индикатора и первым обращением к его буферу %d ms", time);
И посмотрите, при каких значениях в “ms” возникает данная ошибка :)
 

Доброго времени суток. Озаботился проверкой разрешенности торговли. Получил довольно-таки странные результаты. В чем ошибка не понял. Исполнение происходило на демо-счете Alpari.

Скрипт:

void OnStart()
{
   MqlDateTime str_dt;
   TimeTradeServer(str_dt);

   for (int i=0; i<10; i++){
      datetime session_start_time, session_expiration_time;
      if(!SymbolInfoSessionTrade("EURUSD", (ENUM_DAY_OF_WEEK)str_dt.day_of_week, i, session_start_time, session_expiration_time)) break;
      Print(" session_start_time = ",TimeToString(session_start_time,TIME_DATE|TIME_MINUTES));
      Print(" session_expiration_time = ",TimeToString(session_expiration_time,TIME_DATE|TIME_MINUTES));
   }
   datetime symbol_start_time=(datetime)SymbolInfoInteger("EURUSD", SYMBOL_START_TIME);
   Print("           symbol_start_time = ",TimeToString(symbol_start_time,TIME_DATE|TIME_MINUTES));  
   datetime symbol_exiration_time=(datetime)SymbolInfoInteger("EURUSD", SYMBOL_EXPIRATION_TIME);
   Print("           symbol_exiration_time = ",TimeToString(symbol_exiration_time,TIME_DATE|TIME_MINUTES));  
}

Результаты исполнения:

          symbol_exiration_time = 1970.01.01 00:00
          symbol_start_time = 1970.01.01 00:00
session_expiration_time = 1970.01.02 00:00
session_start_time = 1970.01.01 00:00
session_expiration_time = 1970.01.01 00:00
session_start_time = 1970.01.01 00:00

Что не так?
 
Не могу изменить комментарий, жму редактирование, и при сохранении ошибка 404, жму удалить, таже ошибка 404, комментарий оставил не к тому сигналу, как быть? что не так делаю? :-) откуда растут руки знаю :-)
 
MigVRN:

На живом рынке тоже встречается, если в индикаторах используются "тяжелые" расчеты. Разница между тестером и живым рынком, в данном случае,  проявляется во времени, прошедшим между созданием индикатора и обращением к его буферу.

Это легко проверить. Добавьте глобальную переменную

После получения хендла индикатора добавьте

А после получения значений из буфера индикатора добавьте

И посмотрите, при каких значениях в “ms” возникает данная ошибка :)

Ммммммм а прикольно ! :))

Вот что получается в тестере :

KF    0    18:16:15.702    Core 1      Param1=160
QH    0    18:16:15.702    Core 1      Param2=11
KR    0    18:16:15.702    Core 1      StLot=0.01
LI    0    18:16:15.702    Core 1    2004.09.01 00:00:00   Ошибка при копировании из индикатора iBands! (покупка) (№4806)
QL    0    18:16:15.702    Core 1    2004.09.01 01:00:00   Время между созданием  индикатора и первым обращением к его буферу 0 ms
CO    0    18:16:15.702    Core 1    2004.09.01 01:00:00    B_up_s=1.218321775887096   M_av_s=1.2176
GO    0    18:16:15.702    Core 1    2004.09.01 01:00:00    B_low_b=1.195841860476532   M_av_b=1.2176
JG    0    18:16:15.702    Core 1    2004.09.01 02:00:00   Время между созданием  индикатора и первым обращением к его буферу 0 ms
EJ    0    18:16:15.702    Core 1    2004.09.01 02:00:00    B_up_s=1.218876391942192   M_av_s=1.2177

CQ    0    18:16:15.702    Core 1    2004.09.01 02:00:00    B_low_b=1.195850880785081   M_av_b=1.2177

То есть на первом баре не успевает. И далее в процессе работы также при изменении входных параметров появляется эта ошибка на одном баре а на следующем уже все в порядке.

А вот то что получается на рынке:

Мне эта ошибка в тестере не очень мешает но желательно чтобы её не было. Если ввести sleep то это наверное замедлит скорость оптимизации. Возможно имеется более изящное решение для таких случаев. В MT4 такой проблемы не возникает но он и работает по другому это понятно.

Причина обращения: