Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Некоторые вопросы касательно структуризации данных


Автор: hoz 9.9.2014, 23:08
 Имеются некоторые структуры, которые у меня были структурами, но, на данный момент, я так и не решил как это будет выглядеть. Этот вопрос я и хочу задать. Вот что имеется, на данный момент:

Код

struct Position_Properties
{
datetime    gdt_Expiration;      // Срок истечения отложенного ордера
datetime    gdt_OpenTime;        // Время открытия выбранной позиции
double      gd_OpenPrice;        // Цена открытия
double      gd_Lots;             // Объём позиции на открытие
double      gd_CurSL;            // Текущий Stop Loss выбранной позиции
double      gd_NewSL;            // Новый Stop Loss выбранной позиции
double      gd_CurTP;            // Текущий Take Profit выбранной позиции
double      gd_NewTP;            // Новый Take Profit выбранной позиции
int         gi_CurTicket;        // Тикет выбранного ордера
int         gi_Type;             // Тип торговой операции
int         gi_Slippage;         // Максимально допустимое отклонение цены для рыночных ордеров
int         gi_Magic;            // Магический номер
string      gs_Comment;          // Комментарий
string      gs_Symbol;           // Наименование фин. инструмента, с которым производится операция
ulong       gu_Duration;         // Длительность позиции в секундах
}


Когда я планировал при написании структуру, я понимал, что придётся некоторые вещи дорабатывать. И все поля структуры будут массивами по ходу.
 Ситуация такая, что я думал, чтоб каждое поле было в виде массива типа:

Код

struct Position_Properties
{
datetime    [gi_Ticket][gdt_Expiration];      // Срок истечения отложенного ордера
datetime    [gi_Ticket][gdt_OpenTime[;        // Время открытия выбранной позиции
double      [gi_Ticket][gd_OpenPrice[;        // Цена открытия
double      [gi_Ticket][gd_Lots[;             // Объём позиции на открытие
double      [gi_Ticket][gd_CurSL[;            // Текущий Stop Loss выбранной позиции
double      [gi_Ticket][gd_NewSL[;            // Новый Stop Loss выбранной позиции
double      [gi_Ticket][gd_CurTP[;            // Текущий Take Profit выбранной позиции
double      [gi_Ticket][gd_NewTP[;            // Новый Take Profit выбранной позиции
int         [gi_Ticket][gi_CurTicket[;        // Тикет выбранного ордера
int         [gi_Ticket][gi_Type[;             // Тип торговой операции
int         [gi_Ticket][gi_Slippage[;         // Максимально допустимое отклонение цены для рыночных ордеров
int         [gi_Ticket][gi_Magic[;            // Магический номер
string      [gi_Ticket][gs_Comment[;          // Комментарий
string      [gi_Ticket][gs_Symbol[;           // Наименование фин. инструмента, с которым производится операция
ulong       [gi_Ticket][gu_Duration[;         // Длительность позиции в секундах
}


Но тут есть нестыковка. В том, что в массивах данные должны быть одного типа. Общее для всех измерение gi_Ticket имеет тип int. Кроме того есть ещё измерения с типом double, string, datetime и  ulong. Выходит что в виде массива данную структуру преобразовать не выйдет. Какие ещё есть способы реализации подобной задачи?

Я думал, сделать в виде кучи объектов одной структуры (класса), но это не совсем вариант. Т.к. с массивом то удобнее работать.

Автор: sQu1rr 9.9.2014, 23:25
Немного не понял чем не угодил такой вариант
Код

struct Position_Properties {
...
};
...
Position_Properties props[gi_Ticket];
props[0].gi_Magic = 42;
props[0].gu_Duration = 666;
props[1].gu_Duration = 777;
props[gi_Ticket-1].member = value;

?

Автор: hoz 10.9.2014, 11:41
Цитата(sQu1rr @  9.9.2014,  23:25 Найти цитируемый пост)
Немного не понял чем не угодил такой вариант

На самом деле я про такой вариант как-то не додумался. Получается, в таком случае props[gs_Ticket] будет являться массивом объектов класса Position_Properties, верно?

Автор: kemiisto 10.9.2014, 11:44
hoz, Вам бы, ей богу, что-нибудь почитать фундаментальное по алгоритмам и структурам данных... Вирта того же. А то если у Вас в таких местах возникают такие идеи...

Автор: hoz 10.9.2014, 12:58
kemiisto, Вы http://mat.net.ua/mat/Virt-Algoritmi-programmi.htm имеете ввиду?

Автор: kemiisto 10.9.2014, 13:11
hoz, ага. "Алгоритмы + структуры данных = программы". Можно старую версию (середины 80-х что-ли), можно новую (середины 2000-х). Не суть. Там коротко, хоть и не на С/С++, а на Pascal/Oberon.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)