Ответить
10.02.2014, 14:04
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,715 раз(а) / Репутация: 3711
я их критиковал и буду критиковать, за их тупизм и наглость, за их хамство на их форуме, либо игнор и бан за повторные вопросы от трейдеров и пользователей...
Я открою тебе маленький секрет. Я всегда писал определение разрядности котировок вот так.
Код:
double _Point;
int _Digits;
int init()
{
  _Digits = Digits;
  _Point = Point;
  if((Digits == 3 || Digits == 5))
  {
  _Digits = Digits-1;
  _Point = Point*10;
  }
}
А теперь, ты знаешь что это зарезервированные слова.

Кроме этого частенько оставались незадействованные объявленные переменные, были одноимённые переменные глобального уровня и локальные. За которые теперь сыпятся предупреждения.

Последний раз редактировалось NSerega; 11.02.2014 в 15:56.
Ugar 
11.02.2014, 09:27
Аватар для matro3
matro3 matro3 вне форума Почётный гражданин
Регистрация: 18.07.2013 / Сообщений: 349
Поблагодарили 340 раз(а) / Репутация: 344
Отвлеку Вас от междусобойчика )
Есть индикатор Currency Power Meter. Не могу понять как он работает.
Т.е. у меня декомпил, и принцип работы ускользает за корявыми именами переменных.
Может кто-то намекнуть?
Хотел в робота засунуть, а он на объектах. Думаю что проще сам метод перенести.
Или, может, у кого-то есть похожий индюк или другой способ?
Спасибо.
11.02.2014, 14:47
Аватар для Dom
Dom Dom вне форума
Регистрация: 09.03.2009 / Сообщений: 1,033
Поблагодарили 2,482 раз(а) / Репутация: 2481
Здравствуйте! Уважаемые программисты!Подскажите пожалуйста, как исправить эту ошибку:

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

[свернуть]

Последний раз редактировалось Dom; 11.02.2014 в 14:58.
11.02.2014, 14:54
Регистрация: 13.03.2009 / Сообщений: 2,366
Поблагодарили 1,968 раз(а) / Репутация: 2045
Отвлеку Вас от междусобойчика )
Есть индикатор Currency Power Meter. Не могу понять как он работает.
Т.е. у меня декомпил, и принцип работы ускользает за корявыми именами переменных.
Может кто-то намекнуть?
Хотел в робота засунуть, а он на объектах. Думаю что проще сам метод перенести.
Или, может, у кого-то есть похожий индюк или другой способ?
Спасибо.
Так выложи сам индюк, может кто разберёт и подскажет.
Я не ковыряю чужие программы, тем более декомпилы, но на мне свет клином не сошелся.
А без выкладывания индикатора, объяснить его работу смогут экстрасенсы, а это уже другой форум.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
11.02.2014, 14:57
Аватар для qqmber
qqmber qqmber вне форума Почётный гражданин
Регистрация: 20.01.2013 / Сообщений: 530
Поблагодарили 386 раз(а) / Репутация: 386
Здравствуйте! Подскажите пожалуйста, как исправить эту ошибку:

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

[свернуть]
Короткий ответ - воткнуть (int) перед MarketInfo()
Dom , eevviill 
11.02.2014, 15:12
Аватар для matro3
matro3 matro3 вне форума Почётный гражданин
Регистрация: 18.07.2013 / Сообщений: 349
Поблагодарили 340 раз(а) / Репутация: 344
Так выложи сам индюк, может кто разберёт и подскажет.
Я не ковыряю чужие программы, тем более декомпилы, но на мне свет клином не сошелся.
А без выкладывания индикатора, объяснить его работу смогут экстрасенсы, а это уже другой форум.
Currency Power Meter.rar

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

http://narod.ru/disk/29066410001/Currency%20Power%20Meter.rar.html
[свернуть]
11.02.2014, 15:28
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,715 раз(а) / Репутация: 3711
А сюда загрузить не мог?
Я его раньше смотрел, это какой-то информер с красивой картинкой и ковырять его никакого желания.

Последний раз редактировалось NSerega; 11.02.2014 в 18:39.
11.02.2014, 16:14
Аватар для chocolate
chocolate chocolate вне форума Администратор
Регистрация: 18.06.2010 / Адрес: Россия/Тольятти / Сообщений: 3,630
Поблагодарили 3,144 раз(а) / Репутация: 3199
Уважаемые, просьба личные отношения выяснять в личке. И жаловаться на сообщения, высасывая из пальца причину, не стоит.
FAQ по форуму или ответы на все вопросы пользователей

Как вставить видео с Youtube?


Модератор - он не надзиратель, а дружественный пользователю участник. (с)

Есть вопросы по форуму? С радостью отвечу.

Биржевые линейки
Ugar 
11.02.2014, 16:50
Аватар для Milord
Milord Milord вне форума Местный знаток
Регистрация: 26.03.2011 / Сообщений: 603
Поблагодарили 708 раз(а) / Репутация: 711
Уважаемые, просьба личные отношения выяснять в личке. И жаловаться на сообщения, высасывая из пальца причину, не стоит.
уважаемый администратор, ваши удаления моих постов по просьбам хама ветки АлексеяVIK выглядят мягко говоря нелогичными, так будьте объективны до конца, удаляйте и его посты тоже...
то что вы называете личными отношениями - ими не являются, он хамит и флудит во всех ветках форума, вы ему косвенно помогаете,тем что удаляете посты всех, кто ему не нравится...
P.S. обратите внимание на его хамские посты по всем веткам форума - почему вы их не удаляете???
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)

Последний раз редактировалось Milord; 11.02.2014 в 16:57.
11.02.2014, 20:57
Аватар для chocolate
chocolate chocolate вне форума Администратор
Регистрация: 18.06.2010 / Адрес: Россия/Тольятти / Сообщений: 3,630
Поблагодарили 3,144 раз(а) / Репутация: 3199
Milord, я не вижу никакого хамства в сообщениях, на которые Вы жалуетесь. Пишите в личку, конкретно указывайте фразу, которую считаете хамством.
FAQ по форуму или ответы на все вопросы пользователей

Как вставить видео с Youtube?


Модератор - он не надзиратель, а дружественный пользователю участник. (с)

Есть вопросы по форуму? С радостью отвечу.

Биржевые линейки
Milord 
13.02.2014, 09:41
Аватар для ctmcn
ctmcn ctmcn вне форума Новичок форума
Регистрация: 02.04.2011 / Сообщений: 35
Поблагодарили 6 раз(а) / Репутация: 7
Здравствуйте !
На 509 билде все "гуд".

При компилиловании в ME 604 билда - ошибки и предупреждения.
Ошибки поправте пожалуйста, если не трудно - я в основном могу для себя переделать рабочий исходник: изменить, убрать лишнее и т.п.
А по предупреждениям - я так понял, что пока можно игнорировать, но сильно раздражает. Как то привык к - "0 ошибок, 0 предупреждений.

P.S. Специально подобрал 5 простых индикаторов с типичными в МЕ 604 билда ошибками и предупреждениями - другие править по аналогии придется, я так понимаю. Пригодится многим думаю...
С уважением.
13.02.2014, 13:33
Аватар для qqmber
qqmber qqmber вне форума Почётный гражданин
Регистрация: 20.01.2013 / Сообщений: 530
Поблагодарили 386 раз(а) / Репутация: 386
Здравствуйте !
На 509 билде все "гуд".

При компилиловании в ME 604 билда - ошибки и предупреждения.
Ошибки поправте пожалуйста, если не трудно - я в основном могу для себя переделать рабочий исходник: изменить, убрать лишнее и т.п.
А по предупреждениям - я так понял, что пока можно игнорировать, но сильно раздражает. Как то привык к - "0 ошибок, 0 предупреждений.

P.S. Специально подобрал 5 простых индикаторов с типичными в МЕ 604 билда ошибками и предупреждениями - другие править по аналогии придется, я так понимаю. Пригодится многим думаю...
С уважением.
Ну, давай посмотрим.

'supertrend.mq4' supertrend.mq4 1 1
Предупреждение: variable 'var' not used supertrend.mq4
Лечение: убрать неиспользуемую переменную var

'#MTF_Supertrend.mq4' #MTF_Supertrend.mq4 1 1
Ошибка: 'return' - expressions are not allowed on a global scope #MTF_Supertrend.mq4 89 4
Смысл: return оказался вне функции
Лечение: исправить опечатку, return(0); и соседнюю фигурную скобку поменять местами.

'TMA-M.mq4' TMA-M.mq4 1 1
Ошибка: 'char' - unexpected token TMA-M.mq4 325 11
Смысл: char теперь зарезервированное слово, нельзя использовать как имя переменной.
Лечение: заменить везде char на bukva.
Остальные ошибки - следствие первой.

'Murrey_Math_AllTF.mq4' Murrey_Math_AllTF.mq4 1 1
Предупреждение: 'void' function returns a value Murrey_Math_AllTF.mq4 219 4
Смысл: если функция имеет тип void, то оператор return не должен иметь аргументов.
Лечение: заменить return(0); на return; в двух местах.

'Divergence Petr.mq4' Divergence Petr.mq4 1 1
Ошибка: '.' - semicolon expected Divergence Petr.mq4 95 18
Смысл: точка не может быть частью имени переменной.
Лечение: заменить точку на _
Предупреждение: arrays passed by reference only Divergence Petr.mq4 1378 25
Смысл и лечение: В описании функций, получающих массив как параметр, надо ставить знак & перед именем массива и понимать, что операции будут производиться не на копии массива, а на оригинале.
Предупреждение: not all control paths return a value Divergence Petr.mq4 213 1
Смысл и лечение: каждая не-void функция должна заканчиваться оператором return.
Предупреждение: declaration of 'n' hides global declaration at line 107 Divergence Petr.mq4 505 11
Смысл: есть две одноименных переменных n, одна глобальная, другая локальная, объявленная внутри блока. Соответственно, глобальная n не видна внутри этого блока, что провоцирует разнообразные ошибки и непониманиие работы кода.
Лечение: избегать повторов, давать глобальным переменным имена только с Заглавной буквы, локальным - только со строчной.

Последний раз редактировалось qqmber; 13.02.2014 в 13:41.
13.02.2014, 15:31
Аватар для ctmcn
ctmcn ctmcn вне форума Новичок форума
Регистрация: 02.04.2011 / Сообщений: 35
Поблагодарили 6 раз(а) / Репутация: 7
Ну, давай посмотрим...
Супер !
Спасибо !!!

Все свои индикаторы, советники перелопатил - получилось, кроме одного индикатора. Посмотрите, пожалуйста предупреждение.
С уважением.
13.02.2014, 16:08
Аватар для qqmber
qqmber qqmber вне форума Почётный гражданин
Регистрация: 20.01.2013 / Сообщений: 530
Поблагодарили 386 раз(а) / Репутация: 386
Уже было.
'Divergence Petr.mq4' Divergence Petr.mq4 1 1

Предупреждение: arrays passed by reference only Divergence Petr.mq4 1378 25
Смысл и лечение: В описании функций, получающих массив как параметр, надо ставить знак & перед именем массива и понимать, что операции будут производиться не на копии массива, а на оригинале.
Супер !
Спасибо !!!

Все свои индикаторы, советники перелопатил - получилось, кроме одного индикатора. Посмотрите, пожалуйста предупреждение.
С уважением.
Код:
void Fibo(string name, int Size_, double fi_[], string fitxt_[], datetime x1, double y1, datetime x2,double y2,color Color, int Style, int Widht, int period)
добавить пару &
void Fibo(string name, int Size_, double & fi_[], string & fitxt_[], datetime x1, double y1, datetime x2,double y2,color Color, int Style, int Widht, int period)
Ворнинги пропадут, но у меня есть серьезные сомнения, что удастся так передать массив строк. Попробуй и отпишись, пожалуйста.
13.02.2014, 16:37
Регистрация: 13.03.2009 / Сообщений: 2,366
Поблагодарили 1,968 раз(а) / Репутация: 2045
Ворнинги пропадут, но у меня есть серьезные сомнения, что удастся так передать массив строк. Попробуй и отпишись, пожалуйста.
С чем связаны сомнения по поводу ссылки на строчный массив?
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
14.02.2014, 08:36
Аватар для ctmcn
ctmcn ctmcn вне форума Новичок форума
Регистрация: 02.04.2011 / Сообщений: 35
Поблагодарили 6 раз(а) / Репутация: 7
Уже было...
Ворнинги пропадут, но у меня есть серьезные сомнения, что удастся так передать массив строк. Попробуй и отпишись, пожалуйста.
Да, точно было - зашарился
Проверил - на первый взгляд все гуд - устанавливается, при переключении таймов меняется, удаляется.
Спасибо.

