Перейти к содержанию

Обучение языку MQL4 под MetaTrader 4


Рекомендуемые сообщения

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Физкульт Привет :-H!!!
Народ я здесь новичок на форуме но не в программировани начинал с "С" 2 года назад!

Ну вот первый вопрос: как вывести на экран несколько комментариев то есть

Comment(................

Comment(................

у меня только последний выходит :-?

Ссылка на сообщение
Поделиться на другие сайты

  • Ответов 6,8k
  • Создано
  • Последний ответ

Популярные авторы

Популярные авторы

Популярные посты

Смотрим видео-уроки, изучаем MQL:       Скачать видеокурс «MQL программирование. Как самому написать форекс советник/ индикатор/ скрипт»   P.S. Тема про Обучение MQ

Перейти

Циклы цикл for Иногда необходимо повторять одно и то же действие несколько раз подряд. Для этого используют циклы. К примеру, мы хотим проанализировать последние 10 баров и выяснить наименьшую цен

Перейти

Речь идет о том, что не будет значимых нововведений. А только баги периодически будут править. А вот все новое мол - в МТ5. Когда они вживую сказали то же самое на конференции в Москве, я уточнил: "То

Перейти
Обучение языку MQL4 под MetaTrader 4 Опубликовано


Физкульт Привет :-H!!!
Народ я здесь новичок на форуме но не в программировани начинал с "С" 2 года назад!

Ну вот первый вопрос: как вывести на экран несколько комментариев то есть

Comment(................

Comment(................

у меня только последний выходит :-?



Используй принцип сложения строк...
Comment("Test1" + "\n" + "Test2");

\n - перевод строки
  • Лайк 3
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано



Физкульт Привет :-H!!!
Народ я здесь новичок на форуме но не в программировани начинал с "С" 2 года назад!

Ну вот первый вопрос: как вывести на экран несколько комментариев то есть

Comment(................

Comment(................

у меня только последний выходит :-?



Используй принцип сложения строк...
Comment("Test1" + "\n" + "Test2");

\n - перевод строки





x_x конечно вспомнил!!!! Даже стыдно стало!
СПАСИБО!!!!

Есть хорошие вопросы к Вам Xbms но потом!
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано


Понимаю, что знаний ой как недостаточно. Пол ночи проковырялась, но успеха так и не добилась. Видимо, меня уже клинит. Выложите, пожалуйста, код. Сяду за него и не встану, пока не пойму. А по поводу еновых я в курсе. Вообще, хотела потом уже рабочую сову под каждую пару подстроить и в названии указать и пару, т.к. разница ощутима. Очень жду Вашего ответа.



Это макет :d
Индикатор перерисовывается и сов потихоньку сливает...
Попытка передать Ваши настройки в индикатор, приводят к зависанию советника (буфер синей линии выдаёт очень большие значения).

Naglaya_001.mq4

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано



Понимаю, что знаний ой как недостаточно. Пол ночи проковырялась, но успеха так и не добилась. Видимо, меня уже клинит. Выложите, пожалуйста, код. Сяду за него и не встану, пока не пойму. А по поводу еновых я в курсе. Вообще, хотела потом уже рабочую сову под каждую пару подстроить и в названии указать и пару, т.к. разница ощутима. Очень жду Вашего ответа.



Это макет :d
Индикатор перерисовывается и сов потихоньку сливает...
Попытка передать Ваши настройки в индикатор, приводят к зависанию советника (буфер синей линии выдаёт очень большие значения).



Спасибо. Нашла одну ошибочку, видимо механическую, и BUY и SELL открываются по ASK. Кстати, у меня изменены настройки индюка: extern int SSP = 4, extern double Kmax = 30. Прогнала до 3 месяцев - открывается один единственный ордер BUY и все. Что-то не так, пытаюсь понять что. Может, Вы раньше поймете. Да, еще одно: хотелось бы, чтобы ордера открывались в определенном временном промежутке, например с 9.00 до 18.00.
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

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

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано (изменено)
xbms, спасибо за очередной урок \M/ <:-p>


Спасибо. Нашла одну ошибочку, видимо механическую, и BUY и SELL открываются по ASK. Кстати, у меня изменены настройки индюка: extern int SSP = 4, extern double Kmax = 30. Прогнала до 3 месяцев - открывается один единственный ордер BUY и все. Что-то не так, пытаюсь понять что. Может, Вы раньше поймете. Да, еще одно: хотелось бы, чтобы ордера открывались в определенном временном промежутке, например с 9.00 до 18.00.


Ну вот, ошибки находить умеете :)
Виноват, спешил. Было две версии, в этой забыл исправить :-b

Цитата

Попытка передать Ваши настройки в индикатор, приводят к зависанию советника (буфер синей линии выдаёт очень большие значения).


Потому и не работает. Значение SSP ниже 6, вешает советник. Индикатор я не исправлю...

Добавлено: 06-10-2013 18:47:39

Время добавил, лучше не стало...

Naglaya_001.mq4

Изменено пользователем Vorchunozavr
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано


xbms, спасибо за очередной урок \M/ <:-p>


Спасибо. Нашла одну ошибочку, видимо механическую, и BUY и SELL открываются по ASK. Кстати, у меня изменены настройки индюка: extern int SSP = 4, extern double Kmax = 30. Прогнала до 3 месяцев - открывается один единственный ордер BUY и все. Что-то не так, пытаюсь понять что. Может, Вы раньше поймете. Да, еще одно: хотелось бы, чтобы ордера открывались в определенном временном промежутке, например с 9.00 до 18.00.


Ну вот, ошибки находить умеете :)
Виноват, спешил. Было две версии, в этой забыл исправить :-b

Цитата

Попытка передать Ваши настройки в индикатор, приводят к зависанию советника (буфер синей линии выдаёт очень большие значения).


Потому и не работает. Значение SSP ниже 6, вешает советник. Индикатор я не исправлю...

Добавлено: 06-10-2013 18:47:39

Время добавил, лучше не стало...

Вот пытаюсь присоединить MACD. Чтобы ордера на покупку открывались, когда гистограмма положительна, а продажи, когда отрицательна. Только пока куча ошибок.
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано


Помогите я сейчас пытаюсь вникнуть по 3 уроку не втыкаю где у меня ошибка и как исправить



Два раза это:
for(OrderClose(int i=OrdersTotal()-1; i>=0; i--)


И в конце основного блока (перед return(0)), не хватает фигурной скобки.
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано (изменено)


Скобка в конце цикла а не после ретурн!!! А вообще цикл менять не надо только условия закрытия ордеров! Изменено пользователем elruso
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано (изменено)


Цитата

Нужно что-то типа виртуальных BUY_STOP и SELL_STOP?



Ага, а вообще хочется реализовать такую вещь в советнике

_http://www.mql5.com/ru/market/product/380#full_description


Похоже на скрипт для торговли на новостях
1. Можно решить так:
Спойлер

//-----------------------------------+

if (MathAbs(OpenPriceSell - Bid)/Point) ticket = OrderSend (Symbol(), OP_SELL, NewLot, Bid, Slipagge, 0, 0, "0", magic, 0, Red );

//-----------------------------------+

if (MarketInfo(Symbol(), MODE_SPREAD) {
if (MathAbs(OpenPriceBuy - Ask)/Point) ticket = OrderSend (Symbol(), OP_BUY, NewLot, Ask, Slipagge, 0, 0, "0", magic, 0, Blue );
}
//-----------------------------------+



spread - во внешние переменные. Если текущий спред больше заданного бай не устанавливаем.
2. Опасно - могут далеко мордой по асфальту протащить...
3. Это уже сделано.
4. захотим - поставим.

Добавлено: 06-10-2013 22:32:23


Скобка в конце цикла а не после ретурн!!! А вообще цикл менять не надо только условия закрытия ордеров!


Ну вот..., и тут цензура.
Как говорится: я смогу ответить за свои слова, но не смогу ответить за то, что Вы услышали.

Изменено пользователем Vorchunozavr
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Xbms домашнее задание готово :-b по уроку 1.5 \M/ только вот не знаю куда его сюда прямо выложить или как?

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано


Xbms домашнее задание готово :-b по уроку 1.5 \M/ только вот не знаю куда его сюда прямо выложить или как?



да, сюда... как вложение...
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано



Xbms домашнее задание готово :-b по уроку 1.5 \M/ только вот не знаю куда его сюда прямо выложить или как?



да, сюда... как вложение...


Вот готово!!!

test_1.5.mq4

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано




Xbms домашнее задание готово :-b по уроку 1.5 \M/ только вот не знаю куда его сюда прямо выложить или как?



да, сюда... как вложение...


Вот готово!!!


Извини, дружище, но задание выполнено совершенно неправильно!
Ощущение, что не понимаешь что хочешь сделать...
Попробуй вникнуть в задачу и всё-таки решить её.
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано (изменено)





Xbms домашнее задание готово :-b по уроку 1.5 \M/ только вот не знаю куда его сюда прямо выложить или как?



да, сюда... как вложение...


Вот готово!!!


Извини, дружище, но задание выполнено совершенно неправильно!
Ощущение, что не понимаешь что хочешь сделать...
Попробуй вникнуть в задачу и всё-таки решить её.



вопрос 1 - Напишите программу (советник или скрипт), который заполнит массив случайными целыми значениями (используйте для этого встроенную функцию MathRand). Вывести значения в журнал экспертов.

ответ:

int start()
{
//----

int God[12];

for (int i =0 ; i {

God=i;

MathSrand(i);
Print(MathRand());

}

return(0);
}

вопрос 2 - Создайте и заполните массив с максимальными ценами за последние X баров (указать как внешний параметр). Значения массива вывести на экран терминала.


ответ:

int start()
{
double Bar_max_peak;

double Prices[];


for (int p =1 ; p {


Bar_max_peak = iHigh(NULL,0,p);



Prices[p]= Bar_max_peak;


MathSrand(p);
Print(Bar_max_peak);

}

return(0);
}


Что я неправильно понял Xbms объясните пожалуйста?
Изменено пользователем elruso
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано (изменено)

ну давайте по первому вопросу: где заполнение массива случайными числами?
я тут такого даже близко не вижу...

Изменено пользователем xbms
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано (изменено)


ну давайте по первому вопросу: где заполнение массива случайными числами?
я тут такого даже близко не вижу...



God=i; // сдесь и в квадратных скобках перед = ТОЛЬКО ОНИ ИСЧЕЗАЮТ ПОСЛЕ ОТПРАВЛЕНИЯ

MathSrand(i);
Print(MathRand());

в журнале рандомные числа ИЛИ НЕТ?
журнал врёт? или это ошибка?

а во втором массиве залиты максимумы 6 последних баров не так?

Screen_Shot_2013-10-07_at_1.30.44_AM.png

Изменено пользователем elruso
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано



ну давайте по первому вопросу: где заполнение массива случайными числами?
я тут такого даже близко не вижу...



God=i; // сдесь и в квадратных скобках перед = ТОЛЬКО ОНИ ИСЧЕЗАЮТ ПОСЛЕ ОТПРАВЛЕНИЯ

MathSrand(i);
Print(MathRand());

в журнале рандомные числа ИЛИ НЕТ?

а во втором массиве залиты максимумы 6 последних баров не так?


God [ i ]=MathRand(); - вот так будет правильно

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

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано (изменено)




ну давайте по первому вопросу: где заполнение массива случайными числами?
я тут такого даже близко не вижу...



God=i; // сдесь и в квадратных скобках перед = ТОЛЬКО ОНИ ИСЧЕЗАЮТ ПОСЛЕ ОТПРАВЛЕНИЯ

MathSrand(i);
Print(MathRand());

в журнале рандомные числа ИЛИ НЕТ?

а во втором массиве залиты максимумы 6 последних баров не так?


God [ i ]=MathRand(); - вот так будет правильно

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


Xbms да всё ясно это как у Вас в уроке идентично только вместо i надо MathRand!
просто я читал документацию об етой функции и там написано что ей надо MathSrand()
почему тогда у меня он выдал в журнале ети числа?
Можете объяснить? И почему второе задание получилось?

int start()
{
//----

int God[12];

for (int i =0 ; i {

God=MathRand(); // не понимаю почему i исчезает!???



}


for (i =0 ; i {




Print(MathRand());

}



return(0);
}
Изменено пользователем elruso
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

а в журнале они потому что:

for (i =0 ; i {

Print(MathRand());
}

второй цикл сразу печатает в журнале НОВЫЕ! случайные значения...
И разумеется они не будут совпадать с тем, что уже в массиве из первого цикла.

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано (изменено)


а в журнале они потому что:

for (i =0 ; i {

Print(MathRand());
}

второй цикл сразу печатает в журнале НОВЫЕ! случайные значения...
И разумеется они не будут совпадать с тем, что уже в массиве из первого цикла.




Да для этого второй цикл я понял!

Добавлено: 07-10-2013 13:48:35



а в журнале они потому что:

for (i =0 ; i {

Print(MathRand());
}

второй цикл сразу печатает в журнале НОВЫЕ! случайные значения...
И разумеется они не будут совпадать с тем, что уже в массиве из первого цикла.




Да для этого второй цикл я понял!



А почему второе задание получилось в журнале?

Добавлено: 07-10-2013 14:01:03

И почему первое задание мне выдала рандомные числа тоже с одним циклом?

Добавлено: 07-10-2013 14:12:34

Xbms Объясняйте?!?! ~x( он по любому рандом выдаёт и без массива!!!

int start()
{
//----


for (int i =0 ; i {

Print(MathRand());


}


return(0);
}

Добавлено: 07-10-2013 14:29:40

как прочитать массив с рандомными числами?

если написать Print(i); во втором цикле то не выходят всё равно!!!! пишет 1,2,3........



Добавлено: 07-10-2013 14:48:02

Свё понял можете не отвечать!!!

ето второе задание


Добавлено: 07-10-2013 15:10:55

Xbms извините у меня всётаки есть пару вопросов l-) Вы ответите или я может Вас уже достал? тогда ладно поищу в другом месте!!!

Screen_Shot_2013-10-07_at_9.23.15_AM.png
Screen_Shot_2013-10-07_at_9.46.55_AM.png

Изменено пользователем elruso
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Добрый день. Проблема вот в чем:
Второй урок по циклам, и написание советника, который в 10 утра открывает 2 отложки.

Писал всё как было по курсу, скомпилирол без ошибок, но в тестере стратегий советник не запускается, вообще, никак, во время визуализации вообще график не двигается:(

Скажите в чем может быть проблема?

problem.ex4
problem.mq4

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано (изменено)


Добрый день. Проблема вот в чем:
Второй урок по циклам, и написание советника, который в 10 утра открывает 2 отложки.

Писал всё как было по курсу, скомпилирол без ошибок, но в тестере стратегий советник не запускается, вообще, никак, во время визуализации вообще график не двигается:(

Скажите в чем может быть проблема?



перезагрузи историю может!!! и проверь период по которому тв тестишь!!!!

Добавлено: 07-10-2013 18:52:49

Народ а кто подскажет как получить дистанцию в пипах ну допустим от iOpen до iClose??? Изменено пользователем elruso
Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Специальное предложение


  • Рекомендуемые брокеры

  • ×
    ×
    • Создать...