Как заработать деньги. Проект сам себе финансист.
июль 2011
пн вт ср чт пт сб вс
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Главная » » »

Пример использования функции GlobalVariableSetOnCondition()

В предыдущей статье мы узнали о функции GlobalVariableSetOnCondition().

В этом же выпуске мы рассмотрим пример ее практического использования.

 //+----------------------------------------------------------------------------------------+ 
//| int StartTrading() | 
//| | 
//| Функция занимает торговый поток | 
//| Функция возвращает: | //| 0 - если можно торговать | 
//| 1 - если работа эксперта была остановлена | 
//| 2 - если торговля экспертов запрещена на уровне настроек| 
//| клиентского терминала | //+----------------------------------------------------------------------------------------+ 
#define GLOB_VAR_NAME "TradeIsAllowed"
int StartTrading() { // если советник работает в режиме тестирования, то просто выйдем if (IsTesting()) return(0); int LastError; while (!IsStopped()) { // Если торговля экспертов запрещена на уровне настроек // клиентского терминала, то выйдем и вернем 2 if (!IsExpertEnabled()) return(2); // проверим, существует ли глобальная переменная if (GlobalVariableCheck(GLOB_VAR_NAME)) break;
// если произошла ошибка при проверке глобальной переменной, // то сообщим об этом в логах и выждем 0.1 секунды LastError = GetLastError(); if (LastError!=0) { Print("StartTrading(): ошибка ", LastError, " при проверке наличия глобальной переменной ", GLOB_VAR_NAME); Sleep(100); continue; } // глобальная переменная не существует - создадим ее if (GlobalVariableSet(GLOB_VAR_NAME, 0)>0) break; // произошла ошибка при создании переменной - запишем в лог LastError = GetLastError(); Print("StartTrading(): ошибка ", LastError, " при создании глобальной переменной ", GLOB_VAR_NAME); Sleep(100); } // глобальная переменная существует или же эксперт был остановлен // В цикле проверяем, как изменилась ситуация while (!IsStopped()) { // Если торговля экспертов запрещена на уровне настроек // клиентского терминала, то выйдем и вернем 2 if (!IsExpertEnabled()) return(2); // Если удалось изменить значение глобальной переменной, то обновим данные // о текущих курсах и вернем 0 if (GlobalVariableSetOnCondition(GLOB_VAR_NAME, 1, 0)) { RefreshRates(); return(0); } // Если дошли до момента, то ситуация не изменилась // Поэтому делаем паузу в 0.1 секунду Sleep(100); } // Т. к. вышли из цикла, то работа эксперта была остановлена // Вернем 1 return(1); } //+----------------------------------------------------------------------------------------+ //| int StopTrading() | //| | //| Функция разрешает торговать следующему эксперту | //| Функция возвращает: | //| 0 - если другому эксперту можно торговать | //| 1 - если работа эксперта была остановлена | //| 2 - если торговля экспертов запрещена на уровне настроек| //| клиентского терминала | //+----------------------------------------------------------------------------------------+ #define GLOB_VAR_NAME "TradeIsAllowed" int StopTrading() { // если советник работает в режиме тестирования, то просто выйдем if (IsTesting()) return(0); int LastError; while (!IsStopped()) { // Если торговля экспертов запрещена на уровне настроек // клиентского терминала, то выйдем и вернем 2 if (!IsExpertEnabled()) return(2); // Если удалось изменить значение глобальной переменной, то обновим данные // о текущих курсах и вернем 0 if (GlobalVariableSet(GLOB_VAR_NAME, 0)>0) { return(0); } // при сбросе значения глобальной переменной произошла какая-то ошибка LastError = GetLastError(); Print("StopTrading(): ошибка ", LastError, " при сбросе значения глобальной переменной ", GLOB_VAR_NAME); // делаем паузу в 0.1 секунду Sleep(100); } // Т. к. вышли из цикла, то работа эксперта была остановлена // Вернем 1 return(1); }

О том, где и как используются эти две функции мы расскажем в следующих статьях.



Автор статьи: Андрей Ведихин

Хомячковый рай. Уйти и потеряться:

Комментарии к этой заметке больше не принимаются.




Есть что сказать? Не стесняйтесь!






Последние статьи:

Выгодные «исламские счета» для трейдеров Форекс Выгодные «исламские счета» для трейдеров Форекс Таким образом, вне зависимости от стиля работы стоит использовать «исламские счета» и сотрудничать с компаниями, которые не берут с трейдеров swap-комиссии. ..
2014-09-29
Стоит ли покупать чужие торговые сигналы и прогнозы? Стоит ли покупать чужие торговые сигналы и прогнозы? И все же основным нашим советом станет отказ от покупки торговых сигналов и прогнозов. Куда лучше научиться анализировать валютный рынок и думать всегда только своей головой. ..
2015-02-12

Видео по теме:




В мире больших денег

  • Самые богатые люди
    планеты. Ежегодные рейтинги FORBS. Истории успеха признаных финансовых гуру
  • Самые дорогие вещи:
    Часы, автомобили, ноутбуки стоимотью в десятки и сотни тысяч долларов. Рубрика "Чтоб я так жил"
  • Денежные прогнозы
    Что покупать и что продавать? Периодические прогнозы цен на иностранные валюты, акции крупнейших компаний и драгоценные металлы

ВКонтакте с деньгами

УГОЛОК АДМИНИСТРАТОРА