P.S. В чем разница хочу понять - как правильно:
...double & fi_[], string & fitxt_[],
...double &fi_[], string &fitxt_[],
...double& fi_[], string& fitxt_[],

Последний раз редактировалось ctmcn; 14.02.2014 в 09:02.
14.02.2014, 09:19
Аватар для qqmber
qqmber qqmber вне форума Почётный гражданин
Регистрация: 20.01.2013 / Сообщений: 530
Поблагодарили 386 раз(а) / Репутация: 386
С чем связаны сомнения по поводу ссылки на строчный массив?
С этим действительно все в порядке, так, какие-то воспоминания всплыли.
Ugar 
14.02.2014, 09:20
Аватар для qqmber
qqmber qqmber вне форума Почётный гражданин
Регистрация: 20.01.2013 / Сообщений: 530
Поблагодарили 386 раз(а) / Репутация: 386
Да, точно было - зашарился
Проверил - на первый взгляд все гуд - устанавливается, при переключении таймов меняется, удаляется.
Спасибо.

P.S. В чем разница хочу понять - как правильно:
...double & fi_[], string & fitxt_[],
...double &fi_[], string &fitxt_[],
...double& fi_[], string& fitxt_[],
Всяко правильно. Пробелы вокруг & необязательны, как и вокруг операторов.
ctmcn 
14.02.2014, 10:25
Аватар для hmpr
hmpr hmpr вне форума Прохожий
Регистрация: 02.10.2012 / Сообщений: 2
Поблагодарили 0 раз(а) / Репутация: 1
Так как 0 бар меняется, придётся пересчитывать все бары что бы они то же менялись.
Значит меняем limit=Bars-counted_bars; на limit=Bars;

