Ответить
12.09.2014, 16:04
Регистрация: 13.03.2009 / Сообщений: 2,394
Поблагодарили 1,974 раз(а) / Репутация: 2051
где бы найти полный сборник уроков по этому языку, чтобы начать вникать в суть?
Нормальный букварь у оф сайте _http://book.mql4.com/ru/
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
12.09.2014, 16:30
Регистрация: 16.10.2011 / Адрес: Новосибирск / Сообщений: 1,054
Поблагодарили 3,190 раз(а) / Репутация: 3195
  • Отправить сообщение для tommy27 с помощью Skype™
Нормальный букварь у оф сайте _http://book.mql4.com/ru/
Сложновато там как то всё.. для программеров, а не для простых смертных
Мне раньше очень помогала в освоении стандартная справка в метаэдиторе - всё было удобно сгруппировано и с коротенькими примерами использования, сейчас упорядочили по алфавиту и примеры из справки убрали - очень неудобно, мне это серьёзно осложнило процесс освоения обновлённого мкла
Юла 
12.09.2014, 19:30
Аватар для Bob5
Bob5 Bob5 вне форума Новичок форума
Регистрация: 12.01.2011 / Сообщений: 79
Поблагодарили 25 раз(а) / Репутация: 26
Если кто подскажет, буду признателен.
Бьюсь над задачей, как остановить счетчик на максимальном значении, которое показывает
Profit_Sell() - (показывает эквити открытых
ордеров Sell). Счетчик (вывел на экран в комент)
постоянно бегает в верх, низ. Начинал с этого,
беребрал многое, но неполучается.

double Equity_Sell()
{
double MaxEquity =0 ;

if ( Orders_Sell > 0 )
{
if (Profit_Sell() > MaxEquity) MaxEquity = Profit_Sell() ;
}
return(MaxEquity);
}

По идеи должно быть так - если есть открытые
ордера Sell - счетчик замирает на максимальном достигнутом эквити.
Если нет ордеров Sell - счетчик обнуляется.

Последний раз редактировалось Bob5; 12.09.2014 в 19:34.
12.09.2014, 21:09
Регистрация: 13.03.2009 / Сообщений: 2,394
Поблагодарили 1,974 раз(а) / Репутация: 2051
Если кто подскажет, буду признателен.
Бьюсь над задачей, как остановить счетчик на максимальном значении, которое показывает
Profit_Sell() - (показывает эквити открытых
ордеров Sell). Счетчик (вывел на экран в комент)
постоянно бегает в верх, низ. Начинал с этого,
беребрал многое, но неполучается.

double Equity_Sell()
{
double MaxEquity =0 ;

if ( Orders_Sell > 0 )
{
if (Profit_Sell() > MaxEquity) MaxEquity = Profit_Sell() ;
}
return(MaxEquity);
}

По идеи должно быть так - если есть открытые
ордера Sell - счетчик замирает на максимальном достигнутом эквити.
Если нет ордеров Sell - счетчик обнуляется.
Не всё ясно что от куда берётся, но попробуй так:

double Equity_Sell()
{
static double MaxEquity ;

if ( Orders_Sell > 0 )
{
if (Profit_Sell() > MaxEquity) MaxEquity = Profit_Sell() ;
}
else MaxEquity=0 ;
return(MaxEquity);
}
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Bob5 
12.09.2014, 23:04
Аватар для Bob5
Bob5 Bob5 вне форума Новичок форума
Регистрация: 12.01.2011 / Сообщений: 79
Поблагодарили 25 раз(а) / Репутация: 26
Спасибо Ugar, в десяточку.
12.09.2014, 23:25
Аватар для Bob5
Bob5 Bob5 вне форума Новичок форума
Регистрация: 12.01.2011 / Сообщений: 79
Поблагодарили 25 раз(а) / Репутация: 26
Еще если можно уточнение по предыдущему вопросу - как обозначить тик. Если с Open[0] и Open[1], все понятно, то как обозначить тик[0] и тик[1] . Типа если тик[1]>ma && тик[0]<ma то делаем тото и тото.
13.09.2014, 03:33
Аватар для ansol
ansol ansol на форуме Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,062
Поблагодарили 891 раз(а) / Репутация: 877
Еще если можно уточнение по предыдущему вопросу - как обозначить тик. Если с Open[0] и Open[1], все понятно, то как обозначить тик[0] и тик[1] . Типа если тик[1]>ma && тик[0]<ma то делаем тото и тото.
Volume[0] и Volume[1]
Только это самое Volume слишком сильно зависит от ДЦ, у одного может быть 100, у другого - 1000 тиков в одной и той же свече.
13.09.2014, 08:01
Регистрация: 13.03.2009 / Сообщений: 2,394
Поблагодарили 1,974 раз(а) / Репутация: 2051
Еще если можно уточнение по предыдущему вопросу - как обозначить тик. Если с Open[0] и Open[1], все понятно, то как обозначить тик[0] и тик[1] . Типа если тик[1]>ma && тик[0]<ma то делаем тото и тото.
Для начала уточню, тик это событие прихода новой цены.
По этому событию выполняется функция OnTick(), обычно основной код советника находится там. Значит код выполняется с приходом тика.
Значит:
OnTick()
{
bool Direction=false;
static bool LastDirection;
double ma=iMA(...);
if(Bid>ma)Direction=true;
//Вот условие если Bid>ma, а на прошлом тике это условие не соблюдалось
if(Direction && LastDirection!=Direction)
{
//Выполнить то то
}

//Запомнить направление для следующего тика
LastDirection=Direction;
}
Если нужно сравнивать значения на нескольких тиках, лучше использовать массивы.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Bob5 
14.09.2014, 11:18
Аватар для watasi
watasi watasi вне форума Прохожий
Регистрация: 11.10.2013 / Сообщений: 2
Поблагодарили 0 раз(а) / Репутация: 1
Здравствуйте! В индикатор мной добавлено:

Код:
 input int      font_clr  = clrBlack;
 input int      font_size = 10;
 extern string  font_name = "Impact";
Но хотелось еще и выбор шрифта(не вписывать, а выбрать)
Через модификатор input ?А какой тип данных ?
14.09.2014, 16:22
Аватар для Вовка_25
Вовка_25 Вовка_25 вне форума Новичок форума
Регистрация: 13.05.2011 / Адрес: Россия / Сообщений: 33
Поблагодарили 23 раз(а) / Репутация: 24
привет,подскажите в чем может быть причина,есть советник на обычных котировках работает в тестере а на 99.9 тиковых котировках не подает признаков жизни и не пишет не чего в журнале,посоветуйте что нибудь для решения проблемы
14.09.2014, 16:35
Аватар для ansol
ansol ansol на форуме Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,062
Поблагодарили 891 раз(а) / Репутация: 877
Сообщение от: Вовка_25
привет,подскажите в чем может быть причина,есть советник на обычных котировках работает в тестере а на 99.9 тиковых котировках не подает признаков жизни и не пишет не чего в журнале,посоветуйте что нибудь для решения проблемы
Для этой темы http://forexsystemsru.com/poleznye-u...ry-lite-5.html вопрос. Возможно, сова использует инфу об объемах, а вы не экспортировали данные об объемах. Тогда функция Volume всегда возвращает "1" Как вариант, конечно, не факт.
14.09.2014, 18:21
Аватар для Bob5
Bob5 Bob5 вне форума Новичок форума
Регистрация: 12.01.2011 / Сообщений: 79
Поблагодарили 25 раз(а) / Репутация: 26
Как можно зафиксировать событие-

Пример, пока чо цена выше ма(Moving Average), никаких действий,
если новый бар открылся ниже ма - совершилось событие и только
с этого момента разрешено ТРАЛИТЬ и неважно, где откроется новый бар,
ниже ма или выше ма и пока, что есть открытые ордера Sell,будет разрешено ТРАЛИТЬ .


if (Number_of_Orders_Sell()>0 && Open[0] < ma) Trall(); // разрешено действовать - ТРАЛИМ


но если следующий новый бар открылся выше - ма // получается - ТРАЛ неразрешен, а нужно чтоб был разрешен,
до полного закрытия ордеров Sell.
Как можно решить эту задачку ?

Последний раз редактировалось Bob5; 14.09.2014 в 18:26.
14.09.2014, 19:12
Регистрация: 09.08.2012 / Адрес: Ua_Khm / Сообщений: 1,965
Поблагодарили 9,888 раз(а) / Репутация: 9901
Как можно зафиксировать событие-

Пример, пока чо цена выше ма(Moving Average), никаких действий,
если новый бар открылся ниже ма - совершилось событие и только
с этого момента разрешено ТРАЛИТЬ и неважно, где откроется новый бар,
ниже ма или выше ма и пока, что есть открытые ордера Sell,будет разрешено ТРАЛИТЬ .


if (Number_of_Orders_Sell()>0 && Open[0] < ma) Trall(); // разрешено действовать - ТРАЛИМ


но если следующий новый бар открылся выше - ма // получается - ТРАЛ неразрешен, а нужно чтоб был разрешен,
до полного закрытия ордеров Sell.
Как можно решить эту задачку ?

Как вариант, пробуй так:
bool разрешить трал = false;
if (Number_of_Orders_Sell()>0 && Open[0] < ma) разрешить трал = true;
if(разрешить трал) Trall(); // разрешено действовать - ТРАЛИМ

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

Последний раз редактировалось mobidik; 14.09.2014 в 19:16.
Bob5 
14.09.2014, 20:01
Аватар для Bob5
Bob5 Bob5 вне форума Новичок форума
Регистрация: 12.01.2011 / Сообщений: 79
Поблагодарили 25 раз(а) / Репутация: 26
Спасибо. Буду пробавать.
15.09.2014, 05:16
Аватар для matro3
matro3 matro3 вне форума Почётный гражданин
Регистрация: 18.07.2013 / Сообщений: 349
Поблагодарили 340 раз(а) / Репутация: 344
Как прервать проход в оптимизации советника?
Например: если достигнут предел убытка во сколько-то процентов.
Нужно чтоб оптимизация перешла к следующей итерации.
15.09.2014, 07:05
Регистрация: 13.03.2009 / Сообщений: 2,394
Поблагодарили 1,974 раз(а) / Репутация: 2051
Как прервать проход в оптимизации советника?
Например: если достигнут предел убытка во сколько-то процентов.
Нужно чтоб оптимизация перешла к следующей итерации.
А при чём тут mql?
В тестере кнопка "Свойства эксперта", там вкладка "Оптимизация", там поставить галку "максимальная просадка" и задать %.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
15.09.2014, 07:30
Аватар для matro3
matro3 matro3 вне форума Почётный гражданин
Регистрация: 18.07.2013 / Сообщений: 349
Поблагодарили 340 раз(а) / Репутация: 344
Да, видно голова уже не варит ))
Значит для каких-либо целей такого способа нет?
15.09.2014, 08:46
Аватар для kipjatok001
kipjatok001 kipjatok001 вне форума Почётный гражданин
Регистрация: 13.09.2012 / Сообщений: 424
Поблагодарили 377 раз(а) / Репутация: 378
Добрый день. Есть советник, который выставляет ордера увеличенными в х раз. Нужно изменить лот на начальный лот или на лот, который будет записан в параметрах. Какая это строка. Заранее спасибо.
15.09.2014, 09:08
Регистрация: 13.03.2009 / Сообщений: 2,394
Поблагодарили 1,974 раз(а) / Репутация: 2051
Да, видно голова уже не варит ))
Значит для каких-либо целей такого способа нет?
Сложно хвосту вилять собакой.
Советник при тестировании и оптимизации работает в среде тестера.
Сложно советнику рулить тестером, тем более когда уже процесс запущен.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
15.09.2014, 09:14
Регистрация: 13.03.2009 / Сообщений: 2,394
Поблагодарили 1,974 раз(а) / Репутация: 2051
Добрый день. Есть советник, который выставляет ордера увеличенными в х раз. Нужно изменить лот на начальный лот или на лот, который будет записан в параметрах. Какая это строка. Заранее спасибо.
Это не строка, а вот эта ветка, но и там экстрасенсы, вряд ли, обитают. Без предоставления кода никто не угадает и не переделает.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ответить

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


Опции темы

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

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



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


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