Здравствуйте! Взял функцию определения цены последнего открытого селл ордера
PriceS(string sy="0", int op=OP_SELL, int mn=-1) { //Цена последнего открытого Селл ордераdatetime t;
double r=0;
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 (t<OrderOpenTime()) {
t=OrderOpenTime();
r=OrderOpenPrice();
}
}
}
}
}
}
}
return(r);
}
но когда вставляю ее в советник возникаюи ошибки при компиляции в условии функции'sy' - unexpected token
'=' - unexpected token25218
l-value required11
implicit conversion from 'string' to 'number'25219
'=' - l-value required25218
'=' - expression of 'void' type is illegal25218
'op' - unexpected token25228
'=' - unexpected token25230
l-value required11
'OP_SELL' - illegal operation use25231
possible loss of data due to type conversion25230
'=' - l-value required25230
'=' - expression of 'void' type is illegal25230
'mn' - unexpected token25244
'=' - unexpected token25246
l-value required11
'1' - illegal operation use25248
Вроде бы все должно быть верно!??Подскажите пожалуйста, я ее скопировал и ни чего не менял.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает цену открытия последней открытой позиций. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+double PriceOpenLastPos(string sy="", int op=-1, int mn=-1) {
datetime t=0;
double r=0;
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 (t<OrderOpenTime()) {
t=OrderOpenTime();
r=OrderOpenPrice();
}
}
}
}
}
}
}
return(r);
}
Верно, в примере было еще написано. Если я правильно понял можно выбирать тип ордера, что я и сделал.
op - Торговая операция, тип позиции. Допустимые значения: OP_BUY, OP_SELL или -1. Значение по умолчанию -1 означает любую позицию.
Потом я сделал функцию глобальной, поместив до start. И если возвращаю тип double прям перед названием функции, то появляется ошибка.Подскажите почему, пожалуйста!
'PriceS' - function can be declared only in the global scope25210
Я так понял, что функция должна быть глобальной?!
перевел ошибку в переводчике пишет
функция может быть объявлена только в глобальной области, а если я верно понимаю смысл этих слов значит, ее нужно оЪявить глобально и поэтаму перед ней не стоит double. Непонятно почему пишет ошибку на sy даже если просто скопировать из
образца
Верно, в примере было еще написано. Если я правильно понял можно выбирать тип ордера, что я и сделал.
op - Торговая операция, тип позиции. Допустимые значения: OP_BUY, OP_SELL или -1. Значение по умолчанию -1 означает любую позицию.
Потом я сделал функцию глобальной, поместив до start. И если возвращаю тип double прям перед названием функции, то появляется ошибка.Подскажите почему, пожалуйста!
'PriceS' - function can be declared only in the global scope25210
PriceOpenLastPos(); //текущий символ любая последняя поз.
PriceOpenLastPos(Symbol(),OP_SELL);//текущий символ OP_SELL без магика
PriceOpenLastPos(Symbol(),OP_BUY);//текущий символ OP_BUY без магика
3 параметр магик, через запятую, ставите свой или 0
Странное у вас ощущение. Просто показал как проще - без лишних ненужных переменных.
Значит я устал и мне пора пойти отдохнуть - поспать, ага.
Добрый день! Какой функций в эксперте можно сделать окно индикатора?
Добрый день! Какой функций в эксперте можно сделать окно индикатора?
Вызывайте из эксперта пустой индикатор.
Вызывайте из эксперта пустой индикатор.
Спасибо!
Найдите здесь нужный вам код
Здравствуйте! Взял функцию определения цены последнего открытого селл ордера
но когда вставляю ее в советник возникаюи ошибки при компиляции в условии функции'sy' - unexpected token
'=' - unexpected token 252 18
l-value required 1 1
implicit conversion from 'string' to 'number' 252 19
'=' - l-value required 252 18
'=' - expression of 'void' type is illegal 252 18
'op' - unexpected token 252 28
'=' - unexpected token 252 30
l-value required 1 1
'OP_SELL' - illegal operation use 252 31
possible loss of data due to type conversion 252 30
'=' - l-value required 252 30
'=' - expression of 'void' type is illegal 252 30
'mn' - unexpected token 252 44
'=' - unexpected token 252 46
l-value required 1 1
'1' - illegal operation use 252 48
Вроде бы все должно быть верно!??Подскажите пожалуйста, я ее скопировал и ни чего не менял.
Здравствуйте! Взял функцию определения цены последнего открытого селл ордера
но когда вставляю ее в советник возникаюи ошибки при компиляции в условии функции'sy' - unexpected token
'=' - unexpected token 252 18
l-value required 1 1
implicit conversion from 'string' to 'number' 252 19
'=' - l-value required 252 18
'=' - expression of 'void' type is illegal 252 18
'op' - unexpected token 252 28
'=' - unexpected token 252 30
l-value required 1 1
'OP_SELL' - illegal operation use 252 31
possible loss of data due to type conversion 252 30
'=' - l-value required 252 30
'=' - expression of 'void' type is illegal 252 30
'mn' - unexpected token 252 44
'=' - unexpected token 252 46
l-value required 1 1
'1' - illegal operation use 252 48
Вроде бы все должно быть верно!??Подскажите пожалуйста, я ее скопировал и ни чего не менял.
Нужно вернуть тип функции
Вроде бы все должно быть верно!??Подскажите пожалуйста, я ее скопировал и ни чего не менял.
А заголовок функции, и не скопировали тип функции
Изначально функция выглядит так:
А заголовок функции, и не скопировали тип функции
Изначально функция выглядит так:
А заголовок функции, и не скопировали тип функции
Изначально функция выглядит так:
Верно, в примере было еще написано. Если я правильно понял можно выбирать тип ордера, что я и сделал.
'PriceS' - function can be declared only in the global scope 252 10
Я так понял, что функция должна быть глобальной?!
перевел ошибку в переводчике пишет
Верно, в примере было еще написано. Если я правильно понял можно выбирать тип ордера, что я и сделал.
'PriceS' - function can be declared only in the global scope 252 10
Я так понял, что функция должна быть глобальной?!
перевел ошибку в переводчике пишет
Функцию разместите за пределами функции start
А в теле функции start, вызываем так:
3 параметр магик, через запятую, ставите свой или 0
Функцию разместите за пределами функции start
А в теле функции start, вызываем так:
3 параметр магик, через запятую, ставите свой или 0
Огромное спасибо!! Как только вынес функцию за пределы start, все ошибки исчезли!!