[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 428

 

Можно ли получить прирост быстродействия советника, если используемый в нём индикатор, вызываемый через iCustom(), полностью перенести в dll? Стоит ли такая игра свеч? Всегда ли dll быстрее чем индикатор? И какие особенности работы с массивом-таймсерией Close[] в dll?


Да, ещё, добавлю вопрос: как оформлять в dll функцию IndicatorCounted().

 
gyfto:

1. Можно ли получить прирост быстродействия советника, если используемый в нём индикатор, вызываемый через iCustom(), полностью перенести в dll? Стоит ли такая игра свеч? Всегда ли dll быстрее чем индикатор? И какие особенности работы с массивом-таймсерией Close[] в dll?


2. Да, ещё, добавлю вопрос: как оформлять в dll функцию IndicatorCounted().

Интересная тема. Но...

1. Не знаю не пробовал, но всеравно очень сомневаюсь, может быть незначительный прирост будет. Из того, что видел, индикаторы просто перенесенные в dll  не очень то быстро работали, а вот оптимизация кода самого индиктора позволяет добиться очень хороших результатов и на mql.

2. Тут не схитришь, надо передавать значение IndicatorCounted(), Bars, в dll разруливать пересчитывать ли все или только один бар. Можно вместо IndicatorCounted() и Bars передвать уже посчитанный Limit.

Однозначно,  если индикатор очень тормознутый, что делает его нереальным для использования в советниках (не получится тестировать), то перенос в dll не поможет.

 
gyfto:

1. Можно ли получить прирост быстродействия советника, если используемый в нём индикатор, вызываемый через iCustom(), полностью перенести в dll? Стоит ли такая игра свеч? Всегда ли dll быстрее чем индикатор? И какие особенности работы с массивом-таймсерией Close[] в dll?
2. Да, ещё, добавлю вопрос: как оформлять в dll функцию IndicatorCounted().

1. Конечно, можно и нужно. Раз в 20 быстрее вычисления. Не говрю уж об удобной отладке и безграничных возможностях С++ и других нормальных языков.

2. Она там не нужна. 

 
Почему линия ломается вниз? Мне нужен отрезок по EMPTY. код с ошибкой для Н1 (это я сам вижу), а как исправить EMPTY???
SetIndexStyle(0,EMPTY);
 
Почему линия ломается вниз? Мне нужен отрезок по EMPTY. код (стр 427) с ошибкой для Н1 (это я сам вижу), а как исправить EMPTY???
SetIndexStyle(0,EMPTY);
 
kopeyka:
Почему линия ломается вниз? Мне нужен отрезок по EMPTY. код с ошибкой для Н1 (это я сам вижу), а как исправить EMPTY???

Попробуйте в ините установить SetIndexEmptyValue(), варианты: 0, EMPTY_VALUE

 
Integer:

Попробуйте в ините установить SetIndexEmptyValue(), варианты: 0, EMPTY_VALUE


Спасибо...ща попробую)):
 
Integer:

...

1. Не знаю не пробовал...

Попробовал. ЕМА на mql и в dll.

01:46:19 1 EURUSD,M15: Alert: dll: 109
01:46:19 1 EURUSD,M15: Alert: 1
01:46:19 1 EURUSD,M15: Alert: mql: 109
01:46:19 1 EURUSD,M15: Alert: dll: 0
01:46:19 1 EURUSD,M15: Alert: 2
01:46:19 1 EURUSD,M15: Alert: mql: 156
01:46:20 1 EURUSD,M15: Alert: dll: 202
01:46:20 1 EURUSD,M15: Alert: 3
01:46:20 1 EURUSD,M15: Alert: mql: 172
01:46:20 1 EURUSD,M15: Alert: dll: 0
01:46:20 1 EURUSD,M15: Alert: 4
01:46:20 1 EURUSD,M15: Alert: mql: 172
01:46:20 1 EURUSD,M15: Alert: dll: 171
01:46:20 1 EURUSD,M15: Alert: 5
01:46:20 1 EURUSD,M15: Alert: mql: 78
01:46:20 1 EURUSD,M15: Alert: dll: 78
01:46:20 1 EURUSD,M15: Alert: 6
01:46:21 1 EURUSD,M15: Alert: mql: 202
01:46:21 1 EURUSD,M15: Alert: dll: 94
01:46:21 1 EURUSD,M15: Alert: 7
01:46:21 1 EURUSD,M15: Alert: mql: 172
01:46:21 1 EURUSD,M15: Alert: dll: 94
01:46:21 1 EURUSD,M15: Alert: 8
01:46:21 1 EURUSD,M15: Alert: mql: 234
01:46:21 1 EURUSD,M15: Alert: dll: 15
01:46:21 1 EURUSD,M15: Alert: 9
01:46:21 1 EURUSD,M15: Alert: mql: 78
01:46:22 1 EURUSD,M15: Alert: dll: 94
01:46:22 1 EURUSD,M15: Alert: 10
01:46:22 1 EURUSD,M15: Alert: mql: 172
01:46:22 1 EURUSD,M15: Alert: dll: 93
01:46:22 1 EURUSD,M15: Alert: 11
01:46:22 1 EURUSD,M15: Alert: mql: 93
01:46:22 1 EURUSD,M15: Alert: dll: 78
01:46:22 1 EURUSD,M15: Alert: 12
01:46:22 1 EURUSD,M15: Alert: mql: 78
01:46:22 1 EURUSD,M15: Alert: dll: 78
01:46:22 1 EURUSD,M15: Alert: 13
01:46:23 1 EURUSD,M15: Alert: mql: 250
01:46:23 1 EURUSD,M15: Alert: dll: 156
01:46:23 1 EURUSD,M15: Alert: 14
01:46:23 1 EURUSD,M15: Alert: mql: 187
01:46:23 1 EURUSD,M15: Alert: dll: 0
01:46:23 1 EURUSD,M15: Alert: 15
01:46:23 1 EURUSD,M15: Alert: mql: 78
01:46:23 1 EURUSD,M15: Alert: dll: 171
01:46:23 1 EURUSD,M15: Alert: 16
01:46:24 1 EURUSD,M15: Alert: mql: 266
01:46:24 1 EURUSD,M15: Alert: dll: 0
01:46:24 1 EURUSD,M15: Alert: 17
01:46:24 1 EURUSD,M15: Alert: mql: 93
01:46:24 1 EURUSD,M15: Alert: dll: 78
01:46:24 1 EURUSD,M15: Alert: 18
01:46:24 1 EURUSD,M15: Alert: mql: 94
01:46:24 1 EURUSD,M15: Alert: dll: 15
01:46:24 1 EURUSD,M15: Alert: 19
01:46:24 1 EURUSD,M15: Alert: mql: 94
01:46:24 1 EURUSD,M15: Alert: dll: 78
01:46:24 1 EURUSD,M15: Alert: 20
01:46:25 1 EURUSD,M15: Alert: mql: 234
01:46:25 1 EURUSD,M15: Alert: dll: 78
01:46:25 1 EURUSD,M15: Alert: 21
01:46:25 1 EURUSD,M15: Alert: mql: 156
01:46:25 1 EURUSD,M15: Alert: dll: 94
01:46:25 1 EURUSD,M15: Alert: 22
01:46:25 1 EURUSD,M15: Alert: mql: 94
01:46:25 1 EURUSD,M15: Alert: dll: 16
01:46:25 1 EURUSD,M15: Alert: 23
01:46:26 1 EURUSD,M15: Alert: mql: 93
01:46:26 1 EURUSD,M15: Alert: dll: 171
01:46:26 1 EURUSD,M15: Alert: 24
01:46:26 1 EURUSD,M15: Alert: mql: 171
01:46:26 1 EURUSD,M15: Alert: dll: 187
01:46:26 1 EURUSD,M15: Alert: 25
01:46:26 1 EURUSD,M15: Alert: mql: 156
01:46:26 1 EURUSD,M15: Alert: dll: 78
01:46:26 1 EURUSD,M15: Alert: 26
01:46:27 1 EURUSD,M15: Alert: mql: 62
01:46:27 1 EURUSD,M15: Alert: dll: 187
01:46:27 1 EURUSD,M15: Alert: 27
01:46:27 1 EURUSD,M15: Alert: mql: 78
01:46:27 1 EURUSD,M15: Alert: dll: 171
01:46:27 1 EURUSD,M15: Alert: 28
01:46:27 1 EURUSD,M15: Alert: mql: 93
01:46:27 1 EURUSD,M15: Alert: dll: 78
01:46:27 1 EURUSD,M15: Alert: 29
01:46:27 1 EURUSD,M15: Alert: mql: 172
01:46:28 1 EURUSD,M15: Alert: dll: 94
01:46:28 1 EURUSD,M15: Alert: Среднее. mql: 140 dll: 91 

Несколько испытаний:

Среднее. mql: 126 dll: 116
Среднее. mql: 122 dll: 86
Среднее. mql: 167 dll: 91
Среднее. mql: 149 dll: 82
Среднее. mql: 140 dll: 91

Вполне заметно. Если вычисления будут посложнее, будет заметнее. 

 
ЕСЛИ ТИКЕТ ОРДЕРА ХРАНИТСЯ НА СЕРВЕРЕ БРОКЕРА., то  ГДЕ ХРАНИТСЯ МАДЖИК и КОММЕНТ ордеров ?
 

Доброгодня!!!      Я видиму что-то не понял с массивами, что ли.  Функция не вносит в массив профит!! Он пре любых обстоятельствахноль. Ноль и все!

 

 

Функция.

/))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))


void Orderasthitaem()
{
int BUY=0,SELL=0,BUYLIMIT=0,BUYSTOP=0,SELLLIMIT=0,SELLSTOP=0;
double BUY_Profit=0,SELL_Profit=0;
      for( int i=0;i<OrdersTotal();i++){
        OrderSelect (i, SELECT_BY_POS  ) ;  
        if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magicnumber){            
        int type = OrderType();
        if (type == 0) {BUY++;BUY_Profit=BUY_Profit+OrderProfit();}
        if (type == 1) {SELL ++;SELL_Profit=SELL_Profit+OrderProfit();}
        if (type == 2) {BUYLIMIT++;}
        if (type == 3) {SELLLIMIT++;}
        if (type == 4) {BUYSTOP++;}
        if (type == 5) {SELLSTOP++;}}}
       
        Orderasthitaem[0,1]=BUY;Orderasthitaem[0,2]=BUY_Profit;
        Orderasthitaem[1,1]=SELL;Orderasthitaem[1,2]=SELL_Profit;
        Orderasthitaem[2,1]=BUYLIMIT;
        Orderasthitaem[3,1]=SELLLIMIT;
        Orderasthitaem[4,1]=BUYSTOP;
        Orderasthitaem[5,1]=SELLSTOP;
         
         
}        
    

//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

Обиявление вне всех функций

double Orderasthitaem[6,2];ArrayInitialize(Orderasthitaem, 0.0);
Причина обращения: