При реализации различных "сеток" пришел к такой вот структуре:
Структура заполняется на каждом новом тике, исходя из значения Magic Number (в нем хранится вся необходимая для идентификации ордера информация: номер ордера, какой сетке принадлежит и т. д.).
Вот и я пришёл к примерно такому коду
class Info
{
private:
struct str
{
string Sym; // Символ ордераstring Com; // Коммент ордераint Tic; // Тиккет ордераint Typ; // Тип ордераint Mag; // Меджик номер ордераdouble Lot; // Лот ордераdouble Pri; // Цена открытия ордераdouble SL_; // Стоп лосс ордераdouble TP_; // Тейк профит ордераdatetime Tim; // Время открытия ордераdouble Pro; // Профит ордера
};
int m_tick_upper; // Тиккет максимального по цене ордераint m_tick_upper_; // Тиккет предпоследнего максимального по цене ордераint m_tick_lower; // Тиккет минимального по цене ордераint m_tick_lower_; // Тиккет предпоследнего минимального по цене оредраint m_tick_start; // Тиккет первого по времени ордераint m_tick_start_; // Тиккет вторго по времени ордераint m_tick_end; // Тиккет последнего по времени ордераint m_tick_end_; // Тиккет предпоследнего по времени ордераint m_magic; // Меджик номерstring m_symbol; // Символ ордераvoid SearchTicketPriceType(constint type); // Поиск по ценеvoid SearchTicketTimeType(constint type); // Поиск по времениpublic:
str Price_Max; // Структура запроса максимальных ценн
str Price_Min; // Структура запроса минимальных ценн
str Time_End; // Структура последних ордеров
str Time_Start; // Структура начальных ордеров
str Price_Max2; // Структура запроса максимальных ценн
str Price_Min2; // Структура запроса минимальных ценн
str Time_End2; // Структура последних ордеров
str Time_Start2; // Структура начальных ордеровvoid SetMagic (constint mag) { m_magic = mag; } // Принудительное указание меджик номераvoid SetSymbol(conststring sym) { m_symbol = sym; } // Принудительное указание символаvoid SearchTimeOrder(constint type); // Заполнение структуры по времени void SearchPriceOrder(constint type); // Заполнение структуры по ценам
Info(conststring sym,constint mag); // Параметрический конструктор
Info(){};
~Info(){};
};
"Кстати - если слетела винда, то и удалить ордера советник не сможет - тут только вручную, так что этот пример не может относиться в полной мере к автоторговле."
МОЖНО, Вы, вероятно, не знаете как. Если интересно могу выложить код.
Не, не нужно код. Алгоритм вкратце, если можно... Я правда не знаю как запустить советник в терминале, запускаемом в слетевшей ОС
Блин, чувак, *** не пори. Ты же сам определил правильное направление: состояние надо восстанавливать по текущему окружению, то, что дает тебе МТ - это самы надежный вариант. И вместо этого, ты пишешь длиннющий и бестолковый класс Info, в который каким-то макаром надо запихивать найденные внешними функциями значения. Да, в итоге, он будет содержать необходимые для тебя переменные: тикет максимального и минимального с точки зрения цены ордера, а также другую важную для тебя туфту. Но в действительности, задача решается с помощью специализированного контейнера ордеров: представь, у тебя есть список ордеров, где каждый ордер представляет строчку таблицы со множеством колонок (id ордера, время открытия, цена открытия, профит и т.д. и т.п.). Ты делаешь сортировку по одной из колонок, и получаешь именно ту последовательность которую тебе нужно. Так вот, все это можно сделать с помощью классов, которые ты так любишь использовать (хоть и бестолково, уж прости). Как это сделать - напишу завтра, если интересно.
Vasiliy Sokolov: Блин, чувак, *** не пори. Ты же сам определил правильное направление: состояние надо восстанавливать по текущему окружению, то, что дает тебе МТ - это самы надежный вариант. И вместо этого, ты пишешь длиннющий и бестолковый класс Info, в который каким-то макаром надо запихивать найденные внешними функциями значения. Да, в итоге, он будет содержать необходимые для тебя переменные: тикет максимального и минимального с точки зрения цены ордера, а также другую важную для тебя туфту. Но в действительности, задача решается с помощью специализированного контейнера ордеров: представь, у тебя есть список ордеров, где каждый ордер представляет строчку таблицы со множеством колонок (id ордера, время открытия, цена открытия, профит и т.д. и т.п.). Ты делаешь сортировку по одной из колонок, и получаешь именно ту последовательность которую тебе нужно. Так вот, все это можно сделать с помощью классов, которые ты так любишь использовать (хоть и бестолково, уж прости). Как это сделать - напишу завтра, если интересно.
Очень хочется посмотреть....
Мне информация нужна не ради информации а ради дальнейшей обработки, и вычислений ...
Как это будет работать на сломанном компе??? (функциями совсем не удивили)
Потому я и сказал - мне не нужен код. Мне нужен алгоритм, который работает на компе, который не работает (ось ведь слетела, если помните цитирую: "Я правда не знаю как запустить советник в терминале, запускаемом в слетевшей ОС", и не нужно о VPS и прочем - считаем, что слетела ОС на том компе, сервере и пр., на котором работает терминал с советником - там ему ваш код как припарка слону и ... ручками, ручками ... ).
Как это будет работать на сломанном компе??? (функциями совсем не удивили)
Потому я и сказал - мне не нужен код. Мне нужен алгоритм, который работает на компе, который не работает (ось ведь слетела, если помните цитирую: "Я правда не знаю как запустить советник в терминале, запускаемом в слетевшей ОС", и не нужно о VPS и прочем - считаем, что слетела ОС на том компе, сервере и пр., на котором работает терминал с советником - там ему ваш код как припарка слону и ... ручками, ручками ... ).
Ну началось, кто в лес кто по дрова...
Давайте НАШЕ с ВАМИ обсуждение на этом и закончим!
Artyom Trishkin: Не вопрос. Самому уже надоело свою мысль пытаться донести...
Суть в том что даже если слетела ось на серваке, то можно на домашнем ПК запустить сов который восстановит контроль над счетом, на то время которое требуется для перезапуска сервака.
За мою практику работы с VDS/VPS серверами ОС на них ни разу не слетала, но перезагрузки непредвиденные и запланированные бывают.
Суть моего вопроса грамотно написать код который собирает информацию о текущей ситуации...
Суть моего вопроса грамотно написать код который собирает информацию о текущей ситуации...
Вы же здесь писали, что в процедурном стиле у вас уже написано. Значит все это только собрать в класс. Еще может некоторые параметры убрать из вызова функций, сделать методы для предварительной установки параметров (магик, символ), но лучше не делать.
Конечно если делать нечего, можно пойти и другим путем. Класс. У него метод Refresh() для получения списка ордеров (единственный, который может вернуть false). Остальные методы используют этот список.
При реализации различных "сеток" пришел к такой вот структуре:
Структура заполняется на каждом новом тике, исходя из значения Magic Number (в нем хранится вся необходимая для идентификации ордера информация: номер ордера, какой сетке принадлежит и т. д.).
Вот и я пришёл к примерно такому коду
...
"Кстати - если слетела винда, то и удалить ордера советник не сможет - тут только вручную, так что этот пример не может относиться в полной мере к автоторговле."
МОЖНО, Вы, вероятно, не знаете как. Если интересно могу выложить код.
Не, не нужно код. Алгоритм вкратце, если можно... Я правда не знаю как запустить советник в терминале, запускаемом в слетевшей ОС
Мне проще выложить код, нежеле объяснять:
Вот и я пришёл к примерно такому коду
Блин, чувак, *** не пори. Ты же сам определил правильное направление: состояние надо восстанавливать по текущему окружению, то, что дает тебе МТ - это самы надежный вариант. И вместо этого, ты пишешь длиннющий и бестолковый класс Info, в который каким-то макаром надо запихивать найденные внешними функциями значения. Да, в итоге, он будет содержать необходимые для тебя переменные: тикет максимального и минимального с точки зрения цены ордера, а также другую важную для тебя туфту. Но в действительности, задача решается с помощью специализированного контейнера ордеров: представь, у тебя есть список ордеров, где каждый ордер представляет строчку таблицы со множеством колонок (id ордера, время открытия, цена открытия, профит и т.д. и т.п.). Ты делаешь сортировку по одной из колонок, и получаешь именно ту последовательность которую тебе нужно. Так вот, все это можно сделать с помощью классов, которые ты так любишь использовать (хоть и бестолково, уж прости). Как это сделать - напишу завтра, если интересно.
Очень хочется посмотреть....
Мне информация нужна не ради информации а ради дальнейшей обработки, и вычислений ...
Мне проще выложить код, нежеле объяснять:
Как это будет работать на сломанном компе??? (функциями совсем не удивили)
Потому я и сказал - мне не нужен код. Мне нужен алгоритм, который работает на компе, который не работает (ось ведь слетела, если помните цитирую: "Я правда не знаю как запустить советник в терминале, запускаемом в слетевшей ОС", и не нужно о VPS и прочем - считаем, что слетела ОС на том компе, сервере и пр., на котором работает терминал с советником - там ему ваш код как припарка слону и ... ручками, ручками ...
).
Как это будет работать на сломанном компе??? (функциями совсем не удивили)
Потому я и сказал - мне не нужен код. Мне нужен алгоритм, который работает на компе, который не работает (ось ведь слетела, если помните цитирую: "Я правда не знаю как запустить советник в терминале, запускаемом в слетевшей ОС", и не нужно о VPS и прочем - считаем, что слетела ОС на том компе, сервере и пр., на котором работает терминал с советником - там ему ваш код как припарка слону и ... ручками, ручками ... ).
Ну началось, кто в лес кто по дрова...
Давайте НАШЕ с ВАМИ обсуждение на этом и закончим!
Ну началось, кто в лес кто по дрова...
Давайте НАШЕ с ВАМИ обсуждение на этом и закончим!
Не вопрос. Самому уже надоело свою мысль пытаться донести...
Суть в том что даже если слетела ось на серваке, то можно на домашнем ПК запустить сов который восстановит контроль над счетом, на то время которое требуется для перезапуска сервака.
За мою практику работы с VDS/VPS серверами ОС на них ни разу не слетала, но перезагрузки непредвиденные и запланированные бывают.
Суть моего вопроса грамотно написать код который собирает информацию о текущей ситуации...
...
Суть моего вопроса грамотно написать код который собирает информацию о текущей ситуации...
Вы же здесь писали, что в процедурном стиле у вас уже написано. Значит все это только собрать в класс. Еще может некоторые параметры убрать из вызова функций, сделать методы для предварительной установки параметров (магик, символ), но лучше не делать.
Конечно если делать нечего, можно пойти и другим путем. Класс. У него метод Refresh() для получения списка ордеров (единственный, который может вернуть false). Остальные методы используют этот список.