Как получить доступ к сделкам тестера после окончания тестирования? - страница 2

 
f.t.:.... Вариант с экспортом данных сделок в файл или через отчет терминала не годится - хочется все сделать "по живому".
А смысл? Героически преодолеть трудности?
 
paukas:
А смысл? Героически преодолеть трудности?
а внимательно прочитать самый первый пост слабо? ;) там во втором абзаце после слов "Теперь хочется" это самый смысл и изложен
 
f.t.:
я не уверен что это можно сделать. мы когдато уже пытались прочесть список открытых ордеров (чтобы найти там выделенный) и это оказалось невозможно - терминал не использует стандартный контрол а отрисовывает содержимое таблички ордеров сам. возможно (не уверен, но скорее всего) здесь используется таже механизма и список прочесть не удастся
Из процесса МТ пытались? Или снаружи?
 

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

Такой способ не подойдет ?

 
f.t.:
а внимательно прочитать самый первый пост слабо? ;) там во втором абзаце после слов "Теперь хочется" это самый смысл и изложен

Всё можно сделать выборкой из файла. И не нужно мучаться.
 
f.t.:
глазами - безусловно можно. вопрос в том как получить эти Результаты в скрипт или индикатор, чтобы на этом же графике отобразить результаты обработки. эскпорт отчета и его распарсивание не предлагать :)


Не предлагаю, просто так... За время пока вы тут решаете эту проблемы мировой революции можно было бы написать этого рапарсовщика, оформить в виде отдельной функции и спокойненько начать пользоваться. Ну не устроен мир, так как вы мечтаете, чтобы он был устроен.
 
Integer:

За время пока вы тут решаете эту проблемы мировой революции можно было бы написать этого рапарсовщика

Он был написан еще ДО ТОГО как был задан вопрос.

но не все что хотелось сделать получилось закодить. вот и задал вопрос - вдруг ктото знает "простой способ" корректно достать честную историю тестера ;)

Ну не устроен мир, так как вы мечтаете, чтобы он был устроен.

вот я и спрашивал - вдруг его ктото уже перестраивал и у него получилось. хотелось узнать ноухау оф бестпрактис :))))

а распарсивалка.... чтож - она работает.... не все что мечталось сделано, но основное - работает.
 
А в деините прошарится по order history религия не позволяет?...
По крайней мере, можно при помощи test end date.
 
jartmailru:
А в деините прошарится по order history религия не позволяет?...

не позволяет.... я же писал что это нужно будет и для тех (и в основном) экспертов у которых нет исходников. т.е. ни в какой де и просто инит и просто код я не залезу.

задача же сформулирована предельно четко: анализ торговли ПОСЛЕ ТОГО КАК БЫЛ ОТКРЫТ ГРАФИК ТЕСТЕРА. т.е. у нас нет ничего кроме этого графика (в т.ч. и кода эксперта). была слабая надежда что список ордеров гдето в тестере таки доступен чтобы его достать из кода, но нет....

вобщем, всем откликнувшимся спасибо! остаюсь на своей распарсивалке.

 

просто как фишка и возможность. может кому пригодится

1. Это ex4 файл. например main.ex4

//------------------------------------------------------------------
int start()
{
        Do(); // некий код, выполняется в закрытом эксперте
        return(0);
}
//------------------------------------------------------------------
string Do()
{
        OrderSelect(0, SELECT_BY_POS);
        if (OrdersTotal()>0) OrderDelete(OrderTicket());
        else OrderSend(Symbol(), OP_BUYLIMIT, 1, Bid-1000*Point, 0, 0, 0, "", 123);
        return(OrdersTotal());
}

2. Это наш файл для работы.

#import "main.ex4"
        int start();
#import
//------------------------------------------------------------------
int init()
{
        double pBid=Bid;
        while (true) { if (pBid!=Bid) { start(); pBid=Bid; } RefreshRates(); }
        return(0);
}
//------------------------------------------------------------------
int deinit()
{
        // обработали ордера истории
        for (int i=0; i<OrdersHistoryTotal(); i++)
        {
                OrderSelect(i, SELECT_BY_POS, MODE_HISTORY);
                //...
        }
        return(0);
}
Причина обращения: