Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 148
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте.
Функция OrderSelect возвращает ошибку 0 (ERR_NO_ERROR - Торговая операция прошла успешно)???
Как избежать этой ошибки?
Код программы и записи из журнала прилагаю.
С уважением. Shurkin.
2013.09.17 13:07:04 PoligonTd GBPUSD,Daily: removed
2013.09.17 13:07:04 PoligonTd GBPUSD,Daily: uninit reason 0
2013.09.17 13:07:04 PoligonTd GBPUSD,Daily: Кс: Str=#20552937 buy 1.00 GBPUSD at 1.55450; Tct 20552937; OdSmb ?
2013.09.17 13:07:04 PoligonTd GBPUSD,Daily: OrderSelect() вернул ошибку - 0
2013.09.17 13:07:04 PoligonTd GBPUSD,Daily: loaded successfully
Здравствуйте.
Функция OrderSelect возвращает ошибку 0 (ERR_NO_ERROR - Торговая операция прошла успешно)???
Как избежать этой ошибки?
Код программы и записи из журнала прилагаю.
С уважением. Shurkin.
2013.09.17 13:07:04 PoligonTd GBPUSD,Daily: removed
2013.09.17 13:07:04 PoligonTd GBPUSD,Daily: uninit reason 0
2013.09.17 13:07:04 PoligonTd GBPUSD,Daily: Кс: Str=#20552937 buy 1.00 GBPUSD at 1.55450; Tct 20552937; OdSmb ?
2013.09.17 13:07:04 PoligonTd GBPUSD,Daily: OrderSelect() вернул ошибку - 0
2013.09.17 13:07:04 PoligonTd GBPUSD,Daily: loaded successfully
Собственно ошибки выбора нет, просто ордера с таким тикетом не существует.
Ну... если ордера с таким тикетом не существует, то OrderSelect() вернёт false
Вот, судя по всему ошибка есть, раз на else переходим. Вопрос в другом: почему ноль?
Никак не пойму как, с наименьшими затратами, реализовать логику.
if(...) установить стоповый ордер;
if(время жизни ордера>время) снять ордер и if(..) установить новый ордер;
Сложность в том, что может быть несколько уже открытых позиций и как их все сопроводить? Как легче всего?
Спасибо!
Думаю отказаться от специальной функции init(). По-моему это есть верное решение, ведь так?
Способ вижу такой:
1. Объявляем переменную на глобальном уровне, например, так:
gInitTrue = false;
Дальше создаём свой ИНИТ:
В самом начале старта так:
if (gInitTrue == false) myInit();
Интересно услышать мнение более опытных о набоности данного подхода, а так же о правильности предложенного мной вариант решения данной задачи.Буферов побольше.
Думаю отказаться от специальной функции init(). По-моему это есть верное решение, ведь так?
Способ вижу такой:
1. Объявляем переменную на глобальном уровне, например, так:
Дальше создаём свой ИНИТ:
В самом начале старта так:
Интересно услышать мнение более опытных о набоности данного подхода, а так же о правильности предложенного мной вариант решения данной задачи.Какова новизна ощущений от нового решения? :-))
Один хрен. Ниразу не понадобилось так делать.
Ну... если ордера с таким тикетом не существует, то OrderSelect() вернёт false
Вот, судя по всему ошибка есть, раз на else переходим. Вопрос в другом: почему ноль?
Проверял - если номер тикета подходит - все норм работает,
если же нет - функция возвращает False, но OrderSelect() молчит как ни в чем не бывало, НОЛИК и все.
Какова новизна ощущений от нового решения? :-))
Один хрен. Ниразу не понадобилось так делать.
А если ближе к теме? Уже сколько обсуждалось что ИНИТ может подвести при, например, дисконектах или ещё какие-то подобных ситуациях. Т.к. он сам не переинициирует данные потом, в случает непредвиденных ситуаций, и запускается только один раз! А значит, это не совсем верный вариант.
Вопрос туповат, но ответ как бы нигде не видал, а может просто криво искал:
В фунциях, а возможно где то еще можно, встретил после типа данных символ & и, если не ошибаюсь, когда-то && видал
func(int& mm_mode, string symbol, int magic,bool& stop) {
Для чего оно? что даєт и делает? Ссылочку если можно откуда подетальнее узнать)))