Вопросы от начинающих MQL4 MT4 MetaTrader 4 - страница 231

 
Konstantin Nikitin:

Ну если точнее, то похоже не можете. И по поводу SLEEP. Вы что хотите заморозить работу эксперта полностью на какое-то время? Или все-же только определенную функцию, после ее отработки. Но в любом случае даже для перерыва работы эксперта лучше пользоваться флагом на длительные задержки, и при его проверке, если нет разрешения, то просто выходить в OnTick/OnTimer. На короткие, да можно и SLEEP использовать.
Кстати в индикаторах SLEEP не работает.

Функцию Sleep() нельзя вызывать из пользовательских индикаторов, так как индикаторы выполняются в интерфейсном потоке и не должны его тормозить.

Так что разбирайтесь с использованием флагов, Оно вам пригодиться в будущем.

нет, я хотела перед тем как закрыться советник задержался бы на 10 сек, но почему то когда слип идет до функции CloseAllOrder, то функция толком не работает, то после него слип не работает и т.д. Щас думаю включить как то эту задержку в саму функцию CloseAllOrder.  MQL4 программирование изучаю всего месяц, плюс раньше никогда не программировала.
 
Nargiz Ravanova:
нет, я хотела перед тем как закрыться советник задержался бы на 10 сек, но почему то когда слип идет до функции CloseAllOrder, то функция толком не работает, то после него слип не работает и т.д. Щас думаю включить как то эту задержку в саму функцию CloseAllOrder.  MQL4 программирование изучаю всего месяц, плюс раньше никогда не программировала.

Проверяйте Слип принтуя миллисекунды до и после Слипа. Если что-то не работает  может используете старые данные? RefreshRates() используете? или кол-во ордеров не учитываете что уменьшается

 
Aleksei Stepanenko:

Принимая всю ответственность на себя с учётом того, что:

ushort

Беззнаковым типом short является тип ushort, который также имеет размер 2 байта. Минимальное значение равно 0, максимальное значение 65 535.

int

Целый тип int имеет размер 4 байта (32 бита). Минимальное значение -2 147 483 648, максимальное значение 2 147 483 647.

Спасибо Алексей. всё получилось по нулям по компиляции. Уверен для Вас это было не сложно....
 
Здравствуйте, подскажите как мне получить мой metaquotes id в мобильном приложении mt4, если висит надпись metaquotes id не зарегистрирован и при попытке нажать на эту вкладку появляется сообщение: не удалось зарегистрировать службу получения сообщений. Проверьте подключение к интернет и попробуйте ещё раз.
 
SGarnov:
всё получилось по нулям по компиляции

Рад, что помогло

 

*** это ***? или вполне реальные брокеры которые помогут?

 
Владимир Герр:

*** это ***? или вполне реальные брокеры которые помогут?

Обсуждение брокеров запрещено.

 
Товарищи, нужна ваша помощь по webrequest.
Должна отправляться data довольно приличного объема (30к+ символов) на сервер. На серваке обнаружили что data прерывается посреди очередного куска данных. Есть ли какие-то ограничения по webrequest? Или пути обхода и решения этой проблемы? Делаю специально под mql4.
 
O-Yama:
Товарищи, нужна ваша помощь по webrequest.
Должна отправляться data довольно приличного объема (30к+ символов) на сервер. На серваке обнаружили что data прерывается посреди очередного куска данных. Есть ли какие-то ограничения по webrequest? Или пути обхода и решения этой проблемы? Делаю специально под mql4.

Метод get или post?

Делайте post-запросом, на сервере попробуйте снять ограничение на длину 

php.ini
post_max_size=200M
upload_max_filesize=200M

или

.htaccess
php_value post_max_size 200M
php_value upload_max_filesize 200M
 
Vitaly Muzichenko:

Метод get или post?

Делайте post-запросом, на сервере попробуйте снять ограничение на длину 

Post, тогда посмотрим, что на серваке.
Массив сообщения запроса собираю с помощью своей функции небольшими кусками, так как StringToCharArray как-то странно себя ведёт и постоянно обрезает массив. Может, я и в ней что-то намудрил...

void OneMoreString(string str)
  {
   char cashe[];
   int sz=ArraySize(buf); //buf находится вне функции, и используется постоянно в webrequest
   StringToCharArray(str,cashe,0,StringLen(str)); //конвертируем строку на входе функции в char-массив cashe
   ArrayResize(buf,sz+ArraySize(cashe));
   ArrayCopy(buf,cashe,sz); //копируем cashe в buf
  }

P.s. : не знаю как сюда правильно вставлять куски кода
Причина обращения: