деление на ноль вот тут: /mPricePrevious
деление на ноль вот тут: /mPricePrevious
Доброго времени суток, Ренат, я достаточно слаб в этом языке, если не затруднит, укажите чайнику пальцем на ...(всмысле где именно).
mPricePrevious=(High[i+1]+Low[i+1])/2; - здесь? плюсы на минусы поменять?
Наверно, ты хотел так.
//+------------------------------------------------------------------+ //| Dark Monk.mq4 | //| Copyright © 2005, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2005, MetaQuotes Software Corp." #property link "http://www.metaquotes.ru/forum/6298/" #property indicator_level1 0.0 //+------------------------------------------------------------------+ //| _Dynamic II %Change.mq4 | //| Dark Monk | //| http://ru | //+------------------------------------------------------------------+ #property copyright "Dark Monk" #property link "ru" #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 DarkGray //---- input parameters //---- buffers double PercentChange[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- % Change indicator mapping SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,PercentChange); IndicatorShortName("% Change ("+1+")"); SetIndexLabel(0,"% Change ("+1+")"); return(0); } //+------------------------------------------------------------------+ //| _Dynamic II % Change indicator | //+------------------------------------------------------------------+ int start() { double mPriceCurrent,mPricePrevious; int limit; int counted_bars=IndicatorCounted(); if (counted_bars<0) return(-1); if (counted_bars>0) limit=Bars-counted_bars; if (counted_bars==0) limit=Bars-1; limit--; for(int i=limit; i>=0; i--) { if (i<=3)Print("Bars=",Bars," counted_bars=",counted_bars," i=",i," limit=",limit); mPriceCurrent=(High[i]+Low[i])/2.0; mPricePrevious=(High[i+1]+Low[i+1])/2.0; PercentChange[i]=((mPriceCurrent-mPricePrevious)/mPricePrevious)*1000.0; } //---- done return(0); } //+------------------------------------------------------------------+
деление на ноль вот тут: /mPricePrevious
mPricePrevious=(High[i+1]+Low[i+1])/2;
При каких условиях High и Low могут быть равны нулю? Или один из них становится отрицательным?
деление на ноль вот тут: /mPricePrevious
mPricePrevious=(High[i+1]+Low[i+1])/2;
При каких условиях High и Low могут быть равны нулю? Или один из них становится отрицательным?
При условии, что их нет, а потому (0+0)/2=0
не факт ((
2005.11.22 01:16:46 _Dynamic II %Change EURUSD,H1: zero divide
2005.11.22 01:16:46 _Dynamic II %Change EURUSD,H1: zero divide
не факт ((
2005.11.22 01:16:46 _Dynamic II %Change EURUSD,H1: zero divide
2005.11.22 01:16:46 _Dynamic II %Change EURUSD,H1: zero divide
а сейчас нет (( ,, меня прёт, или терминал??
не факт ((
2005.11.22 01:16:46 _Dynamic II %Change EURUSD,H1: zero divide
2005.11.22 01:16:46 _Dynamic II %Change EURUSD,H1: zero divide
а сейчас нет (( ,, меня прёт, или терминал??
виноват, советники при релоаде запрещаются... всё там же ((
При каких условиях High и Low могут быть равны нулю? Или один из них становится отрицательным?
При условии, что их нет, а потому (0+0)/2=0
Спасибо.
Кстати, неплохо бы в словаре эту информацию озвучить, раз уж, в самом деле, нужна такая проверка на ноль. Ни в описании, ни в примере ее нет:
double High[]
Returns the highest price of the bar referenced.
int handle, bars=Bars;
handle=FileOpen("file.csv", FILE_CSV|FILE_WRITE, ';');
if(handle>0)
{
// write table columns headers
FileWrite(handle, "Time;Open;High;Low;Close;Volume");
// write data
for(int i=0; i<bars; i++)
FileWrite(handle, Time[i], Open[i], High[i], Low[i], Close[i], Volume[i]);
FileClose(handle);
}
Не за что (если спасибо мне). Я пришел к выводу, что если чего то нет, то жди нуля. По дефолту.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
2005.11.22 00:46:50 _Dynamic II %Change CADJPY,H1: zero divide
_Dynamic II %Change - это индикатор, в эксперте вызывается как "айКастом", тело привожу:
где втупил??