Вы пишите под #property strict и появляется предупреждение при компиляции ?
Попробуйте изменить строчку:
datetime o;
на:
datetime o=0;
Это нужно для современной версии компилятора.
//+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 19.02.2008 | //| Описание : Возвращает размер лота последней открытой позиции или -1 | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента ("" - любой символ, | //| NULL - текущий символ) | //| op - операция (-1 - любая позиция) | //| mn - MagicNumber (-1 - любой магик) | //+----------------------------------------------------------------------------+ double GetLotLastPos(string sy="", int op=-1, int mn=-1) { datetime o=0; double l=-1; int i, k=OrdersTotal(); if (sy=="0") sy=Symbol(); for (i=0; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol()==sy || sy=="") { if (OrderType()==OP_BUY || OrderType()==OP_SELL) { if (op<0 || OrderType()==op) { if (mn<0 || OrderMagicNumber()==mn) { if (o<OrderOpenTime()) { o=OrderOpenTime(); l=OrderLots(); } } } } } } } return(l); }
Вы пишите под #property strict и появляется предупреждение при компиляции ?
До этого писал после OnTick(), сейчас перенес, написал после #property strict, но результат тот же -1.
Предупреждение только вот такое: possible use of uninitialized variable 'o' Строка:31 Столбец:22
31 строка это: if (o<OrderOpenTime()) {
Может дело в самом вызове функции:? Когда вызываю вот так: GetLotLastPos(), все срабатывает. А если вызывать так GetLotLastPos(NULL, -1, 1299) то возвращает только -1
Если надо действительно по любому символу то вызывайте функцию без указания параметров отбора.
GetLotLastPos()
Если надо сортировка то:
GetLotLastPos(Symbol(),OP_BUY,MagicNumber)
Судя по этой строчке:
if (sy=="0") sy=Symbol();
NULL функция не воспринимает, попробуйте 0
Если надо действительно по любому символу то вызывайте функцию без указания параметров отбора.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день. Возникла проблема с функцией возвращающей лот последней открытой позиции от KimIV, вместо последнего лота она всегда возвращает -1, подскажите в чем может быть дело?
Сама функция: