Закрытая тема
06.01.2014, 15:48
Аватар для Novikov
Novikov Novikov на форуме Гуру форума
Регистрация: 02.08.2012 / Адрес: Днепр / Сообщений: 3,154
Поблагодарили 2,675 раз(а) / Репутация: 2663
А не легче исправить ошибку чем придумывать новую проблему?
Странная логика.
этот кусок
PHP код:
int start()
  {
//----
//+------------------------------------------------------------------+
  
if(tic<5){tic++;return(0);}
  else 
tic=0;
//+------------------------------------------------------------------+
   
for(int d=0;d<201;d++)
     {
      
ObjectDelete(Delte[d]);                 // Удаление объекта  
      
ObjectDelete(DelteText[d]);             // Удаление объекта  
     



поменяй на
PHP код:
int start()
  {
//----
//+------------------------------------------------------------------+
  
if(tic<5){tic++;return(0);}
  else 
tic=0;
//+------------------------------------------------------------------+
   
for(int d=0;d<201;d++)
     {
      if(
Delte[d]!="")
      
ObjectDelete(Delte[d]);                 // Удаление объекта  
      
if(Delte[d]!="")
      
ObjectDelete(DelteText[d]);             // Удаление объекта  
     

Сделал все, как написал, но все равно ошибка просто сыпится:

"2014.01.06 16:46:04 КОРРЕЛЯЦИЯ_v2 EURUSD,H1: object name passed to ObjectDelete function cannot be an uninitialized or empty string"

а лог файл только за сегодня вырос до 250 Mb
Что-то еще можешь посоветовать, что бы лог файл не так быстро рос и от ошибки можно избавиться?
06.01.2014, 18:58
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035
Сделал все, как написал, но все равно ошибка просто сыпится:

"2014.01.06 16:46:04 КОРРЕЛЯЦИЯ_v2 EURUSD,H1: object name passed to ObjectDelete function cannot be an uninitialized or empty string"

а лог файл только за сегодня вырос до 250 Mb
Что-то еще можешь посоветовать, что бы лог файл не так быстро рос и от ошибки можно избавиться?
Ошибочка вышла.
здесь
PHP код:
if(Delte[d]!="")
ObjectDelete(DelteText[d]); 
не
PHP код:
if(Delte[d]!=""
а
PHP код:
if(DelteText[d]!=""

Последний раз редактировалось eevviill; 06.01.2014 в 19:22.
Kvant , Novikov 
06.01.2014, 19:19
Аватар для Novikov
Novikov Novikov на форуме Гуру форума
Регистрация: 02.08.2012 / Адрес: Днепр / Сообщений: 3,154
Поблагодарили 2,675 раз(а) / Репутация: 2663
Уважаемый eevviill, во первых с праздником и спасибо за помощь!
И если не трудно, посмотри пожалуйста, почему то эксперт перестал открывать ордера!?
06.01.2014, 19:22
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035
Уважаемый eevviill, во первых с праздником и спасибо за помощь!
И если не трудно, посмотри пожалуйста, почему то эксперт перестал открывать ордера!?
В коде вроди всё ОК.
06.01.2014, 19:28
Аватар для Novikov
Novikov Novikov на форуме Гуру форума
Регистрация: 02.08.2012 / Адрес: Днепр / Сообщений: 3,154
Поблагодарили 2,675 раз(а) / Репутация: 2663
Ошибочка вышла.
здесь
PHP код:
if(Delte[d]!="")
ObjectDelete(DelteText[d]); 
не
PHP код:
if(Delte[d]!=""
а
PHP код:
if(DelteText[d]!=""
сделал, выдает ошибку:
'[' - condition cannot be a string C:\Program Files (x86)\Alpari SSA\experts\indicators\КОРРЕЛЯЦИЯ_v3.mq4 (122, 19)

сделал так
PHP код:
if(DelteText[d]!=""
ошибку не выдает, но лог и дальше засоряется и сообщение продолжается!

"2014.01.06 20:27:47 КОРРЕЛЯЦИЯ_v3 EURUSD,H1: object name passed to ObjectDelete function cannot be an uninitialized or empty string"
06.01.2014, 19:31
Аватар для Novikov
Novikov Novikov на форуме Гуру форума
Регистрация: 02.08.2012 / Адрес: Днепр / Сообщений: 3,154
Поблагодарили 2,675 раз(а) / Репутация: 2663
В коде вроди всё ОК.
я тоже код просмотрел на сколько моги ограничений по времени не нашел

и уже на 3 демо счетах альпари попробовал, с разными парами и разными раздвижками - ничего не помогло!

даже не знаю, что делать
06.01.2014, 20:05
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035

По умолчанию Дибильные метаквоты, дубль 2

сделал, выдает ошибку:
'[' - condition cannot be a string C:\Program Files (x86)\Alpari SSA\experts\indicators\КОРРЕЛЯЦИЯ_v3.mq4 (122, 19)

сделал так
PHP код:
if(DelteText[d]!=""
ошибку не выдает, но лог и дальше засоряется и сообщение продолжается!

"2014.01.06 20:27:47 КОРРЕЛЯЦИЯ_v3 EURUSD,H1: object name passed to ObjectDelete function cannot be an uninitialized or empty string"
Изза того что !="" не означает не пустое значение, хотя в алерте "" выдаёт ничего, приходится такую .уйню писать!!!
PHP код:
string Delte[201]={"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",
"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",
"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",
"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",
"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""};    // массив Делты
string DelteText[201]={"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",
"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",
"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",
"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",
"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""};// массив Делты символов 
06.01.2014, 22:55
Аватар для АлександрV
АлександрV АлександрV вне форума Новичок форума
Регистрация: 03.01.2014 / Сообщений: 13
Поблагодарили 5 раз(а) / Репутация: 6
Уважаемые программисты, вот код индикатора ( считает пункты от закрытия предыдущей свечи ).
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Lime
//--------------------------------------------------------------------
double Buffer[];
//--------------------------------------------------------------------
int init()
{
SetIndexStyle(0,DRAW_HISTOGRAM, EMPTY, 2);
SetIndexBuffer(0,Buffer);
return(0);
}
// -------------------------------------------------------------------

int deinit()
{

return(0);
}
//--------------------------------------------------------------------
int start()
{
int StartBar = Bars - IndicatorCounted() - 1;

for(int i = StartBar; i >= 0; i--)

Buffer[i] = NormalizeDouble((Close[i] - Close[i+1])/Point,0);

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

Мне понадобилось посчитать сумму пунктов долларовых пар, я поменял строку Buffer[i] = NormalizeDouble((Close[i] - Close[i+1])/Point,0); на такое-
Buffer[i] = NormalizeDouble((Close("USDCHF",0,i)-Close("USDCHF",0,i+1))+(Close("USDJPY",0,i)-Close("USDJPY",0,i-1))+(Close("USDCAD",0,i)-Close("USDCAD",0,i-1))-(Close("GBPUSD",0,i)-Close("GBPUSD",0,i-1))-(Close("EURUSD",0,i)-Close("EURUSD",0,i-1))-(Close("AUDUSD",0,i)-Close("AUDUSD",0,i-1))-(Close("NZDUSD",0,i)-Close("NZDUSD",0,i-1)))/Point,0);
Выдает две одинаковые ошибки- ')' - unbalanced right parenthesis C:\Program Files\InstaTrader\experts\indicators\zzzzzzzzzzz.m q4 (27, 336)
Манипуляции со скобками не помогают . наверное что то не правильно в самой конфигурации кода ? Помогите понять .
07.01.2014, 00:41
Регистрация: 15.07.2012 / Адрес: Мухасранск / Сообщений: 1,532
Поблагодарили 3,830 раз(а) / Репутация: 3834
Уважаемые программисты это один и тот же индикатор . Во втором убраны линии , может еще что то . Но показывает одинаково . Какой код удобнее .

Прошу сделать в любом из них автоматическое обновление стрелок при изменении условий в режиме реального времени . Пусть даже если несколько раз на одной свече .
Take Profit - дар Всевышнего , StopLoss - урок Свыше.
07.01.2014, 05:58
Аватар для vgeny2
vgeny2 vgeny2 вне форума Активный участник
Регистрация: 09.09.2012 / Сообщений: 176
Поблагодарили 54 раз(а) / Репутация: 55
Изза того что !="" не означает не пустое значение, хотя в алерте "" выдаёт ничего, приходится такую .уйню писать!!!
эта уйня пишется вот так:
string Delte[201] = {""};
string DelteText[201] = {""};

Забыл .. еще сказать..))
просто удалить обьект как ты сделал (автор индюка также сделал)) не достаточно, надо еще стереть ИМЯ обьекта из массива Delte[201] и DelteText[201] :

for(int d=0;d<201;d++)
{
if(Delte[d]!="")
{
ObjectDelete(Delte[d]);
Delte[d] = ""; //стираем имя из массива))
}

if(DelteText[d]!="")
{
ObjectDelete(DelteText[d]);
Delte[d] = "";
}
}

Последний раз редактировалось vgeny2; 07.01.2014 в 06:32.
07.01.2014, 08:28
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035
эта уйня пишется вот так:
string Delte[201] = {""};
string DelteText[201] = {""};

Забыл .. еще сказать..))
просто удалить обьект как ты сделал (автор индюка также сделал)) не достаточно, надо еще стереть ИМЯ обьекта из массива Delte[201] и DelteText[201] :

for(int d=0;d<201;d++)
{
if(Delte[d]!="")
{
ObjectDelete(Delte[d]);
Delte[d] = ""; //стираем имя из массива))
}

if(DelteText[d]!="")
{
ObjectDelete(DelteText[d]);
Delte[d] = "";
}
}
Не, я от свох слов не отккажусь. А если мне надо только первый элемент масива сделать""?

Вот про стирание не согласен. Смысл?
07.01.2014, 08:31
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035
Уважаемые программисты это один и тот же индикатор . Во втором убраны линии , может еще что то . Но показывает одинаково . Какой код удобнее .

Прошу сделать в любом из них автоматическое обновление стрелок при изменении условий в режиме реального времени . Пусть даже если несколько раз на одной свече .
Да вроди пересчитывает 0 бар тоже.
07.01.2014, 10:09
Аватар для АлександрV
АлександрV АлександрV вне форума Новичок форума
Регистрация: 03.01.2014 / Сообщений: 13
Поблагодарили 5 раз(а) / Репутация: 6

По умолчанию индикатор

Уважаемые программисты, вот код индикатора ( считает пункты от закрытия предыдущей свечи ).
MQL-Код:

Скрытый текст

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Lime
//--------------------------------------------------------------------
double Buffer[];
//--------------------------------------------------------------------
int init()
{
SetIndexStyle(0,DRAW_HISTOGRAM, EMPTY, 2);
SetIndexBuffer(0,Buffer);
return(0);
}
// -------------------------------------------------------------------

int deinit()
{

return(0);
}
//--------------------------------------------------------------------
int start()
{
int StartBar = Bars - IndicatorCounted() - 1;

for(int i = StartBar; i >= 0; i--)

Buffer[i] = NormalizeDouble((Close[i] - Close[i+1])/Point,0);

return(0);
}
//---------------------------------------------------------------------
Мне понадобилось посчитать сумму пунктов долларовых пар, я поменял строку Buffer[i] = NormalizeDouble((Close[i] - Close[i+1])/Point,0); на такое-
MQL-Код:
Buffer[i] = NormalizeDouble((Close("USDCHF",0,i)-Close("USDCHF",0,i+1))+(Close("USDJPY",0,i)-Close("USDJPY",0,i-1))+(Close("USDCAD",0,i)-Close("USDCAD",0,i-1))-(Close("GBPUSD",0,i)-Close("GBPUSD",0,i-1))-(Close("EURUSD",0,i)-Close("EURUSD",0,i-1))-(Close("AUDUSD",0,i)-Close("AUDUSD",0,i-1))-(Close("NZDUSD",0,i)-Close("NZDUSD",0,i-1)))/Point,0);
Выдает две одинаковые ошибки-
')' - unbalanced right parenthesis C:\Program Files\InstaTrader\experts\indicators\zzzzzzzzzzz.m q4 (27, 336)
[свернуть]

Манипуляции со скобками не помогают . наверное что то не правильно в самой конфигурации кода ? Помогите понять .

Последний раз редактировалось chocolate; 07.01.2014 в 11:35.
07.01.2014, 10:37
Аватар для АлександрV
АлександрV АлександрV вне форума Новичок форума
Регистрация: 03.01.2014 / Сообщений: 13
Поблагодарили 5 раз(а) / Репутация: 6
Поздравляю всех с Рождеством Христовым.
07.01.2014, 11:09
Регистрация: 15.07.2012 / Адрес: Мухасранск / Сообщений: 1,532
Поблагодарили 3,830 раз(а) / Репутация: 3834
Да вроди пересчитывает 0 бар тоже.
Он пересчитывает . Но ошибочные стрелки убираются только после перезагрузки индикатора , ТФ и тд .
Take Profit - дар Всевышнего , StopLoss - урок Свыше.
07.01.2014, 11:13
Аватар для Григорийй
Григорийй Григорийй вне форума Заблокирован
Регистрация: 30.07.2009 / Сообщений: 16
Поблагодарили 21 раз(а) / Репутация: 21
а чего сюда втулить чтобы когда индикатор устанавливаешь на график ,например на м15 или на любой другой тайм фрейм - показывало м30 и соответственно при установке на м30 показывал м30.

d_B = (Time[4]-Time[5])-MathMod(CurTime(),Time[4]-Time[5]); d_A = d_B/60; d_B = (d_A-MathFloor(d_A))*60; d_A = MathFloor(d_A); Teks_Menit = DoubleToStr(d_A,0); Teks_Detik = DoubleToStr(d_B,0); Teks=Teks_Menit+":"+Teks_Detik;

Последний раз редактировалось Григорийй; 07.01.2014 в 11:19.
07.01.2014, 12:09
Аватар для zhserg
zhserg zhserg вне форума Местный знаток
Регистрация: 16.12.2012 / Адрес: Россия, Сибирь / Сообщений: 515
Поблагодарили 726 раз(а) / Репутация: 729
Сообщение от: АлександрV
Уважаемые программисты, вот код индикатора ( считает пункты от закрытия предыдущей свечи ).
MQL-Код:

Скрытый текст

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Lime
//--------------------------------------------------------------------
double Buffer[];
//--------------------------------------------------------------------
int init()
{
SetIndexStyle(0,DRAW_HISTOGRAM, EMPTY, 2);
SetIndexBuffer(0,Buffer);
return(0);
}
// -------------------------------------------------------------------

int deinit()
{

return(0);
}
//--------------------------------------------------------------------
int start()
{
int StartBar = Bars - IndicatorCounted() - 1;

for(int i = StartBar; i >= 0; i--)

Buffer[i] = NormalizeDouble((Close[i] - Close[i+1])/Point,0);

return(0);
}
//---------------------------------------------------------------------
Мне понадобилось посчитать сумму пунктов долларовых пар, я поменял строку Buffer[i] = NormalizeDouble((Close[i] - Close[i+1])/Point,0); на такое-
MQL-Код:
Buffer[i] = NormalizeDouble((Close("USDCHF",0,i)-Close("USDCHF",0,i+1))+(Close("USDJPY",0,i)-Close("USDJPY",0,i-1))+(Close("USDCAD",0,i)-Close("USDCAD",0,i-1))-(Close("GBPUSD",0,i)-Close("GBPUSD",0,i-1))-(Close("EURUSD",0,i)-Close("EURUSD",0,i-1))-(Close("AUDUSD",0,i)-Close("AUDUSD",0,i-1))-(Close("NZDUSD",0,i)-Close("NZDUSD",0,i-1)))/Point,0);
Выдает две одинаковые ошибки-
')' - unbalanced right parenthesis C:\Program Files\InstaTrader\experts\indicators\zzzzzzzzzzz.m q4 (27, 336)
[свернуть]

Манипуляции со скобками не помогают . наверное что то не правильно в самой конфигурации кода ? Помогите понять .
Читаем справку по MQL4 -
double Close[] Массив-таймсерия, содержащий цены закрытия каждого бара текущего графика.

double iClose( string symbol, int timeframe, int shift)
Возвращает значение цены закрытия указанного параметром shift бара с соответствующего графика (symbol, timeframe). В случае ошибки функция возвращает 0.
zhserg.ru советники, скрипты, индикаторы на заказ

Последний раз редактировалось zhserg; 07.01.2014 в 12:16.
07.01.2014, 12:11
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035
Сообщение от: АлександрV
Уважаемые программисты, вот код индикатора ( считает пункты от закрытия предыдущей свечи ).
MQL-Код:

Скрытый текст

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Lime
//--------------------------------------------------------------------
double Buffer[];
//--------------------------------------------------------------------
int init()
{
SetIndexStyle(0,DRAW_HISTOGRAM, EMPTY, 2);
SetIndexBuffer(0,Buffer);
return(0);
}
// -------------------------------------------------------------------

int deinit()
{

return(0);
}
//--------------------------------------------------------------------
int start()
{
int StartBar = Bars - IndicatorCounted() - 1;

for(int i = StartBar; i >= 0; i--)

Buffer[i] = NormalizeDouble((Close[i] - Close[i+1])/Point,0);

return(0);
}
//---------------------------------------------------------------------
Мне понадобилось посчитать сумму пунктов долларовых пар, я поменял строку Buffer[i] = NormalizeDouble((Close[i] - Close[i+1])/Point,0); на такое-
MQL-Код:
Buffer[i] = NormalizeDouble((Close("USDCHF",0,i)-Close("USDCHF",0,i+1))+(Close("USDJPY",0,i)-Close("USDJPY",0,i-1))+(Close("USDCAD",0,i)-Close("USDCAD",0,i-1))-(Close("GBPUSD",0,i)-Close("GBPUSD",0,i-1))-(Close("EURUSD",0,i)-Close("EURUSD",0,i-1))-(Close("AUDUSD",0,i)-Close("AUDUSD",0,i-1))-(Close("NZDUSD",0,i)-Close("NZDUSD",0,i-1)))/Point,0);
Выдает две одинаковые ошибки-
')' - unbalanced right parenthesis C:\Program Files\InstaTrader\experts\indicators\zzzzzzzzzzz.m q4 (27, 336)
[свернуть]

Манипуляции со скобками не помогают . наверное что то не правильно в самой конфигурации кода ? Помогите понять .
скорее всего тут надо 3 (((
PHP код:
Buffer[i] = NormalizeDouble(( 
07.01.2014, 12:12
Аватар для grimax
grimax grimax вне форума Элитный участник
Регистрация: 19.11.2010 / Адрес: grimax88@yandex.ru / Сообщений: 1,133
Поблагодарили 1,799 раз(а) / Репутация: 1800
eevviill, Василий с Рождеством!

Нет желания написать индикатор?) Точнее доработать.

В общем индюк РСИ стандартный, и по его вершинам, низинам - экстремумам (минимум две) автоматом рисуются линии тренда...как-то так


Народу благодарны будут оч.много....))
07.01.2014, 12:19
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035
eevviill, Василий с Рождеством!

Нет желания написать индикатор?) Точнее доработать.

В общем индюк РСИ стандартный, и по его вершинам, низинам - экстремумам (минимум две) автоматом рисуются линии тренда...как-то так


Народу благодарны будут оч.много....))
О не. Сложно.
grimax 
Закрытая тема

Метки
mql программирование, дописать индикатор, дописать эксперт, доработать советник, форекс программирование


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помощь профессионального программиста в написании МТС индикаторов советников. cmillion Поиск программиста, поиск заказов 96 05.09.2017 08:20
Написание экспертов, индикаторов. Улсуги VPS для ваших советников. RL.Maxim Temp, корзина, реклама 5 31.10.2009 21:55
Написание советников, индикаторов, скриптов для MT4 по Вашему ТЗ Impish Поиск программиста, поиск заказов 0 04.04.2009 21:30


Текущее время: 04:56. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO