Функция DeleteOrders() предназначена для удаления отложенных ордеров BuyLimit, BuyStop, SellLimit и SellStop. Функция DeleteOrders() является универсальной, то есть она может быть применена как для удаления всех имеющихся отложенных ордеров, так и конкретных, удовлетворяющим условиям отбора, которые задаются параметрами функции:
sy - Наименование инструмента. Так как в тестере торговля может вестись только по текущему инструменту, то этот параметр в версии для тестера не актуален и нужен только для совместимости с онлайн версией данной функции. В тестере лучше всего использовать значения "" или NULL. Значение по умолчанию "" - означает любой символ. op - Тип торговой операции, тип отложенного ордера. Возможны одно из пяти значений: -1, OP_BUYLIMIT, OP_BUYSTOP, OP_SELLLIMIT или OP_SELLSTOP. Значение по умолчанию -1 - означает любой ордер. mn - MagicNumber, идентификационный номер отложенного ордера. Значение по умолчанию -1 - означает любой магик.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 13.06.2007 |//| Описание : Удаление ордеров. Версия функции для тестов на истории. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента (NULL - текущий символ) |//| op - операция ( -1 - любой ордер) |//| mn - MagicNumber ( -1 - любой магик) |//+----------------------------------------------------------------------------+voidDeleteOrders(stringsy="", intop=-1, intmn=-1){ inti, k=OrdersTotal(), ot;
if(sy=="" || sy=="0")sy=Symbol();
for(i=0; i<k; i++){ if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){ ot=OrderType();
if(ot==OP_BUYLIMIT || ot==OP_BUYSTOP || ot==OP_SELLLIMIT || ot==OP_SELLSTOP){ if(OrderSymbol()==sy && (op<0 || ot==op)){ if(mn<0 || OrderMagicNumber()==mn){ OrderDelete(OrderTicket(), clDelete);
} } } } }}
Я предполагаю, что у Ильнара возникла сложность с определением ценовых уровней фракталов. Поэтому традиционно предлагаю воспользоваться моей функцией:
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 07.10.2006 |//| Описание : Поиск ближайшего фрактала. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента (NULL - текущий символ) |//| tf - таймфрейм ( 0 - текущий ТФ) |//| mode - тип фрактала (MODE_LOWER|MODE_UPPER) |//+----------------------------------------------------------------------------+doubleFindNearFractal(stringsy="0", inttf=0, intmode=MODE_LOWER){ if(sy=="" || sy=="0")sy=Symbol();
doublef=0;
intd=MarketInfo(sy, MODE_DIGITS), s;
if(d==0)if(StringFind(sy, "JPY")<0)d=4; elsed=2;
for(s=2; s<100; s++){ f=iFractals(sy, tf, mode, s);
if(f!=0)return(NormalizeDouble(f, d));
} Print("FindNearFractal(): Фрактал не найден");
return(0);
}
Функция FindNearFractal() выполняет поиск на заданном символе, на заданном таймфрейме ближайшего фрактала заданного типа и возвращает его ценовой уровень. Зная ценовой уровень расположения фрактала, уже легко установить ордер на этот уровень.
Не знаю... У меня в практике был один случай, когда было d=0. Пришлось сделать проверку на равенство нулю. С тех пор и тащу этот код везде, где-только можно. Возможно, это уже лишнее, но я считаю, что лучше перебдеть, чем недобдеть.
С такими темпами до библиотеки мы так и не дойдем. Придется все таки в гости ехать. Если конечно пригласишь. Я ж без приглашения ни-ни.
Витёк, какие проблемы? Канешна, приезжай Скоро огород копать... поможешь...
С огородом проблем нет, хотя уже и не тот возраст. Может для этого дела взять кого помоложе. А мы с тобой в баньку сходим, выпьем кваску ( у тебя же аллергия, у меня тоже когда-то была). Посмотрим как молодежь работает. А так не серьезно будет.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Cпасибо тебе KimIV !
Функция DeleteOrders(). Версия для тестера.
Функция DeleteOrders() предназначена для удаления отложенных ордеров BuyLimit, BuyStop, SellLimit и SellStop. Функция DeleteOrders() является универсальной, то есть она может быть применена как для удаления всех имеющихся отложенных ордеров, так и конкретных, удовлетворяющим условиям отбора, которые задаются параметрами функции:
sy - Наименование инструмента. Так как в тестере торговля может вестись только по текущему инструменту, то этот параметр в версии для тестера не актуален и нужен только для совместимости с онлайн версией данной функции. В тестере лучше всего использовать значения "" или NULL. Значение по умолчанию "" - означает любой символ.
op - Тип торговой операции, тип отложенного ордера. Возможны одно из пяти значений: -1, OP_BUYLIMIT, OP_BUYSTOP, OP_SELLLIMIT или OP_SELLSTOP. Значение по умолчанию -1 - означает любой ордер.
mn - MagicNumber, идентификационный номер отложенного ордера. Значение по умолчанию -1 - означает любой магик.
Функция DeleteOrders(). Версия для онлайн.
Примеры использования функции DeleteOrders().
1. Удалить все ордера:
2. Удалить все ордера BuyStop:3. Удалить все ордера с магиком 123456:
ЗЫ. В прицепе работающий скрипт с этими же примерами.
Примеры использования функции DeleteOrders().
Ильнар, в теме отложенный ордер по фракталу спрашивал, Как сделать так чтобы ставились отложенные ордера по фракталам?
Я предполагаю, что у Ильнара возникла сложность с определением ценовых уровней фракталов. Поэтому традиционно предлагаю воспользоваться моей функцией:
Функция FindNearFractal() выполняет поиск на заданном символе, на заданном таймфрейме ближайшего фрактала заданного типа и возвращает его ценовой уровень. Зная ценовой уровень расположения фрактала, уже легко установить ордер на этот уровень.
Примеры использования функции DeleteOrders().
Витёк, какие проблемы? Канешна, приезжай Скоро огород копать... поможешь...
Примеры использования функции DeleteOrders().
Витёк, какие проблемы? Канешна, приезжай Скоро огород копать... поможешь...