[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 214
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Добрый день. Написал функцию, которая должна возвращать количество баров, когда был открыт ордер:
int BarLastOpenPose()
{
datetime t;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()>1) continue;
if (t<OrderOpenPrice()) t=OrderOpenPrice();
}
}
return (iBarShift(Symbol(),Period(),t,true));
}
Однако она возвращает всегда -1. В чем я ошибся? Заранее спасибо.
Добрый день. Написал функцию, которая должна возвращать количество баров, когда был открыт ордер:
int BarLastOpenPose()
{
datetime t;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()>1) continue;
if (t<OrderOpenPrice()) t=OrderOpenPrice();
}
}
return (iBarShift(Symbol(),Period(),t,true));
}
Однако она возвращает всегда -1. В чем я ошибся? Заранее спасибо.
Может, так:
return (iBarShift(Symbol(),Period(),t)); то есть без true.
Добрый день. Написал функцию, которая должна возвращать количество баров, когда был открыт ордер:
int BarLastOpenPose()
{
datetime t;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()>1) continue;
if (t<OrderOpenPrice()) t=OrderOpenPrice();
}
}
return (iBarShift(Symbol(),Period(),t,true));
}
Однако она возвращает всегда -1. В чем я ошибся? Заранее спасибо.
Переменной t присваивается цена открытия, хотя объявлена она как целое
Переменной t присваивается цена открытия, хотя объявлена она как целое
Как описать такое условие?
Подскажите, пожалуйста.
Если экстремум (к примеру хай) первого 5-минутного бара текущего дня совпадает с экстремумом текущего дня (на дневке), тогда что-то делаем. Как такое описать?
помогите люди добрые!!!
Здравствуйте, уважаемые пользователи ресурса!
Помогите пожалуйста, кто сталкивался с чтением/запись вещественного числа в файл.
Задача - считать из файла баланс, если текущий баланс больше - перезаписать файл.
Проблема - то что всегда выводит 0 (ноль)
С записью/чтением целых чисел таких проблем не обнаружил.
Вот код:
double balance;
int file_handle_bala;
file_handle_bala=FileOpen("file_bala.dat",FILE_BIN|FILE_READ);
//-копирование позиции, в случае пустого файла - позиция = 0
if (FileSize(file_handle_bala)>0)
{
balance=FileReadDouble(file_handle_bala,DOUBLE_VALUE);
Alert(balance); ------------------------------------- вот здесь то и идут нули хотя должен написать сохраненный до этого баланс
FileClose(file_handle_bala);
if (AccountBalance()>balance) ------------------------------------ и это правило почему то не срабатывает, потому что алерт ниже - ничего не выводит
{
file_handle_bala=FileOpen("file_bala.dat",FILE_BIN|FILE_WRITE);
balance=AccountBalance();
Alert(balance);
FileWriteInteger(file_handle_bala,balance,DOUBLE_VALUE);
FileClose(file_handle_bala);
}
}
else // если файл оказался пустым
{
FileClose(file_handle_bala); // сначало закроем открытый файл
file_handle_bala=FileOpen("file_bala.dat",FILE_BIN|FILE_WRITE); //откроем для записи
balance=AccountBalance();
FileWriteDouble(file_handle_bala,balance,DOUBLE_VALUE);
FileClose(file_handle_bala);
}
За ранее всем огромное спасибо!!!
Обратите внимание на эту строку
FileWriteInteger(file_handle_bala,balance,DOUBLE_VALUE);
1. Надо бы поуважительнее и подружественнее код публиковать.
2. Пытаетесь записать целое число 8 байт. В MQL4 нет такого типа данных.
\Что я сделал не так? Почему столько ошибок? (Нужно узнать максимальное значение индикатора за последние 10 баров). заранее благодарен.
Всем доброго времени суток!
Пишу своего первого бота, а заодно знакомлюсь с языком MQL. При тестировании возникла следующая проблема:
Ордер OP_BUYSTOP сразу после выставления срабатывает, хотя судя по графику цена не достигает планового значения (см. ниже)
USDJPY,M5 (visual)
Date 2011.09.19
Time 02:15
Open 76.903
High 76.909
Low 76.890
Close 76.890
Volume 66
Тестирую все тики.
Быть может я не верно воспринимаю ордер OP_BUYSTOP? Покупать, если цена превысит определенное значение, правильно?
Кусок исходного кода, выставляющий ордер
int ticket=OrderSend(Symb, OP_BUYSTOP, Lot, Price, 0, SL, TP);
\Что я сделал не так? Почему столько ошибок? (Нужно узнать максимальное значение индикатора за последние 10 баров). заранее благодарен.
Вы объявляете функцию Hi:
внутри функции start()