Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Есть возможность протестировать программу перед покупкой. Узнай как!
hoz
1936
hoz 2014.09.14 07:48 

 Решил я переделать чутка некоторые свои структуры. Хочется, чтоб они хранили нужные данные требуемой позиции, заданных объектов и тд. Возьмём, например, структуру данных параметров ордер:

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;         // Длительность позиции в секундах
};

 Меня, в принципе, устраивает всё, если не учесть того, что нет возможности привязать данные к чуму-то. Объясню по подробнее на примере модификации ордеров:

 В функции OnTick():

   for (int li_Ord = OrdersTotal() - 1; li_Ord >= 0; li_Ord--)
   {
         CPosMan.CheckMyOrdersBased(li_Ord);

         CPosTrail.TrailingByMA (OrderTicket(), _Period, 21, 0, 1, 0, 1, 30);
   }

 Данный метод выбирает ордер, если она есть, и, получает все необходимые данные о соответствующем ордере и загоняет эти данные в структуру Position_Properties. Таким образом далее мы имеет в структуре все актуальные данные, которыми располагает структура. Всё, казалось бы хорошо, но не все данные у структуры есть. Например,:

datetime    gdt_OpenTime;        // Время открытия выбранной позиции
string      gs_Symbol;           // Наименование фин. инструмента, с которым производится операция
ulong       gu_Duration;         // Длительность позиции в секундах

 Да и переменную gs_Comment; желательно хранить в структуре, а не в ордере. Получается, что нужно переписать структуру. Сделать её в виде 2-мерного массива? В первом измерении - индекс ордера, а во-втором - данные ордера. Верно? Но как это лучше реализовать, я не совсем понимаю. Посоветуйте, кто уже так делал?

/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий