PDA

Просмотр полной версии : Как можно получать данные об объемах и дельте в свой робот!?



Naruto
22.12.2013, 18:31
Предлагаю обсуждать здесь кто как получает данные об объемах и дельте (покластерно как в clusterdelta) в свой робот !!!
Ну или либо хотя бы кто как предполагает как это можно сделать!?!

Mr.Bags
23.12.2013, 07:41
Через вызов функци ICustom с перечислением всех параметров вызываемого индикатора
Индикаторы так можно получить Volume, Delta и CumDelta примеры вызовов есть в этой ветке.

sanek_c
08.01.2014, 00:11
Предлагаю обсуждать здесь кто как получает данные об объемах и дельте (покластерно как в clusterdelta) в свой робот !!!
Ну или либо хотя бы кто как предполагает как это можно сделать!?!

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

int start(){
double ZnachenieUp=0,ZnachenieDown=0;
int RealMarketVolume;
string SMB=Symbol();
string col;
for(int i=10;i>=0;i--){
ZnachenieUp=iCustom(NULL,0,"volume1",RealMarketVolume,0,i);
ZnachenieDown=iCustom(SMB,0,"volume1",1,i);
col=iCustom(SMB,0,"volume1",1,i);

Alert("На свече № = ",i," ZnachenieUp = ",RealMarketVolume);
}
Alert("----------------------------------------");
Comment (RealMarketVolume);
return(0);

sanek_c
08.01.2014, 01:01
OOPS извиняюсь :-) видимо НГ еще из головы не вылетел

вот работает :-)

int start(){
double ZnachenieUp=0,ZnachenieDown=0;
int CumDelta;
string SMB=Symbol();


for(int i=33;i==0;i--){
ZnachenieUp=iCustom(SMB,0,"ClusterDelta_Volume",CumDelta,0,i);
ZnachenieDown=iCustom(SMB,0,"ClusterDelta_Volume",1,i);


Alert("На свече № = ",i," ZnachenieUp = ",ZnachenieUp);
}
Alert("----------------------------------------");
Comment (CumDelta);
return(0);
}


Вкалывают роботы а не человек ))

martin92
29.01.2014, 18:59
Здравствуйте. Подскажите пожалуйста в какой ветке можно найти примеры вызовов параметров индикатора Delta ?

Alex777
05.02.2014, 14:47
Да тоже интересуют примеры и описание API если есть к CD
нужны объемы в NT7

Manager777
27.02.2014, 20:27
Всем привет! Есть ли способ извлечения данных из КД в txt? В формате время открытия бара(кластера)/цена/объем?
т.е. например имеется бар (кластер) размером 5 ценовых уровней, в таком случае формат следующий:
mmddyyyy, hhmm, 1.3750, 100
mmddyyyy, hhmm, 1.3749, 150
mmddyyyy, hhmm, 1.3748, 148
mmddyyyy, hhmm, 1.3747, 50
mmddyyyy, hhmm, 1.3750, 3
Либо кто сможет предложить альтернативные способы извлечения таких данных (готовые разработки/другие платформы)?

azar96
17.09.2015, 19:10
Всем, здравствуйте. То же интересует возможность получения данных от объема и дельты в свой робот. Т.е. как я могу получить программно доступ к показаниям индикатора. Спасибо за помощь.

TheXpert
18.09.2015, 09:54
С помощью функции iCustom.
Вот можете пример посмотреть -- http://ruforum.mt5.com/threads/65042-prostoy-impulsniy-sovetnik-na-deltah

azar96
18.09.2015, 14:55
С помощью функции iCustom.
Вот можете пример посмотреть -- http://ruforum.mt5.com/threads/65042-prostoy-impulsniy-sovetnik-na-deltah

Спасибо большое за отклик. Буду разбираться.

ashkasem
16.12.2015, 10:00
как сделать чтобы у всех индикаторов clusterdelta с самого начала была бы выставлена галочка на /импорт данных в dll/ а то каждый раз это напрягает)

voron_026
28.09.2017, 22:39
Здравствуйте. как можно получить данные по кластерам для своего робота?

