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

 

Здравствуйте. Возникла проблема с написанием идникатора, вобщем есть дава массива для буферов,

Mass1

Mass2

И подсчет данных для каждого элемента массива ведется в небольшие числа, то есть значения получаются 15, 27, 41, 14 и т.д.

 

Если ставлю тип масивов int  и если пробегаюсь по каждому элементу видно что значения массива соответствуют рассчетным значениям, НО если тип стоит Int то линии индикатора не отображатюся в окне.

 

Если же ставлю тип массива double, то в массив записываются больше значения неизвестно откуда взявшиеся, например 21456545454, 43654534532, 24325235232 и тд. Которые совсем не соответствуют  рассчетным значениям.

 

В чем может быть проблема? 

 

Всем привет!

Помогите разобраться.

 Написал простой скрипт на открытие ордера (из учебника MQL4).

int start()                                  // Спец. функция start()
  {                                          // Открытие BUY
   OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+15*Point);
   Alert (GetLastError());
   return;                                   // Выход из start()
  }

В данном примере код приведен для инструментов с 4-мя знаками.

У меня счет в компании у которой 5 знаков после точки.

Напишите пожалуйста как правильно переделать код для 5-ти знаков?, и почему при запуске скрипта выдает ошибку 4109 (торговля не разрешена). 

 
sss2019:Если ставлю тип масивов int  и если пробегаюсь по каждому элементу видно что значения массива соответствуют рассчетным значениям, НО если тип стоит Int то линии индикатора не отображатюся в окне.

 

Если же ставлю тип массива double, то в массив записываются больше значения неизвестно откуда взявшиеся, например 21456545454, 43654534532, 24325235232 и тд. Которые совсем не соответствуют  рассчетным значениям.

 

В чем может быть проблема? 

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

Здравствуйте, помогите пожалуйста разобраться с индикатором. Идея такая, с открытием американской сессии в 16:00 мск. над свечой ставиться метка,на любом тайфрейме. У меня проблемы с  функциями datetime, перечитала учебник не один раз, просмотрела другие индикаторы, но так и не разобралась.

Файлы:
exfbtix.mq4  2 kb
 
Yulia:

Здравствуйте, помогите пожалуйста разобраться с индикатором. Идея такая, с открытием американской сессии в 16:00 мск. над свечой ставиться метка,на любом тайфрейме. У меня проблемы с  функциями datetime, перечитала учебник не один раз, просмотрела другие индикаторы, но так и не разобралась.


#property indicator_chart_window // указываем, что идикатор будет рисоваться в окне, где рисуется график валютной пары
#property indicator_buffers 1 // сколько линий будет рисовать наш индикатор
#property indicator_color1 Lime // какого цвета будет первая линия 
//---- buffers
double Buffer[];

extern int hour =9;

//+------------------------------------------------------------------+
int init()
{
  SetIndexStyle(0,DRAW_ARROW);
  SetIndexArrow(0,108);
  SetIndexBuffer(0,Buffer);  
return(0);
}
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
int start()
{

int counted_bars=IndicatorCounted(); // сколько баров уже просчитано для начего индикатора
if(counted_bars<0) return(-1);// проверяем ошибки


int i=0;
    while(i<Bars)
         {
         if(TimeHour(Time[i])==hour)
            {        
            Buffer[i]=High[i]+150*Point;
            }
         
         i++;
         }

return(0);
}
//+------------------------------------------------------------------+

 
 
Большое спасибо, но немножко не так, мне нужна метка только на первой свече на М1,М5 итд., кроме конечно дневного и выше.
 
Yulia:
Большое спасибо, но немножко не так, мне нужна метка только на первой свече на М1,М5 итд., кроме конечно дневного и выше.

Как у Вас было, так и осталось
 
Reshetov:
Вам нужно к телепатам обратиться. Но вполне не исключено, что трабла в несоответствии при делении вещественных чисел на целые.


Вот код

int lowsum, highsum;
int Mass1[];
int Mass2[];

                        while(start1 < end1 + 1)
                                {
                                lowsum = lowsum + iVolume(Symbol(), PERIOD_M1, start1);
                                start1++;
                                }
                        while(start2 < end2 + 1)
                                {
                                highsum = highsum + iVolume(Symbol(), PERIOD_M1, start2);
                                start2++;
                                }
                        Mass[i] = lowsum;
                        Mass[i] = highsum;
                        Alert(Mass[i], " ", highsum);

В итоге алерт выводит такие сообщения:

 

 

 Видно что переменная имеет значение, а присвоить значение переменной массиву нельзя, не могу понять в чем проблема

 
sss2019:

 Видно что переменная имеет значение, а присвоить значение переменной массиву нельзя, не могу понять в чем проблема

а у массива какой размер?
 
sss2019:


Вот код

В итоге алерт выводит такие сообщения:

 

 

 Видно что переменная имеет значение, а присвоить значение переменной массиву нельзя, не могу понять в чем проблема

 


А размер массива задавать не надо?
Причина обращения: