Ваши вопросы по языку MQL4

Ugar

Гуру форума
Христос Воскрес! Подскажите плиз кто
по кодам в теме! Мммм... на примере
стохастика, нужно чтоб он расчет вел
не за количество баров а с заданой
временной точки(условно с 00:00
часов вчерашнего дня)
Во истину воскрес.
Ищешь бар с заданным временем с помошью iBarShift. Результатом будет количество баров. После, как обычно считаешь индикатор за это количество баров.
 

eevviill

Заблокирован
Добрый день. Подскажите что дальше писать. Задача такая, что индикатор должен рисовать стрелку при пересичении 2-ух МА. Я не могу понять логики по какой это делается. Если можно то попроще и поподробней объясните.

PHP:
#property copyright "eevviill"
#property link      "[email protected]"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 OrangeRed
 
double ExtMapBuffer1[];
double ExtMapBuffer2[];
extern int MA_fast_period = 40;
extern int MA_slow_period = 60;
 
int init()
  {
 
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexArrow(0,SYMBOL_ARROWUP); 
 
   SetIndexBuffer(1,ExtMapBuffer2);
   SetIndexStyle(1,DRAW_ARROW);
   SetIndexArrow(1,SYMBOL_ARROWDOWN); 
 
   return;
  }
 
 
int start()
  {
   int counted_bars=IndicatorCounted();
   int pos = Bars-counted_bars;
double MA1 = iMA(Symbol(),0,MA_fast_period,0,MODE_LWMA,PRICE_CLOSE,1);
double MA11 = iMA(Symbol(),0,MA_fast_period,0,MODE_LWMA,PRICE_CLOSE,2);
double MA2 = iMA(Symbol(),0,MA_slow_period,0,MODE_LWMA,PRICE_CLOSE,1);
double MA22 = iMA(Symbol(),0,MA_slow_period,0,MODE_LWMA,PRICE_CLOSE,2);
if(MA11<MA22 && MA1>MA2) ExtMapBuffer1[1] = ; //up
if(MA11>MA22 && MA1<MA2) ExtMapBuffer2[1] = ; //down
 
 
   return;
  }
 

Ugar

Гуру форума
А чё индикаторы с буферами ещё не писал? Попробуй разобрать всё что я изменил в функции start.
Код:
[COLOR=#000000][COLOR=#0000BB]int start[/COLOR][COLOR=#007700]()
  {
[/COLOR][/COLOR][COLOR=Red][COLOR=#000000][COLOR=#0000BB]double MA1, [/COLOR][/COLOR][COLOR=#000000][COLOR=#0000BB]MA11, [/COLOR][/COLOR][COLOR=#000000][COLOR=#0000BB]MA2, [/COLOR][/COLOR][COLOR=#000000][COLOR=#0000BB]MA22;[/COLOR][/COLOR][/COLOR]
[COLOR=#000000][COLOR=#0000BB]int counted_bars[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#0000BB]IndicatorCounted[/COLOR][COLOR=#007700]();
   [/COLOR][COLOR=#0000BB]int pos [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Bars[/COLOR][COLOR=#007700]-[/COLOR][COLOR=#0000BB]counted_bars[/COLOR][COLOR=#007700];[/COLOR][/COLOR][COLOR=#000000][COLOR=#007700]
for(int i=1; i<[/COLOR][/COLOR][COLOR=#000000][COLOR=#0000BB]pos[/COLOR][/COLOR][COLOR=#000000][COLOR=#007700]; i++)
{
[/COLOR][COLOR=#0000BB]MA1 [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]iMA[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Symbol[/COLOR][COLOR=#007700](),[/COLOR][COLOR=#0000BB]0[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]MA_fast_period[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]0[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]MODE_LWMA[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]PRICE_CLOSE[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]i[/COLOR][COLOR=#007700]);
[/COLOR][COLOR=#0000BB]MA11 [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]iMA[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Symbol[/COLOR][COLOR=#007700](),[/COLOR][COLOR=#0000BB]0[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]MA_fast_period[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]0[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]MODE_LWMA[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]PRICE_CLOSE[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]i+1[/COLOR][COLOR=#007700]);
[/COLOR][COLOR=#0000BB]MA2 [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]iMA[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Symbol[/COLOR][COLOR=#007700](),[/COLOR][COLOR=#0000BB]0[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]MA_slow_period[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]0[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]MODE_LWMA[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]PRICE_CLOSE[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]i[/COLOR][COLOR=#007700]);
[/COLOR][COLOR=#0000BB]MA22 [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]iMA[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Symbol[/COLOR][COLOR=#007700](),[/COLOR][COLOR=#0000BB]0[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]MA_slow_period[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]0[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]MODE_LWMA[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]PRICE_CLOSE[/COLOR][COLOR=#007700],[/COLOR][/COLOR][COLOR=#000000][COLOR=#0000BB]i+1[/COLOR][/COLOR][COLOR=#000000][COLOR=#007700]);
if([/COLOR][COLOR=#0000BB]MA11[/COLOR][COLOR=#007700]<[/COLOR][COLOR=#0000BB]MA22 [/COLOR][COLOR=#007700]&& [/COLOR][COLOR=#0000BB]MA1[/COLOR][COLOR=#007700]>[/COLOR][COLOR=#0000BB]MA2[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]ExtMapBuffer1[/COLOR][COLOR=#007700][i[/COLOR][COLOR=#007700]] = Low[i]; [/COLOR][COLOR=#FF8000]
[/COLOR][COLOR=#007700]if([/COLOR][COLOR=#0000BB]MA11[/COLOR][COLOR=#007700]>[/COLOR][COLOR=#0000BB]MA22 [/COLOR][COLOR=#007700]&& [/COLOR][COLOR=#0000BB]MA1[/COLOR][COLOR=#007700]<[/COLOR][COLOR=#0000BB]MA2[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]ExtMapBuffer2[/COLOR][COLOR=#007700][[/COLOR][COLOR=#0000BB]i[/COLOR][COLOR=#007700]] = High[i]; 
}
[/COLOR][COLOR=#007700]return;
  }  [/COLOR][/COLOR]
 
Последнее редактирование:

eevviill

Заблокирован
А чё индикаторы с буферами ещё не писал? Попробуй разобрать всё что я изменил в функции start.
Код:
[COLOR=#000000][COLOR=#0000bb]int start[/COLOR][COLOR=#007700]()[/COLOR]
[COLOR=#007700]{[/COLOR]
[/COLOR][COLOR=red][COLOR=#000000][COLOR=#0000bb]double MA1, [/COLOR][/COLOR][COLOR=#000000][COLOR=#0000bb]MA11, [/COLOR][/COLOR][COLOR=#000000][COLOR=#0000bb]MA2, [/COLOR][/COLOR][COLOR=#000000][COLOR=#0000bb]MA22;[/COLOR][/COLOR][/COLOR]
[COLOR=#000000][COLOR=#0000bb]int counted_bars[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#0000bb]IndicatorCounted[/COLOR][COLOR=#007700]();[/COLOR]
[COLOR=#0000bb]int pos [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]Bars[/COLOR][COLOR=#007700]-[/COLOR][COLOR=#0000bb]counted_bars[/COLOR][COLOR=#007700]; //Это проверка последнего бара[/COLOR][/COLOR]
[COLOR=#000000][COLOR=#000000]for(int i=1; i<[/COLOR][/COLOR][COLOR=#000000][COLOR=#0000bb]pos[/COLOR][/COLOR][COLOR=#000000][COLOR=#007700]; i++) //Цикл   1)начинаем с 1 2)цикл заканчивается когда мы подсчитали все бары 3)добавляем при следуещем кругу 1-у к і[/COLOR]
[COLOR=#000000]{[/COLOR]
[COLOR=#0000bb]MA1 [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]iMA[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]Symbol[/COLOR][COLOR=#007700](),[/COLOR][COLOR=#0000bb]0[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]MA_fast_period[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]0[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]MODE_LWMA[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]PRICE_CLOSE[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]i //Это тот бар который проверяем[/COLOR][COLOR=#007700]);[/COLOR]
[COLOR=#0000bb]MA11 [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]iMA[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]Symbol[/COLOR][COLOR=#007700](),[/COLOR][COLOR=#0000bb]0[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]MA_fast_period[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]0[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]MODE_LWMA[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]PRICE_CLOSE[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]i+1[/COLOR][COLOR=#007700]);[/COLOR]
[COLOR=#0000bb]MA2 [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]iMA[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]Symbol[/COLOR][COLOR=#007700](),[/COLOR][COLOR=#0000bb]0[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]MA_slow_period[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]0[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]MODE_LWMA[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]PRICE_CLOSE[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]i[/COLOR][COLOR=#007700]);[/COLOR]
[COLOR=#0000bb]MA22 [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]iMA[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]Symbol[/COLOR][COLOR=#007700](),[/COLOR][COLOR=#0000bb]0[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]MA_slow_period[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]0[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]MODE_LWMA[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]PRICE_CLOSE[/COLOR][COLOR=#007700],[/COLOR][/COLOR][COLOR=#000000][COLOR=#0000bb]i+1[/COLOR][/COLOR][COLOR=#000000][COLOR=#007700]);[/COLOR]
[COLOR=#000000]if([/COLOR][COLOR=#0000bb]MA11[/COLOR][COLOR=#007700]<[/COLOR][COLOR=#0000bb]MA22 [/COLOR][COLOR=#007700]&& [/COLOR][COLOR=#0000bb]MA1[/COLOR][COLOR=#007700]>[/COLOR][COLOR=#0000bb]MA2[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000bb]ExtMapBuffer1[/COLOR][COLOR=#007700][i[/COLOR][COLOR=#007700]]//Это тот бар где выполнилось условие = Low[i]//Это ??? Вот этого понять не могу. Почему здесь Low High а не расчёты какие то; [/COLOR]
[COLOR=#007700]if([/COLOR][COLOR=#0000bb]MA11[/COLOR][COLOR=#007700]>[/COLOR][COLOR=#0000bb]MA22 [/COLOR][COLOR=#007700]&& [/COLOR][COLOR=#0000bb]MA1[/COLOR][COLOR=#007700]<[/COLOR][COLOR=#0000bb]MA2[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000bb]ExtMapBuffer2[/COLOR][COLOR=#007700][[/COLOR][COLOR=#0000bb]i[/COLOR][COLOR=#007700]] = High[i]; [/COLOR]
[COLOR=#007700]}[/COLOR]
[COLOR=#007700]return;[/COLOR]
[COLOR=#007700]}  [/COLOR][/COLOR]
Не писал. И с for туговато.

ExtMapBuffer2[i]=High. Так в []надо писать какой бар, а после = где рисовать?
 
Последнее редактирование:

Ugar

Гуру форума
if(MA11<MA22 && MA1>MA2) ExtMapBuffer1[i] = Low;
В ячейку буфера пишется значение Low этого же бара. Low
В итоге на баре где произошло пересечение быстрой МА вверх будет поставлена стрелка на Low этого бара.

ps for надо осваивать. Без неё в индикаторы соваться не стоит. Да и в советниках её предпочтительней использовать чем while.
 
Последнее редактирование:

eevviill

Заблокирован
if(MA11<MA22 && MA1>MA2) ExtMapBuffer1[i] = Low;
В ячейку буфера пишется значение Low этого же бара. Low
В итоге на баре где произошло пересечение быстрой МА вверх будет поставлена стрелка на Low этого бара.

ps for надо осваивать. Без неё в индикаторы соваться не стоит. Да и в советниках её предпочтительней использовать чем while.

Большое спасибо.
Но вот если такая ситуация. Если допустим мне не надо чтобы по всей истории котировок на графике рисовались стрелки. А надо только чтобы свежие стрелки рисовались. Это будет так
if(MA11<MA22 && MA1>MA2) ExtMapBuffer1[1] = Low[1] или нет?
 

Ugar

Гуру форума
Большое спасибо.
Но вот если такая ситуация. Если допустим мне не надо чтобы по всей истории котировок на графике рисовались стрелки. А надо только чтобы свежие стрелки рисовались. Это будет так
if(MA11<MA22 && MA1>MA2) ExtMapBuffer1[1] = Low[1] или нет?
Тогда цикл не нужен. И массивы то же смысла не имеют. Стрелку лучше ставить как объект.
Странный индикатор. Для чего такой может понадобиться, не понимаю.
Код:
#property copyright "eevviill"
#property link      "[email protected]"
#property indicator_chart_window

 

extern int MA_fast_period = 40;
extern int MA_slow_period = 60;
 
int init()
  {
 
   return;
  }
 
 
int start()
  {
//Здесь удалить объкт стрелку если есть 

double MA1 = iMA(Symbol(),0,MA_fast_period,0,MODE_LWMA,PRICE_CLOSE,1);
double MA11 = iMA(Symbol(),0,MA_fast_period,0,MODE_LWMA,PRICE_CLOSE,2);
double MA2 = iMA(Symbol(),0,MA_slow_period,0,MODE_LWMA,PRICE_CLOSE,1);
double MA22 = iMA(Symbol(),0,MA_slow_period,0,MODE_LWMA,PRICE_CLOSE,2);
if(MA11<MA22 && MA1>MA2) 
{
//Здесь установка объекта стрелка покупки на Low[1] и Time[1]
}
if(MA11>MA22 && MA1<MA2)
{
//Здесь установка объекта стрелка на продажу на High[1] и Time[1]
}
 
 
   return;
  }
 
Последнее редактирование:

eevviill

Заблокирован
Тогда цикл не нужен. И массивы то же смысла не имеют. Стрелку лучше ставить как объект.
Странный индикатор. Для чего такой может понадобиться, не понимаю.
Я же например написал. И тем более он же ничем не будет отличатся от буферного индикатора, кроме того что его не видно на истории.

Тогда возникает ещё один вопрос. Если сделать индикаторные стрелки через объект, то его уже через iCustom() не прицепишь.
А как прицепить в таком случае? Через ObjectFind?
 

Ugar

Гуру форума
Я же например написал. И тем более он же ничем не будет отличатся от буферного индикатора, кроме того что его не видно на истории.
Если использовать буфера даже без цикла, то на истории он не будет рисовать только при запуске. В работе стрелки будут оставаться и уходить в историю.
Тогда возникает ещё один вопрос. Если сделать индикаторные стрелки через объект, то его уже через iCustom() не прицепишь.
А как прицепить в таком случае? Через ObjectFind?
Через поиск объекта конечно можно, но тестироваться будет только в визуальном режиме, так как в остальных режимах объекты не работают вообще. Оптимизация в тестере будет невозможна.

Зачем такой индикатор нужен, не понятно. Так же не понятно, зачем его цеплять к советнику. Не проще ли вызвать эти МА в коде советника, работать будет гораздо быстрее.
 

eevviill

Заблокирован
Если использовать буфера даже без цикла, то на истории он не будет рисовать только при запуске. В работе стрелки будут оставаться и уходить в историю.

Через поиск объекта конечно можно, но тестироваться будет только в визуальном режиме, так как в остальных режимах объекты не работают вообще. Оптимизация в тестере будет невозможна.

Зачем такой индикатор нужен, не понятно. Так же не понятно, зачем его цеплять к советнику. Не проще ли вызвать эти МА в коде советника, работать будет гораздо быстрее.
Вы меня не правильно поняли. У меня нет конкретной задачи. Я хочу понять структуру написания и её ньюансы.

Спасибо. Всё понял. Только ещё один вопрос.
Я написал в индикаторе
Alert(MapBuffer1[1]).
Если есть пересечение вверх на предыдущем баре, то выдаётся сообщение Цена где нарисовалась стрелка. А если нет пересечения, то там пишется каких то вроди бы 8 чисел. Что за числа?(цифры)
 

tommy27

Гуру форума
Добрый день, нужна помощь. Есть определённый бар и цена его закрытия. Как реализовать следущий момент: сова должна открывать позицию после того как разница между текущей ценой и ценой закрытия пределённого бара станет больше заданной. У меня получается только вычислять разницу между ценой закрытия заданного и ценой закрытия текущего( а не с ценой в данный момент времени - чего и хочу добиться).
 

Ugar

Гуру форума
Вы меня не правильно поняли. У меня нет конкретной задачи. Я хочу понять структуру написания и её ньюансы.

Спасибо. Всё понял. Только ещё один вопрос.
Я написал в индикаторе
Alert(MapBuffer1[1]).
Если есть пересечение вверх на предыдущем баре, то выдаётся сообщение Цена где нарисовалась стрелка. А если нет пересечения, то там пишется каких то вроди бы 8 чисел. Что за числа?(цифры)
EMPTY_VALUE 0x7FFFFFFF Значение по умолчанию, указатель пустого значения. Используется в пользовательских индикаторах.
 

Ugar

Гуру форума
Добрый день, нужна помощь. Есть определённый бар и цена его закрытия. Как реализовать следущий момент: сова должна открывать позицию после того как разница между текущей ценой и ценой закрытия пределённого бара станет больше заданной. У меня получается только вычислять разницу между ценой закрытия заданного и ценой закрытия текущего( а не с ценой в данный момент времени - чего и хочу добиться).
А какая разница? Цена закрытия текущего бара и есть текущая цена Bid.
if(MathAbs(Close[1]-Close[0])>заданное)

То же самое
if(MathAbs(Close[1]-Bid)>заданное)
 

eevviill

Заблокирован
Добрый день, нужна помощь. Есть определённый бар и цена его закрытия. Как реализовать следущий момент: сова должна открывать позицию после того как разница между текущей ценой и ценой закрытия пределённого бара станет больше заданной. У меня получается только вычислять разницу между ценой закрытия заданного и ценой закрытия текущего( а не с ценой в данный момент времени - чего и хочу добиться).
Думаю так.
PHP:
int level = 12; //количество пунктов
if(Close[8]-Close[0]>level*Point) то что то делаем
Ха ха. Вот это написал. Close[0]. Да, точно. Bid надо.
 
Последнее редактирование:

tommy27

Гуру форума
А какая разница? Цена закрытия текущего бара и есть текущая цена Bid.
if(MathAbs(Close[1]-Close[0])>заданное)

То же самое
if(MathAbs(Close[1]-Bid)>заданное)

Вот не получается почему то на строчки кода:
Код:
R = MathAbs(Close[1]-Close[0]);
R1 = MathAbs(Close[1]-Bid);
Print ("Raznica= ",R,R1);
журнал отзывается стабильными и постоянными "00":-(
 

tommy27

Гуру форума
У меня считает так:
Код:
StartPrice1 = Close[0];
Delta1 = MathRound ((MathAbs (Price0 - StartPrice1))*10000);
Comment (Delta1);
Print ("Raznica= ",Delta1);
и результат обновляется только при появлении нового бара а хотелось бы видеть и фиксировать изменения на каждом тике.

alsu с мкл4 посоветовал использовать iClose(0,0,0), но результат тот же -обновляется только при появлении нового бара.
 
Последнее редактирование:

eevviill

Заблокирован
У меня считает так:
Код:
StartPrice1 = Close[0];
Delta1 = MathRound ((MathAbs (Price0 - StartPrice1))*10000);
Comment (Delta1);
Print ("Raznica= ",Delta1);
и результат обновляется только при появлении нового бара а хотелось бы видеть и фиксировать изменения на каждом тике.

alsu с мкл4 посоветовал использовать iClose(0,0,0), но результат тот же -обновляется только при появлении нового бара.
PHP:
extern int level = 4; 
 
int start()
  {
 
double Price1 = Bid; //текущая цена
double Price2 = Close[8]; //цена закрытия выбраного бара
double level1 = level*Point; //уровень когда надо что то делать
double Delta1 = MathAbs(Close[8]-Bid); //разница между той ценой и текущей
if(Delta1>level1)Comment (Delta1);
if(Delta1>level1)Print ("Raznica= ",Delta1);
if(Delta1>level1)Alert (Delta1);
 
   return(0);
  }
Надо было хотя бы мои уроки не прогуливать

P.S. Так лучше. Чувствую потом будут вопросы когда надо сел, а когда бай...
 
Последнее редактирование:

Ugar

Гуру форума
У меня считает так:
Код:
StartPrice1 = Close[0];
Delta1 = MathRound ((MathAbs (Price0 - StartPrice1))*10000);
Comment (Delta1);
Print ("Raznica= ",Delta1);
и результат обновляется только при появлении нового бара а хотелось бы видеть и фиксировать изменения на каждом тике.

alsu с мкл4 посоветовал использовать iClose(0,0,0), но результат тот же -обновляется только при появлении нового бара.
Весь код покажи. Где объявлены переменные, где присвоено значение Price0???
 

tommy27

Гуру форума
Весь код покажи. Где объявлены переменные, где присвоено значение Price0???

Да причем тут весь код то ???
Вопрос то в том что
результат обновляется только при появлении нового бара а хотелось бы видеть и фиксировать изменения на каждом тике.

Пусть будут вот так объявлены переменные и присвоено значение Price0:
Код:
double 
       StartPrice1,
       Delta1,
       Price00;
...
Price00 = 5000;
StartPrice1 =  iClose(0,0,0);
//StartPrice1 = Close[0];
Delta1 = MathAbs (Price00 - StartPrice1);
//if (Delta1>1000) Delta1=0;
Comment (Delta1);
Print ("Raznica= ",Delta1);

И что?
 

tommy27

Гуру форума
Надо было хотя бы мои уроки не прогуливать

P.S. Так лучше. Чувствую потом будут вопросы когда надо сел, а когда бай...

Нет, не лучше так, так это тот же ... только вид сбоку ))) а вопрос как был так и остался: результат обновляется только при появлении нового бара а хотелось бы видеть и фиксировать изменения на каждом тике.
 
Верх