
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ясно, спасибо, похоже сегодня день начался НЕ с прибылей - вот и всё.
А модель ТС событийная, поэтому и спрашивал.
Посмотрим, чем и как он закончится.
Дааааа,уж.
Что- то я не так написал этот блок закрытия - вновь на начале нового дня положительная позиция НЕ закрылась.
Хотя на тесте всё шло!
Может кто подскажет в чём ошибка. Вот в этом куске:
if(lparam ==CHARTEVENT_NEWBAR_D1 && PositionSelect(sparam))
{
if(PositionGetDouble(POSITION_PROFIT)>100.0)
//--- закрываем позицию по текущему символу
if(!trade.PositionClose(sparam, Slippage))
{
//--- сообщим о неудаче
Print("Метод PositionClose() потерпел неудачу. Код возврата=",trade.ResultRetcode(),
". Описание кода: ",trade.ResultRetcodeDescription());
}
else
{
Print("Метод PositionClose() выполнен успешно. Код возврата=",trade.ResultRetcode(),
" (",trade.ResultRetcodeDescription(),")");
}
}
artall:
1. "Вставляйте код правильно" (с).
2. Прибыль по позиции должна быть не просто "положительной", а больше 100. Выполняется?
1. "Вставляйте код правильно" (с).
2. Прибыль по позиции должна быть не просто "положительной", а больше 100. Выполняется?
У меня другой вопросы:
1. Чему были равны lparam и sparam ?
2. Как формируются их значения (предположу что это блок обработки событий)?
...
Дело в том мой советник в 00-00 должен был (и будет) закрывать определённые положительные сделки
...
1. "Вставляйте код правильно" (с).
2. Прибыль по позиции должна быть не просто "положительной", а больше 100. Выполняется?
Да судя по всему, эти параметры взяты из статьи Лизара про торговлю с помощью пользовательских событий. Сначала надо получить точный ответ на мой вопрос, а затем - копать дальше, чтобы не прыгать с проверки одного условия на проверку другого.
Да, из статьи Лизара, на каждом символе стоят агенты и т.д.
У меня другой вопросы:
1. Чему были равны lparam и sparam ?
2. Как формируются их значения (предположу что это блок обработки событий)?
А там lparam -типа long и равно произошедшему событию,
sparam - типа string и равно собственно символу, с которого пришло событие.
Кстати, на реальном счете подобная методика может не сработать. В некоторых банках период с 00-00 до 00-05 исключен из торговой сессии.
Интересное замечание. А вот у товарища выше со скипшотом
отмечеется "новый день" в комментарии.
artall:
Да, выполняется конечно, иначе не было бы вопроса.
В Вашем вопросе ничего не было сказано про выполнение именно этого условия. Поэтому и был задан уточняющий вопрос.
Итак, если указанное условие выполняется, то получается, что не срабатывает вот это условие, т.е. предыдущее:
Соответственно, то ли "lparam!=CHARTEVENT_NEWBAR_D1", то ли "PositionSelect(sparam)==false", то ли соответствующее пользовательское событие вообще не посылается в указанное время. Конечно, было бы лучше, если бы проверка PositionSelect(sparam) была отдельной, типа if(PositionSelect(sparam)). А так остаётся только проверить
В Вашем вопросе ничего не было сказано про выполнение именно этого условия. Поэтому и был задан уточняющий вопрос.
Итак, если указанное условие выполняется, то получается, что не срабатывает вот это условие, предыдущее:
Соответственно, то ли lparam!=CHARTEVENT_NEWBAR_D1, то ли PositionSelect(sparam)==false. Конечно, было бы лучше, если бы проверка PositionSelect(sparam) была отдельной, типа if(PositionSelect(sparam)). А так остаётся только проверить
Про отдельную проверку это верно, я тоже об этом подумал.
На два первых вопроса ответ положительный, а вот по поводу "PositionSelect()==false" не вставил я Принт на ошибку в советнике(и в журнале,соотвт. нет записей,), потому что в тестере не было такого, -не озадачился.
Ещё думаю, что очерёдность событий смешивается\толкается чтоли? Да, нет не так надо было, а как-то так.
1. Пришло событие по символу.
2. Ищем есть ли открытая по нему поза.
3. Если есть, смотрим профит и если больше 100, то кроем.
4. Ну и на каждый НЕТ, продолжаем отслеживать 30-ти мин. события.