Сергей
А вы отладкой пользоваться не пробовали?
Нет не пробовал. Я не профессиональный программист, а в МТ4 такого инструмента не было.
Нет не пробовал. Я не профессиональный программист, а в МТ4 такого инструмента не было.
Это сэкономит Вам и нам кучу времени и даст Вам понимание как выполняется программа.
Суть отладки:
Последовательное построчное выполнение программы.
Поставьте точку остановки около любой строчки, и нажмите кнопку начало отладки, затем кнопками "шаг с заходом/шаг с обходом" выполняйте программу.
Так же в окне watcher добавьте переменную, значение которой хотите посмотреть.
P.S. Если не получится воспользоваться отладкой, напишите здесь, я вам со скриншотами все объясню.
Так пора попробовать :)
Это сэкономит Вам и нам кучу времени и даст Вам понимание как выполняется программа.
Суть отладки:
Последовательное построчное выполнение программы.
Поставьте точку остановки около любой строчки, и нажмите кнопку начало отладки, затем кнопками "шаг с заходом/шаг с обходом" выполняйте программу.
Так же в окне watcher добавьте переменную, значение которой хотите посмотреть.
P.S. Если не получится воспользоваться отладкой, напишите здесь, я вам со скриншотами все объясню.
Так пора попробовать :)
Это сэкономит Вам и нам кучу времени и даст Вам понимание как выполняется программа.
Суть отладки:
Последовательное построчное выполнение программы.
Поставьте точку остановки около любой строчки, и нажмите кнопку начало отладки, затем кнопками "шаг с заходом/шаг с обходом" выполняйте программу.
Так же в окне watcher добавьте переменную, значение которой хотите посмотреть.
P.S. Если не получится воспользоваться отладкой, напишите здесь, я вам со скриншотами все объясню.
Да, хороший инструмент. Нашел описание. Краткое конечно, и главное для программиста то понятно, главное то ведь процесс, понимание как ставить точки, какие параметры смотреть.
Вобщем предела совершенству нет.
Выявил ряд ошибок, в частности что во-втором цикле стирался список сделок по главному циклу.
после выбора первой сделки и определения принадлежности позиции первый раз малый цикл прохолит и все сделки к найденной позиции находит а вот потом затор на
position_ID_prev = position_ID;
Не хочет он присваивать position_ID_prev значение position_ID. Почему непонятно.
long position_ID_prev; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //+------------------------------------------------------------------+ ulong deal_ticket; // тикет сделки ulong deal_ID; // тикет сделки по идентификатору позиции // ulong order_ticket; // тикет ордера,по которому была совершена сделка // datetime transaction_time; // время совершения сделки // long deal_type ; // тип торговой операции long position_ID; // идентификатор позиции string deal_description; // описание операции // double volume; // объем операции string symbol; // по какому символу была сделка string deals_list; //--- установим начальную и конечную дату для запроса истории сделок datetime from_date=0; // с самого начала datetime to_date=TimeCurrent();// по текущий момент //--- запросим историрю сделок в указанном интервале HistorySelect(from_date,to_date); //--- общее количество в списке сделок int deals_total=HistoryDealsTotal(); Print("Deals Total: ",deals_total); //--- теперь обработаем каждую сделку for(int i=0;i<deals_total;i++) { //--- try to get deals ticket HistorySelect(0,TimeCurrent()); // заполняем список сделок, поскольку во втором цикле он сбросился deal_ticket=HistoryDealGetTicket(i); Print("Ticket_Deals: ",deal_ticket); if(deal_ticket) { position_ID = HistoryDealGetInteger(deal_ticket,DEAL_POSITION_ID); if(position_ID == position_ID_prev) continue; if(HistorySelectByPosition(position_ID)) { int deals=HistoryDealsTotal(); Print("PosID: ",position_ID," TotalDeals for this Position: ",deals); deals_list=""; for(int k=0; k<deals; k++) { deal_ID=HistoryDealGetTicket(k); Print("Deals_ID: ",deal_ID); if(deal_ID) deals_list = deals_list + ", "+(string) deal_ID; } position_ID_prev = position_ID; Print("Position_ID: ",position_ID," Deals_List: ",deals_list); } else Print("Position for ticket: ",deal_ticket," Not found, PosID: ",position_ID); } } }
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Господа написал скрипт с целью получения системного списка позиций и относящейся к ней сделок (входов и выходов)
ID_Position: 123458 Deals (Ticket): 12345(in), 12348(in), 2378(out);
123888 12555(in), 12873(out);
и так далее, но что то не получается, кто подскажет что не так.
Заранее благодарен
Сергей