Polymorph
08.08.2018, 20:06
Здравствуйте. Написал такой код для советника проверить, как что работает.

void OnTick()
{
if(Test==0)
{
double Volume_1=iCustom(Symbol(),0,"ClusterDelta_PremiumVolume_4.0","-- -- ","AUTO","3"," ",730,0,1);
double Volume_2=iCustom(Symbol(),0,"ClusterDelta_PremiumVolume_4.0","-- -- ","AUTO","3"," ",730,0,2);
double Volume_3=iCustom(Symbol(),0,"ClusterDelta_PremiumVolume_4.0","-- -- ","AUTO","3"," ",730,0,3);
Print(Volume_1," ",Volume_2," ",Volume_3);
Test=1;
}

}
В итоге всегда значения 0.
Смотрел примеры в других темах, кто-то жалуется, кто-то нет. Подскажите в чем беда?

deniss
08.08.2018, 21:11
Здравствуйте. Написал такой код для советника проверить, как что работает.

void OnTick()
{
if(Test==0)
{
double Volume_1=iCustom(Symbol(),0,"ClusterDelta_PremiumVolume_4.0","-- -- ","AUTO","3"," ",730,0,1);
double Volume_2=iCustom(Symbol(),0,"ClusterDelta_PremiumVolume_4.0","-- -- ","AUTO","3"," ",730,0,2);
double Volume_3=iCustom(Symbol(),0,"ClusterDelta_PremiumVolume_4.0","-- -- ","AUTO","3"," ",730,0,3);
Print(Volume_1," ",Volume_2," ",Volume_3);
Test=1;
}

}
В итоге всегда значения 0.
Смотрел примеры в других темах, кто-то жалуется, кто-то нет. Подскажите в чем беда?

Основная проблема в асинхронном вызове. При вызове индикатора он подает запрос и ожидает время для загрузки данных. Если Вы загружаете 730 дней, то это наверное секунд 10-20.

но, я по прежнему думаю, что iCustom не самая лучшая реализация. Я постараюсь сделать версию для iCustom для советников, потому что вопросов все больше...

Polymorph
08.08.2018, 22:12
Основная проблема в асинхронном вызове. При вызове индикатора он подает запрос и ожидает время для загрузки данных. Если Вы загружаете 730 дней, то это наверное секунд 10-20.

но, я по прежнему думаю, что iCustom не самая лучшая реализация. Я постараюсь сделать версию для iCustom для советников, потому что вопросов все больше...

Я ставил и 0, и 30 дней. Взял премиум исключительно чтобы писать советников на основе ваших индикаторов. т.к. руками я не торгую. Да и тестировать стратегии мне проще ботами. Может есть на первое время какие нибудь предложения как можно обратиться к индикатору из советника?

ViktorBragov
13.08.2018, 17:44
Здравствуйте.
Удалось ли как разрешить данную ситуацию, столкнуться с той же проблемой. может есть какие обходные пути?

Polymorph
13.08.2018, 18:19
Здравствуйте.
Удалось ли как разрешить данную ситуацию, столкнуться с той же проблемой. может есть какие обходные пути?

Думаю взять код индикатора и вписать его в советник, только выкинуть построение. Так чтобы он данные просто получал с сервера в массив а потом с этим массивом работать уже советнику

deniss
14.08.2018, 14:16
Здравствуйте.
Удалось ли как разрешить данную ситуацию, столкнуться с той же проблемой. может есть какие обходные пути?

Господа,

есть несколько вариантов решения.

1. Как указал Polymorph - я могу убрать из индикатора все лишнее - оставить только получение данных (разовое и сеансовое), чтобы готовый код вставлять в свой советник
2. Можно индикатор заставить писать объемы в файл, второй индикатор научить читать объемы из файла и его вызывать через iCustom

Проблема индикаторов стандарт заключается в том, что при загрузке данных терминал подвисает ожидая конца загрузки, но в советнике можно загружать данные напрямую (без premium dll). По этому можно загрузку данных включить прямо в советник, как это сделано в советнике ClusterDelta_Server

Polymorph
14.08.2018, 19:51
Господа,

есть несколько вариантов решения.

