Всем привет !
советник подразумевает, что после отктытия ордера, следубщий открывься должен только на следующий день
на тестере все нормально. Но в реале иногда получается что ордера отрываются в неурочное время. Думаю из-за того что эксперт преезапускается и переменая dateTradeLast обнуляется...
Если так , то как этого измежать ?
Попробуйте функции GlobalVariableSet и GlobalVariableGet
Попробуйте функции GlobalVariableSet и GlobalVariableGet
эм, а может проще вернуть дату последней сделки будь она в рынке или в истории с помощью простейшего цикла перебора ордеров
эм, а может проще вернуть дату последней сделки будь она в рынке или в истории с помощью простейшего цикла перебора ордеров
Конечно, и не нужны никакие глобальные переменные для этих целей
Конечно, и не нужны никакие глобальные переменные для этих целей
цикл перебирать постоянно ? или можно узнать когда переменная обнулилась ? то етсь когда эксперт перегрузился ?
ваш вариант действительно проще . проверю
а в чем минусы использования глобальных переменных ? просто в том ,что можно использовать более простоый способ ?
цикл перебирать постоянно ? или можно узнать когда переменная обнулилась ? то етсь когда эксперт перегрузился ?
ваш вариант действительно проще . проверю
а в чем минусы использования глобальных переменных ? просто в том ,что можно использовать более простоый способ ?
Можно чисто при старте эксперта проверить в OnInit()
Всем привет !
советник подразумевает, что после отктытия ордера, следубщий открывься должен только на следующий день
на тестере все нормально. Но в реале иногда получается что ордера отрываются в неурочное время. Думаю из-за того что эксперт преезапускается и переменая dateTradeLast обнуляется...
Если так , то как этого измежать ?
У KimIV такая функция есть:
//+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 19.02.2008 | //| Описание : Возвращает флаг торгов сегодня. | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента ("" - любой символ, | //| NULL - текущий символ) | //| op - операция (-1 - любая позиция) | //| mn - MagicNumber (-1 - любой магик) | //+----------------------------------------------------------------------------+ bool isTradeToDay(string sy="", int op=-1, int mn=-1) { int i, k=OrdersHistoryTotal(); if (sy=="0") sy=Symbol(); for (i=0; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) { if (OrderSymbol()==sy || sy=="") { if (OrderType()==OP_BUY || OrderType()==OP_SELL) { if (op<0 || OrderType()==op) { if (mn<0 || OrderMagicNumber()==mn) { if (TimeDay (OrderOpenTime())==Day() && TimeMonth(OrderOpenTime())==Month() && TimeYear (OrderOpenTime())==Year()) return(true); } } } } } } k=OrdersTotal(); 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 (TimeDay (OrderOpenTime())==Day() && TimeMonth(OrderOpenTime())==Month() && TimeYear (OrderOpenTime())==Year()) return(true); } } } } } } return(false); }
эм, а может проще вернуть дату последней сделки будь она в рынке или в истории с помощью простейшего цикла перебора ордеров
А если ордера нет в истории ? В 4-ке как-то (даже не знаю как сейчас, уже давно на это не полагаюсь) было что глубина истории определена текущим GUI. Смотрит пользователь историю за сутки, ну и роботы тоже глубже ничего не видят.
"грузиньте апельсины бочками" :-) робот должен уметь сохранять состояние на время перезагрузки и вести собственную историю. Так что глоб.переменные они глобальны, потому как проще файлов.
А если ордера нет в истории ? В 4-ке как-то (даже не знаю как сейчас, уже давно на это не полагаюсь) было что глубина истории определена текущим GUI. Смотрит пользователь историю за сутки, ну и роботы тоже глубже ничего не видят.
"грузиньте апельсины бочками" :-) робот должен уметь сохранять состояние на время перезагрузки и вести собственную историю. Так что глоб.переменные они глобальны, потому как проще файлов.
но с другой стороны, цель проверки такова, чтобы не открылись много ордеров, и если нет ордеров то и вопрос отпадает..

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всем привет !
советник подразумевает, что после отктытия ордера, следубщий открывься должен только на следующий день
на тестере все нормально. Но в реале иногда получается что ордера отрываются в неурочное время. Думаю из-за того что эксперт преезапускается и переменая dateTradeLast обнуляется...
Если так , то как этого измежать ?