-
Постов
95 -
Зарегистрирован
-
Посещение
Весь контент joe2009
-
Да - китайцы молодцы, чтут традиции и культуру, уважают предков. А вы про Швецию еще забыли - там давно коммунизм Вы считаете, что политика "обезалкоголивания" страны была негативом? Самые здоровые дети в 80-е годы рождались как раз в период "сухого закона". За 1985-1987 годы Был создан неплохой генофонд который сейчас уже почти гробили. Посмотрите на текущее состояние страны - Россию просто утопили в дешевой водке и пиве. И посмотрите на ту же Швецию - там очень сильные ограничения по продаже спиртного (к стати и соседнюю ей Норвегии, ряде других европейских), водку продают далеко за городской чертой при этом магазины такие работают не более 4 часов в месяц. А короли Норвегии и Швеции (где-то читал) даже состоят в обществе трезвости . Не думаю, что сухой закон - это было плохо. "Интересно, есть где-нибудь во Вселенной места, где слова "высокая политика" и "дерьмо" - не синонимы? Ох, вряд ли..." (Сварог, "Рыцарь из ниоткуда", А.Бушков) Ну так давайте объединимся и наконец начнем что-то делать а не критиковать А рецептом не поделитесь?
-
Я не хотел. Но мне в то время было не так много лет (всего 15) чтобы конкретно я мог что-то предпринять чтобы что-то изменить да или вообще понять что происходит. Да никто не хотел, только вот получается что если не предотвратили - то значит и не сделали. Вопрос "задайте" не адресовался лично Вам. Если Вы, Tiv-57, приняли его на себя то прошу прощения . Имелось в виду примерно вот что: если большинство людей допустило то, что случилось - это значит что это большинство ничего и не сделало. И пусть это большинство не размахивает руками и не говорит о том что их обманули, поскольку они дали себя обмануть. (и это сугубо имхо). Не поделитесь - что конкретно нужно делать? Я присоединюсь лично к Вам . Если требуются конкретные действия - я готов принять в этом непосредственное участие, т.к. судьба моих детей мне далеко не безразлична. PS: Но и все же та жизнь мне больше нравилась.
-
а я хотел сказать только вот это: Может меня немного не поняли, могу немного перефразировать: Мне жаль этого человека потому что его сделали козлом отпущения. А остальные остались в тени (и которых надо было-бы тоже поставить к стенке). В конце концов давайте тогда обвинять в развале СССР и США (которые тоже сыграли в этом не последнюю роль) вместе с Горбачевым. Представьте себе такие заголовки в газетах: "Горбачев и США развалили СССР" Но США никто в этом открыто почему-то в этом не обвиняет.... а почему-то только Горбачева
-
ВО! Мудрые слова, это я к тому что мы заслужили сами такую жизнь: захотели заграничных тряпок, бубльгумов и прочей чепухи в обмен на отсутствие СССР. Да, я так считаю. Чего хотели - то и получили. Задайте себе вопрос - что Вы сами сделали для того чтобы улучшить свою жизнь. И если ответом будет "Ничего" - то и пенять тут не на кого. а по поводу всего остального - думаю, что правды мы никогда не узнаем.
-
А мне нет! Умный? Старый? Хм...)) Просто не хочется развивать и раздувать эту тему... уж слишком она обширная и неоднозначная, скользкая... и очень неблагодарная... Но... я лично знаю немало фактов, впрямую подтверждающих то, что Горбачёв - ПРЕДАТЕЛЬ!!! И нет ему никакого прощения! Когда-нибудь всё обязательно всплывёт... потомки ужаснутся... А пока: словесная шелуха, журналистская бредятина... разобраться в этом море дезы обычному человеку практически нереально... Ну не может ОДИН человек развалить такую огромную страну. Ну не может! Делайте со мной что хотите - я никогда в это не поверю. И давайте не будем сваливать всех собак на одного человека. Может и предатель, но давайте разберемся - предатель в чем? Задумайтесь по крайней мере - этот человек никогда и ни кому не врал и у него слова не расходились с делом (в отличии от других деятелей). Заклеймить человека просто, а вот разобраться в ситуации и проанализировать - кому это выгодно чтобы так говорили. Я бы не стал говорить штампами про то, что повторяют друг за другом многие уже вот двадцать лет. А по поводу войны и последствий - знаете, думаю, что мы сами заслужили того, что сейчас происходит со страной.
-
Я бы озвучил свой третий вариант: - СССР можно и нужно было спасти. - США и не должны были помогать в "трудные времена", т.к. и являлись инициаторами идеи развала. - давайте уже перестанем клеймить в этом одного и того же бедолагу, повторяя друг за другом: "Горбачев развалил Советский Союз". Я не снимаю с него, конечно, всех полномочий но........ по моему мнению сдал страну все же не конкретный человек, а те кому это было выгодно, т.к. разложение изнутри теми же штатами проводилось уже давно. На сколько это могло быть выгодно самому Горбачеву - судить не берусь. Судя по интервью уважаемый Михаил Сергеевич либо до сих пор является наивным (в чем я лично очень сомневаюсь) либо его мысли озвучены в статье не полностью и их смысл искажен. Мне искренне жаль умного и старого дядьку.
-
Свойства элементов формы
-
Описание основных модулей PAS в составе класса
-
-
Функционал класса 1. Отрисовка в векторах графические примитивы: - линии - прямоугольники - эллипсы 2. Отображать объекты располагая их на слоях и использовать растровые графические подложки 3. Работа с объектами - закрашивание, перемещение, группировка объектов 4. Работа с окном - масштабирование - сохранение данных нанесенных на график в файл/поток - перемещение Базовый класс в графическом виде представляет собой окно с нанесенной на ней графической сеткой. Откомпилированный вариант (exe-файл): MTChart.rar Архив проекта на Delphi 2006: ProjectMTChart.rar Исходники класса находятся в репозитарии классов
-
MTChart Класс реализующий графическое окно метатрейдера 4. Подробнее см. ветку Работа с графикой. MTChart.rar
-
Дополнительные процедуры и функции Используются в наших проектах и разработках. Данные периодически обновляются. MT.RAR
-
Классы для работы с архиватором GZ Класс требуется для компиляции проекта Клиент CME archivators.rar
-
Пример использования файла настроек: uses INIDLL; procedure TForm1.Button2Click(Sender: TObject); var _in:DLLINI; begin _in:=DLLINI.Create; // создание объекта ShowMessage(_in.DBPath); // вывод в окно свойства "Путь к базе данных" _in.free; end;
-
Ниже представлен пример текста модуля для работы с файлом настроек: unit INIDLL; interface uses SysUtils, Classes, IniFiles,Dialogs; type DLLINI = class // объявление класса private ffilename: string; procedure LoadParams; public FFile: TIniFile; DBPath: string; Constructor Create; Destructor Destory(Sender: TObject); end; implementation constructor DLLINI.Create; // при создании объекта var _appath:string; begin _appath:=ExtractFilePath(ParamStr(0)); // каталог exe-файла FFilename:=ExtractFileDir(_appath) + '\MT_DLL.ini'; // имя файла настроек, предполагается наличие файла там же // где находится exe-файл FFile:=TIniFile.Create(FFilename); // создание объекта, реализующего работу с ini-файлом if not FileExists(FFilename) then begin FFile.WriteString('Main', 'DBPath', 'D:\BD_MT\MT4.FDB'); // при отсутствии файла - создаются записи настроек по умолчанию // в данном случае - в секции Main параметр DBPath end; LoadParams; inherited; end; Destructor DLLINI.Destory(Sender: TObject); // разрушение объекта begin FFile.free; inherited; end; procedure DLLINI.LoadParams; // загрузка параметров из файла begin DBPath:=FFile.ReadString('Main', 'DBPath', 'D:\BD_MT\MT4.FDB'); // чтение значения параметра в свойство объекта DBPath end; end.
-
Хорошо, когда все что мы пишем в своих программах работает... но только на нашем компьютере . А как быть с другими, когда в программе куча привязок к каталогам, расположению файлов и т.д.? В данной ветке я Вам расскажу как просто и быстро при помощи Delphi создавать файлы настроек, куда можно будет указать все интересующие нас данные о каталогах, файлах, параметрах и т.д.
-
Процедура для создания записей котировок Далее подробно я уже не буду останавливаться на разборе конкретных примеров - все и так было выше, только буду освещать основные новые и непонятные места. Все данные находятся в базе в начале этого поста. вот текст процедуры ADD_QUOTATION (добавить котировку) в процедуре добавлены параметры (подробно все указано выше) и переменная CNT типа SMALLINT для подсчета количества записей в таблице. begin CNT=0; /* переменная для определения количества записей по заданному условию */ SELECT COUNT(1) FROM quotations WHERE symbol=:par_symbol and timeframe=:par_timeframe and date_time=:par_data INTO :CNT; IF (CNT>0) THEN BEGIN /* если количество записей равно 0, значит добавляем запись */ update quotations set c_volume = :par_volume, c_high = :par_high, c_low = :par_low, c_open = :par_open, c_close = :par_close where symbol = :par_symbol and timeframe = :par_timeframe and date_time=:par_data; END ELSE BEGIN /* если количество записей больше 0, значит редактируем запись */ INSERT INTO quotations(symbol, timeframe, date_time, c_high, c_low, c_open, c_close, c_volume) VALUES (:par_symbol,:par_timeframe,:par_data,:par_high,:par_low,:par_open,:par_close, :par_volume); END SUSPEND; end пример вызова процедуры: execute procedure add_quotation 'EURUSD', 'H4', '2010.02.16 16:00', 1.37748, 1.36442, 1.36690, 1.37541, 10185 можете попробовать вызвать процедуру несколько раз с одними и теми же параметрами. Исключительных ситуаций при этом не возникает - все "отруливает" процедура. В этом можно убедиться (кто знает английский) в окне снизу первый раз идет сообщение inserted все остальные - updated. Таким образом, мыбудем использовать эту процедуру для создания записей в таблице котировок.
-
Тема посвящена работе с файлами, их редактированию, созданию, удалению. В данной ветке мы будем учиться создавать текстовые файлы настроек для управления библиотекой для трейдинга. Целью данной ветки является создание модуля для работы с файлом настроек для разрабатываемой библиотеки. Модуль INIDLL.pas входит в состав проекта библиотеки. Скачать его можно если перейти по этой ветке
-
Данная ветка посвящена основам работы с формами и элементами, расположенными на формах. В этой ветке мы научим Вас создавать формы и работать с элементарными примитивами на формах.
-
Процедуры Пользоваться запросами очень удобно, но только иногда слишком длинные и неудобные они бывают, и при этом их читать не всегда удобно. Чего было-бы проще - сказал базе данных какое-нибудь коротенько слово и передал туда несколько параметров. Такая возможность есть - объявить процедуру, добавить в нее длинный текст запроса, а потом ее вызывать. Создаем новую процедуру. В дереве в левом окне выделяем Процедуры ПКМ - Новая процедура. Справа вверху указываем имя DELETE_HISTORY_BYSYMBOL. в таблице параметров процедуры добавляем новый параметр D_SYMBOL в качестве типа указываем домен SYMBOL. в теле процедуры пишем код: begin delete from quotations where symbol = :D_SYMBOL; end нажимаем на CTRL+F9 (или кнопка с желтой молнией), при выходе на экран сообщения нажимаем Commit: Теперь процедура есть, осталось ее использовать. Открываем окно с редактором запросов, пишем: execute procedure DELETE_HISTORY_BYSYMBOL 'EURUSD' F9, .... Данные в таблице истории котировок по евро удалены. С этого момента мы начинаем нарабатывать нашу базу данных на пример наполнения ее нужного нам для использования в дальнейшем функционала. В начале данной ветки будет выложена конечная версия используемой нами база данных.
-
Язык запросов, пример №5 Добавлять умеем, редактировать тоже, а теперь удаляем. delete from quotations where symbol = 'EURUSD' F9, ..... Комментирую работу запроса: удаление из истории котировок всех данных по евро. Рекомендую очень аккуратно пользоваться запросом DELETE т.к. в случае ошибочного условия фильтрации данных запрос вам удалит лишние данные из таблицы, а восстанавливать удаленное - всегда сложно, а иногда и невозможно.
-
Язык запросов, пример №4 Добавлять научились, а теперь редактируем существующую запись. update quotations set c_volume = 10185, c_high = 1.37748, c_low = 1.36442, c_open = 1.36690, c_close = 1.37541 where symbol = 'EURUSD' and timeframe = 'H4' and date_time='2010.02.16 16:00' F9, зеленая "галочка", подтверждаем транзакцию, смотрим результаты работы запроса на закладке Данные (если до этого форма была открыта - Refresh на панели инструментов с данными). Обновились данные, отлично (в данном случае -изменился объем на свече).