Скачать MetaTrader 5

Библиотеки: "Лекарство" от ошибки №146

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Узнай, как социальный трейдинг увеличит твой доход
MetaQuotes Software Corp.
Модератор
181080
MetaQuotes Software Corp. 2006.06.02 10:59 

"Лекарство" от ошибки №146:

Библиотека содержит функции, которые предназначены для разделения доступа к торговому потоку.

Author: Andrey Khatimlianskii

MQL4 Comments
16319
MQL4 Comments 2007.04.01 14:25  
Я вот думаю в этом коде есть ошибка

Или в этом коде
if ( IsTradeAllowed() )
{
Print( "Торговый поток освободился!" );
return(0);
}
поставить
return(1)


Или в этом коде
Print( "Торговый поток свободен!" );
return(1);
поставить
return(0);
А то функция возвращает 1 или 0 при свободном потоке, событие то одно кода два, думаю непорядок :)
Andrey Khatimlianskii
56159
Andrey Khatimlianskii 2007.04.01 19:48  
skydion, а вы в код смотрели? ;)

/////////////////////////////////////////////////////////////////////////////////
/**/ int _IsTradeAllowed( int MaxWaiting_sec = 30 )
/////////////////////////////////////////////////////////////////////////////////
// функция определяет состояние торгового потока. Коды возвратов:
// 1 - торговый поток свободен, можно торговать
// 0 - торговый поток был занят, но освободился. Торговать можно только после обновления рыночной информации.
// -1 - торговый поток занят, ожидание прервано пользователем (эксперт удалён с графика, закрыт терминал, изменился
// период и/или символ графика, ... )
// -2 - торговый поток занят, истекло максимальное время ожидания (MaxWaiting_sec). Возможно, эксперту запрещена
// торговля (галочка "Разрешить эксперту торговать" в настройках эксперта).
//
// MaxWaiting_sec - время (в секундах), в течении которого функция будет ждать освобождения торгового потока (если он
// занят). По умолчанию = 30.
/////////////////////////////////////////////////////////////////////////////////

Обратите внимание на эти 2 строки:
//  1 - торговый поток свободен, можно торговать
// 0 - торговый поток был занят, но освободился. Торговать можно только после обновления рыночной информации.
MQL4 Comments
16319
MQL4 Comments 2007.04.04 19:09  
Конечно смотрел :) Ну, а почему не засунуть рефреш в код библиотеки, вызываем рефреш после
Print( "Торговый поток освободился!" );
и возвращаем 1?

Ну, ладно, впринципе это не так принципиально :)
Просто подключил библиотеку по хелпу, а советник не торгует вот и посмотрел в код.
Andrey Khatimlianskii
56159
Andrey Khatimlianskii 2007.04.04 23:27  

skydion писал(а):
Конечно смотрел :) Ну, а почему не засунуть рефреш в код библиотеки, вызываем рефреш после и возвращаем 1?

Потому что кроме рефреша надо ещё пересчитать уровни СЛ и ТП.
В любом случае, пользователь должен решать сам, что ему делать.
MQL4 Comments
16319
MQL4 Comments 2007.10.08 17:33  
Постоянно выдает ошибку при попытке закрыть ордер:
2007.10.08 19:33:20 AnTI EURUSD,M1: TradeIsBusy() - GlobalVariableSetOnCondition ( "TradeIsBusy", 0.0, 1.0 ) - Error #4058
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий