подскажите если мы структуру обьявим за пределами ОнТик
Она будет иметь статические данные ?
И если мы объявим структуру внутри ОнТик, что будет происходить с данными и самое главное как будет потребляться ресурсы ???
Какой из вариантов наиболее правильный ?
//+------------------------------------------------------------------+voidOnTick()
{
struct test
{
double rez;
};
test tets;
}
//+------------------------------------------------------------------+
или
//+------------------------------------------------------------------+struct test
{
double rez;
};
test tets;
//+------------------------------------------------------------------+voidOnTick()
{
tets.rez=1;
}
//+------------------------------------------------------------------+
или
//+------------------------------------------------------------------+struct test
{
double rez;
};
//+------------------------------------------------------------------+voidOnTick()
{
test tets; //будет ли в данном случае при приходе нового тика обнуляться структура ?
}
//+------------------------------------------------------------------+
как сделать, чтобы советник не пытался исполнить ordersend при отжатой кнопке?
Как минимум, два варианта:
1. Проверять разрешение для торговых операций перед OrderSend при помощи IsTradeAllowed()
2. После выполнения OrderSend и получения однократной ошибки 4109 перестать вовсе (или на время) совершать торговые операции.
Также раньше состояние кнопки "Автоторговля" можно было контролировать при помощи функции IsExpertEnabled(). В новых билдах не проверял, как работает эта функция.
ну ok. придётся опять делать очередные лишние движения.
а объясните мне, зачем это сделали, чтобы советник постоянно работал?
мне казалось идёт борьба за ресурсы, раньше я мог просто отжать кнопку и оно не работало, а теперь получается, что советник нагружает проц в любом случае.
Есть предложение для разработчиков - если получили 4109 и после этого состояние глобальной кнопки или флага "Разрешить торговлю" в настройках эксперта не менялось - не выводить больше 4109 в лог для данного эксперта.
Есть куча старых экспертов, которые доступны только в ex4 и там IsTradeAllowed не пропишешь, а лог будет забит ошибкой 4109 и это некрасиво.
Обращаюсь к тем, от кого это зависит...с появлением обновления, перестали работать многие советники и индикаторы. После компиляции, работающий ранее индикатор становиться нерабочим. Очень печальный факт. Многие могут просто уйти с Форекса по этой причине.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
кнопка "AutoTrading" вообще ни на что не влият. OrderSend отправляет в любом случае.
подскажите если мы структуру обьявим за пределами ОнТик
Она будет иметь статические данные ?
И если мы объявим структуру внутри ОнТик, что будет происходить с данными и самое главное как будет потребляться ресурсы ???
Какой из вариантов наиболее правильный ?
или
или
Куда отправляет?
если отжать кнопку, то журнал забит ошибкой 4109.
как сделать, чтобы советник не пытался исполнить ordersend при отжатой кнопке?
если отжать кнопку, то журнал забит ошибкой 4109.
как сделать, чтобы советник не пытался исполнить ordersend при отжатой кнопке?
если отжать кнопку, то журнал забит ошибкой 4109.
как сделать, чтобы советник не пытался исполнить ordersend при отжатой кнопке?
Как минимум, два варианта:
1. Проверять разрешение для торговых операций перед OrderSend при помощи IsTradeAllowed()
2. После выполнения OrderSend и получения однократной ошибки 4109 перестать вовсе (или на время) совершать торговые операции.
Также раньше состояние кнопки "Автоторговля" можно было контролировать при помощи функции IsExpertEnabled(). В новых билдах не проверял, как работает эта функция.
ну ok. придётся опять делать очередные лишние движения.
а объясните мне, зачем это сделали, чтобы советник постоянно работал?
мне казалось идёт борьба за ресурсы, раньше я мог просто отжать кнопку и оно не работало, а теперь получается, что советник нагружает проц в любом случае.
Проверять в советнике состояние IsTradeAllowed().
Есть предложение для разработчиков - если получили 4109 и после этого состояние глобальной кнопки или флага "Разрешить торговлю" в настройках эксперта не менялось - не выводить больше 4109 в лог для данного эксперта.
Есть куча старых экспертов, которые доступны только в ex4 и там IsTradeAllowed не пропишешь, а лог будет забит ошибкой 4109 и это некрасиво.
Уважаемые разработчики!
Обнаружилась неоднозначность работы эксперта в следующей ситуации.
В функции OnInit() эксперта есть блок определения № окна индикатора:
short_name=Short_Name(hist_name, parStoch);//короткое имя индикатора гистограммы
n_Wind=GetIndicatorSubWindowNumber(0,short_name);//функция описана в справке по MQL4
n_Wind=WindowFind(short_name);//№ окна индикатора гистограммы
Print(short_name," n_Wind=",n_Wind);
После перекомпиляции присоединенного к графику эксперта эксперта получаем:
2014.04.02 14:26:32.212 FolowMarket.multySource XAUUSD,H1: Hist-multyPrice(200,50,3,0,CLOSE, HIGH-LOW) n_Wind=-1
2014.04.02 14:26:32.212 FolowMarket.multySource XAUUSD,H1: GetIndicatorSubWindowNumber(): Error = 0
Как видно (n_Wind=-1) окно не найдено, но Error = 0 - ошибки нет.
Теперь открываем окно свойств эксперта, ничего не меняем, закрываем:
2014.04.02 14:30:08.082 FolowMarket.multySource EURAUD,H1: Hist-multyPrice(200,50,3,0,CLOSE, HIGH-LOW) n_Wind=1
Окно нашлось!