1. Как указал Polymorph - я могу убрать из индикатора все лишнее - оставить только получение данных (разовое и сеансовое), чтобы готовый код вставлять в свой советник
2. Можно индикатор заставить писать объемы в файл, второй индикатор научить читать объемы из файла и его вызывать через iCustom

я думаю самый удобный и возможно быстрый в смысле скорости работы советника это первый вариант. Возможно даже не нужен объем текущего (нулевого) бара, чтобы постоянно не связываться с сервером и сэкономить время компиляции.
deniss, можете написать такой код? Мне, как любителю, потребуется много времени чтобы переварить код индикатора.

deniss
15.08.2018, 10:06
я думаю самый удобный и возможно быстрый в смысле скорости работы советника это первый вариант. Возможно даже не нужен объем текущего (нулевого) бара, чтобы постоянно не связываться с сервером и сэкономить время компиляции.
deniss, можете написать такой код? Мне, как любителю, потребуется много времени чтобы переварить код индикатора.

Вот, проверьте, все ли понятно по коду

постарался покомментить, если что не так - спрашивайте

10583

Polymorph
15.08.2018, 20:28
Вот, проверьте, все ли понятно по коду

постарался покомментить, если что не так - спрашивайте


Спасибо. Проверил, вроде все работает. Чуть-чуть "подправил" чтобы запустилось.
Конкретно служебный блок посмотрите.

в start'е забыл закоментить принт.

Основной тест начнется когда начну свой код писать. Но думаю все будет ок
10585

deniss
16.08.2018, 12:11
Спасибо. Проверил, вроде все работает. Чуть-чуть "подправил" чтобы запустилось.
Конкретно служебный блок посмотрите.

в start'е забыл закоментить принт.

Основной тест начнется когда начну свой код писать. Но думаю все будет ок


----------
while(!GlobalVariableCheck(indicator_id));// Было while(GlobalVariableCheck(indicator_id)); Зависал на этом цикле
GlobalVariableSet(indicator_id,1);
----------
Эта часть нужна для того, чтобы у каждого индикатора был уникальный индекс в системе. При обращении из робота теоретически можно вообще не проверять ее.

ViktorBragov
26.08.2018, 13:47
спасибо за код.
подскажите пожалуйста что добавить чтобы получить и данные кумулятивной дельты

ashkasem
27.08.2018, 14:20
Дарова ! Как вызвать для советника отрицательное значение дельты? С помощью какого типа? double и int меньше нуля не показывают даже если дельта в минусе

ashkasem
27.08.2018, 14:24
С Индикатора премиум не вызывает, а с кластерикс все норм

nikelodeon
18.10.2018, 19:31
Всем привет, чувствую соя тема.... Я Кластер дельту использую в робот уже несколько лет с помощью проекта ClusterX который позволяет вызывать индикаторы через iCustom с возможность сохранение истории и т.д. К сожалению данный проёкт уже не подджерживается и не развивает НО до сих пор работает. За что отдельное спасибо Денису и его команде. Сейчас с новыми индикаторами тоже можно организовать вызов, но рекомендую закоментить ВСЕ параметры, а оставить только те которые важны при вызове (когда вызываем индикатор по конкретному инструменту и т.д.). Данный КД я использу в системе ИИ и сам уже не открывал сделок давно, всё робот, всё он....... Но есть одна проблемка, если Вы поможете мне её решить, я помогу Вам построить робота на ИИ и запустить его на реале.
Просил Дениса, но он походу занят и всё никак не решим эту проблему до конца, а вместе с тем те данные которые я хочу получить будут для ТС иметь ОЧЕНЬ важный характер. Так что если есть инициативные люди знающие MQL на отлично, готов вступить в дисскуссию.

nikelodeon
16.11.2018, 22:30
И снова здравствуйте, подготовил я знамо Дпог к возможности вызова его из другого индикатора, но при попытке вызова нулевого буфера ДПОГ никаких ошибок не происходит но и данные получить не могу. Я так понимаю что возвращается Емптувалюе..... кто в теме :-) Уверен для более шаристого программиста чем я думаю там буквально поправить. Жаль что нельзя крепить файлы к сообщениям. Яб скинул индюк :-(