2015.01.23 13:22:23.360 Access violation read to 0x09986000
ArraySetAsSeries() не пробовали использовать.
пробовал, не получается.
перечитал весь форум, да пишут об обратном цикле, но почему то у меня просто вылетает ошибка.
вот грубо говоря код
int start() { int counted_bars=IndicatorCounted(); int i,limit; if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; limit=MathMin(Bars-counted_bars,Bars-1); ArrayResize(ssld_temp,100); ArraySetAsSeries(ssld_temp,true); for(i=limit;i>=0;i--) { double hiPrice = iSmooth(High[i+1],TromPeriod,SmoothPhase,i+1, 0); double loPrice = iSmooth(Low[i+1] ,TromPeriod,SmoothPhase,i+1,10); double clPrice = iSmooth(Close[i] ,TromPeriod,SmoothPhase,i ,20); Hlv[i]=Hlv[i+1]; if(clPrice>hiPrice) Hlv[i] = 1; if(clPrice<loPrice) Hlv[i] = -1; if(Hlv[i]==-1) { ssld[i] = hiPrice; sslu[i] = loPrice; } else { ssld[i] = loPrice; sslu[i] = hiPrice; } } ArraySetAsSeries(ssld_temp,true); for(i=0; i<100; i++) { ssld_temp[i]=ssld[i]; } for(i=0; i<100; i++) { double val1=iEnvelopesOnArray(ssld_temp,0,ENVma_period,MODE_SMA,0,ENVdeviation,MODE_UPPER,i); envelopes[i]=val1; Print("ArraySize ="+ArraySize(ssld_temp)+"i="+i+" ssld_temp="+ssld_temp[i]+" ssld="+ssld[i]+" envelopes="+envelopes[i]); } return(0); }
индикатор считает и записывает свои буферы - далее после расчетов я его буферы 100 штук копирую в свой массив.
далее пытаюсь рассчитать iEnvelopesOnArray по этому массиву.
но мне выдает всегда 0
Access violation read to 0x04781000
ArraySize =100i=95 ssld_temp=0.75036 ssld=0.75036 envelopes=0
ArraySize =100i=96 ssld_temp=0.75046 ssld=0.75046 envelopes=0
ArraySize =100i=97 ssld_temp=0.75065 ssld=0.75065 envelopes=0
initialized
вот и я не пойму в чем дело
for(i=0; i<100; i++) { ssld_temp[i]=ssld[i]; } for(i=0; i<100; i++) { double val1=iEnvelopesOnArray(ssld_temp,0,ENVma_period,MODE_SMA,0,ENVdeviation,MODE_UPPER,i); envelopes[i]=val1; Print("ArraySize ="+ArraySize(ssld_temp)+"i="+i+" ssld_temp="+ssld_temp[i]+" ssld="+ssld[i]+" envelopes="+envelopes[i]); }Копируете 100 элементов и для 100 элементов пытаетесь сделать расчет. Если ENVma=100, то можно получить только одно значение. Для других не хватает данных
Смотрим. Какой билд терминала ?
Приложите, пожалуйста, рабочий код для воспроизведения
Vinin:
Копируете 100 элементов и для 100 элементов пытаетесь сделать расчет. Если ENVma=100, то можно получить только одно значение. Для других не хватает данных
в том то и дело что ENVma_period = 3
Копируете 100 элементов и для 100 элементов пытаетесь сделать расчет. Если ENVma=100, то можно получить только одно значение. Для других не хватает данных
билд 765
в том то и дело что любой код, вне зависимости от индикатора - любой код не работает
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Приветствую всех,
не могу понять в чем ошибка
есть массив ssld в нем все данные заполнены
но вот при вызове iEnvelopesOnArray всегда выдает 0
2015.01.23 13:16:10.105 EURGBP,M1: initialized
и деинициализируется после 3 проходов
в чем может быть трабл?