Стандартная библиотека
© 2000-2011, MetaQuotes Software Corp.
2422
Processing
Реализует основной алгоритм.
virtual bool Processing()
Возвращаемое значение
true - выполнена какая-либо торговая операция, иначе - false.
Примечание
Выполняются следующие действия:
1. Проверяется наличие открытой позиции по рабочему символу. Если позиции нет, то шаги 2, 3
и 4 пропускаются.
2. Проверяется необходимость переворота позиции (вызов метода CheckReverse). Если позиция
"перевёрнута", то уходим.
3. Проверяется необходимость закрытия позиции (вызов метода CheckClose). Если позиция
закрыта, то шаг 4 пропускается.
4. Проверяется необходимость модификации позиции (вызов метода CheckTrailingStop). Если
позиция модифицирована, то уходим.
5. Проверяется наличие отложенных ордеров по рабочему символу. Если ордеров нет, то
переходим к п.9.
6. Проверяется необходимость удалить ордер (вызов метода CheckDeleteOrderLong для ордеров
на покупку или метода CheckDeleteOrderShort для ордеров на продажу). Если ордер удалён, то
переходим к п.9.
7. Проверяется необходимость модифицировать ордер (вызов метода CheckTrailingOrderLong
для ордеров на покупку или метода CheckTrailingOrderShort для ордеров на продажу). Если
ордер модифицирован, то уходим.
8. Уходим.
9. Проверяется необходимость входа в рынок (вызов метода CheckOpen).
Реализация
//+------------------------------------------------------------------+
//| Main function |
//| INPUT: no. |
//| OUTPUT: true-if any trade operation processed, false otherwise. |
//| REMARK: no. |
//+------------------------------------------------------------------+
bool CExpert::Processing()
{
//--- check if open positions
if(m_position.Select(m_symbol.Name()))
{
//--- open position is available
//--- check the possibility of reverse the position
if(CheckReverse()) return(true);
//--- check the possibility of closing the position/delete pending orders
if(!CheckClose())