Как получить объект через GlobalDictionary?

Для передачи объекта через GlobalDictionary его необходимо создать, добавить в GlobalDictionary и затем прочитать, используя astype с указанием типа получаемого объекта.

В примере далее, создается объект книги Excel, который будет использоваться разными индикаторами и стратегиями совместно. Такой подход позволит избежать повторного открытия одной и той же книги. Таймер индикатора выполняет сохранение рабочей книги в файл, избавляя от этой работы другие инструменты теханализа. Во время оптимизации стратегии такое разделение труда позволяет экономить достаточно много времени и делает работу с Excel более удобной.

// Gelium_Helper 2013.09.20
Using elsystem; Using elsystem.collections; Using elsystem.io; using elsystem.office.excel;
Input: p_ExcelFile("C:\Chart\Gelium_Trader.xlsm"), p_ExcelVisible(true), p_ExcelDict("Gelium_Treader_Excel"), p_SaveTimer(60), p_Debug(0);
Vars: GlobalDictionary GExcel(Null), Workbook WB( NULL );
Method void ExcelOpen() begin If p_ExcelFile <> "" then begin Try GExcel = GlobalDictionary.Create(); If GExcel.Contains(p_ExcelDict) = False then begin If p_Debug > 0 then print("Открываем: ", p_ExcelFile); WB = new Workbook; WB.FileName = p_ExcelFile; WB.Load = true; GExcel.Add(p_ExcelDict, WB); end else begin WB = GExcel.Items[p_ExcelDict] astype Workbook; If p_Debug > 0 then print("Используем открытый: ", WB.FileName); end; WB.SaveOnClose = true; WB.Visible = p_ExcelVisible; // Показываем окно Excel WB.Load = true; // Загружаем файл для работы If p_Debug > 0 then print("Файл открыт успешно: ", p_ExcelFile); Timer1.Interval = p_SaveTimer * 1000; If Timer1.Interval < 1000 then Timer1.Interval = 1000; Timer1.Enable = (p_SaveTimer > 0); catch (exception ex) print("Ошибка открытия файла Excel: ", ex.Message); finally end; end; end;
method void Timer1_Elapsed( elsystem.Object sender, elsystem.TimerElapsedEventArgs args ) begin Try If p_Debug > 0 then print("Сохраняем: ", p_ExcelFile); If GExcel.Contains("Gelium_Treader_Excel_Save") = true then if GExcel.Items["Gelium_Treader_Excel_Save"] astype int = 1 then begin WB.Save(); GExcel.Items["Gelium_Treader_Excel_Save"] = 0; end; catch (exception ex) print("Ошибка сохранения файла Excel: ", ex.Message); ExcelOpen(); finally end; end;
method void AnalysisTechnique_Initialized( elsystem.Object sender, elsystem.InitializedEventArgs args ) begin ExcelOpen(); end;
If false then Plot1(0);

Для души и разума.

Цитаты Роберта Кийосаки - Профессиональный игрок или профессиональный инвестор в конечном счете стремится играть деньгами других людей.

- Когда вы инвестируете с надеждой, что в будущем что-нибудь произойдет, вы играете в азартную игру.

- Сегодня я богат именно благодаря тому, что я сделал в свободное время.

Далее...

- Основной ошибкой, которую совершают люди, является инвестирование в активы, которые пользуются наибольшей популярностью. Покупая то, что покупают все, вы не сможете преуспеть. Вам нужно уметь находить прекрасные инвестиции, которые другие люди упускают.

- Когда дело касается денег, всегда найдется множество советчиков, у которых нет за душой и ломаного гроша.

- Лучшая финансовая информация не всегда доступна. Надо отправиться на ее поиски.

- Профессиональному инвестору необходимо знать 3 вещи: когда войти на рынок, когда уйти с рынка и как забрать свои деньги с игорного стола.

- Десятки тысяч студентов вышли из школ бизнеса, где их учили, что думать не имеет смысла.

- Отдаешь свои деньги в чужие руки — и они будут работать на других людей, прежде чем начнут работать на тебя.

- Если вы не знаете, что делать со своими деньгами, положите их в банк и никому не говорите, что у вас есть деньги для инвестирования. Если вы не знаете, что делать со своими деньгами, то найдутся миллионы людей, которые знают, как с ними поступить. По этому поводу у каждого есть свое мнение и готовый совет относительно того, как распорядиться Вашими деньгами.

- Наихудшие инвестиции достаются нетерпеливым инвесторам.

- Меня сделали богатым не деньги, а инвестирование времени и инвестирование денег, когда у меня было очень мало денег.

- В бизнесе гораздо выгодней занимать деньги, чем сберегать их.

- Как капитан собственного ковчега, вы обязаны страховать все, во что вы инвестируете.

- Самый ценный актив — время. Большинство людей не могут его правильно использовать. Они упорно трудятся, делая богатых богаче, но не прикладывают усилий, чтобы сделать богатыми себя.




Перепечатка авторских материалов сайта без указания ссылки на
сайт Gelium.net запрещена.

Pavel Gelium 2000-2017 © All rights reserved.