В MACD быры перебираются от 0. Значит при расчёте всех остальных баров, значение 0 уже посчитано, нужно просто прибавить.
Вместо
Код:
for(int i=0; i<limit; i++)
      MacdBuffer[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
делаем
Код:
for(int i=0; i<limit; i++)
{     MacdBuffer[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
if(i>0)MacdBuffer[i]=MacdBuffer[i]+MacdBuffer[0];
}
Как то так.
Спасибо. Но почему-то не получается. Правда MACD я привел как пример. На самом деле у меня не MACD, а другой индикатор. Вот его код:

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

#property indicator_separate_window
#property indicator_buffers 1

#property indicator_color1 Red
extern int barsToProcess=100;

double ExtMapBuffer1[];

int init()
{

SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexBuffer(0,ExtMapBuffer1);

return(0);
}


int start()
{
int counted_bars=IndicatorCounted();
if (counted_bars>0)counted_bars--;
int limit=Bars-counted_bars;


double dResult;

if(limit>barsToProcess)
limit=barsToProcess;

for(int i=0; i<limit; i++)
{

dResult = Close[i]-Open[i];

ExtMapBuffer1[i]=dResult;

}

return(0);
}
[свернуть]


И чтоб сделать как вы сказали я создал еще один индикатор:

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

#property indicator_separate_window
#property indicator_buffers 1

#property indicator_color1 Red
extern int barsToProcess=100;

double ExtMapBuffer1[];

int init()
{

SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);

return(0);
}


int start()
{
int counted_bars=IndicatorCounted();
if (counted_bars>0)counted_bars--;
int limit=Bars;

if(limit>barsToProcess)
limit=barsToProcess;

for(int i=0; i<limit; i++)
{

ExtMapBuffer1[i]=iCustom(NULL,0,"Result",barsToProcess,0,i);
if(i>0)ExtMapBuffer1[i]=ExtMapBuffer1[i]+ExtMapBuffer1[0];

}

return(0);
}
[свернуть]


И почему-то все-равно ничего не выходит.
14.02.2014, 12:37
Аватар для Genadi22
Genadi22 Genadi22 вне форума Новичок форума
Регистрация: 23.10.2012 / Сообщений: 98
Поблагодарили 28 раз(а) / Репутация: 29
Привет Всем, - доброго здравия,- а также успехов в освоении программирования тем кто решил освоить язык - mql4,

Во первых, - я хочу поблагодарить от всей души,- всех,- кто так или иначе принял участие в проекте – Stels.
Особая благодарность пользователю под ником – SERG…
с ним я знаком лично и на протяжении почти 1.5 месяца ночами напролёт и обьяснявшего и показывавшего на примерах как происходит собственно программирование,- и благодаря его помощи в итоге проект был завершён…
на этом собственно знания по программированию в рамках проекта считаю для себя законченным…

Следующий этап обучения для меня,- научится и желательно виртуозно с помощью кода определять нужное время и нужное место на графике
-----------------------------------------------------------------------------------------------------
ранее я высказывал – непонимание, в неприятии нашими программистами относительно 5 знака…
и даже высказывал предположение что это не может быть каким то длинным кодом,- и можете сами судить,- вот сам код с помощью которого решается вся эта
- я бы даже назвал это – ленью…
//=============
int init()
{
if(Digits == 3 || Digits ==5) // тоже самое (Digits == 3<5)
{
TP *=10;
SL *=10;
sleep *=10;
}
return(0);
}
//=============

это касательно тейков и стопов …
а вот с помощью этого

//=============
double point;
if(Digits == 5) point = 0.0001/Point;
else
{
if(Digits == 3) point = 0.01/Point;
}
//=============
решается проблема отображения индикаторами ценовых уровней – типа без лишних нулей,- то есть если – от искомого уровня - до цены – 10 п, а индикатор показывает все 100…
надо отметить что это один из нескольких вариантов и причём не оригинальный,- но почему то он мне больше приглянулся…
------------------------------------------------------------------------------------------------------------------
С Вашего позволения я закончу официальную и хвалебную части,- и собственно перейду к проблеме которая выявилась, и в итоге из-за которой весь проект и гроша ломанного не стоит…
-------------------------------------------------------------------------------------------------------------------
речь идёт о тактике – “Прайс Экшн”,- вернее не о самой тактике,- а о возможности в программном исполнении передать максимально точную,- а ещё лучше – идеальную картину происходящего на графике – то есть – об отдельной функции способной определить нужное место в нужное время…

В связи с этим я перерыл и даже нарыл дюжину индикаторов(хотя их и не так уж много,- наверное в связи с тем что это считается – ересью,- в отличии от математически признанных), работающих по этому принципу…
изучил их коды(правда много чего не понял,- пока)- но есть у них одна общая черта – они ничего общего с ситуацией на рынке не имеют, и по этому работают сами по себе,- но исполнение самого когда или даже я бы сказал эволюция кода – показывает что сами программисты не имеющие ничего общего с трейдингом,- начали понимать одну особенность – программа не должна,- не может – пороть отсебятину – это плохо кончится для самого трейдера,- вернее его депозита…

И так сама суть проблемы…
свеча – главный и единственный показатель…
имеет четыре общепризнанных параметра

Open[1]
Close[1]
High[1]
Low[1]
манипулируя этими параметрами предполагается распознавание или определение комбинации
на пример:
if
(
Open[2] > Close[2] || // медведи
Open[1] < Close[1] || // бычки
Open[1] => Close[2] ||
Close[1] > Close[2]||
High[1] => High[2]||
Low[1] =< Low[2]||
Low[1] => Close[2]
)
примерно так,- код - должен определить бычье поглощение на графике,- которое на самом деле ничего общего не имеет с определяемыми обьектами - свечами…- иными словами ложных показаний примерно 10 на один истинный…- эволюционированные коды показывают лучший результат,- но не на стоко – что бы их можно было применить хотя бы на худой конец в советнике…

В связи с этим у меня вопрос,
учитель доводилось ли Вам разрабатывать или прорабатывать подобную функцию,- и конечно же большая просьбы ко всем кто так или иначе пытался разработать подобную функцию и имеет наработки в этой области…
а также к тем кто не может пока писать код,- но имеет идеи по этому поводу…

и кстати что бы результат был виден,- ниже проверочный шаблон в котором и проверяется – код…
там написана моя - байда,- которая не хочет работать…
проверяется как обычный советник в тестере,- и ясное дело виден сам результат работы кода…
Ответить

Метки
mql4, mql4 помощь, вопросы mql4


Опции темы

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

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



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


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