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

От xbms, 13 апреля, 2013 в Уголок Программиста

#326

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

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

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

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

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

Автор#327


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

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

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

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

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



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

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



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

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

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

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

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



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

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





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

Есть хорошие вопросы к Вам Xbms но потом!
#329


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



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

Naglaya_001.mq421 скач.

#330

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

Sovetnik_3.mq416 скач.

#331



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



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



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

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

#333
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.mq414 скач.

Изменено 6 октября, 2013 пользователем Vorchunozavr

#334


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. Чтобы ордера на покупку открывались, когда гистограмма положительна, а продажи, когда отрицательна. Только пока куча ошибок.
#335


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



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


И в конце основного блока (перед return(0)), не хватает фигурной скобки.
#336


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

Изменено 7 октября, 2013 пользователем elruso

#337


Цитата

Нужно что-то типа виртуальных 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


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


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

Изменено 7 октября, 2013 пользователем Vorchunozavr

#338

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

Автор#339


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



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



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



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


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

test_1.5.mq426 скач.

Автор#341




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



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


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


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





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 объясните пожалуйста?

Изменено 7 октября, 2013 пользователем elruso

Автор#343

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

Изменено 7 октября, 2013 пользователем xbms

#344


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



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

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

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

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

Screen_Shot_2013-10-07_at_1.30.44_AM.png

Изменено 7 октября, 2013 пользователем elruso

Автор#345



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



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

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

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

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


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

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

#346




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



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);
}

Изменено 7 октября, 2013 пользователем elruso

Автор#347

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

for (i =0 ; i {

Print(MathRand());
}

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

#348


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

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

Изменено 7 октября, 2013 пользователем elruso

#349

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

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

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

problem.ex47 скач.
problem.mq414 скач.

#350


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

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

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



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

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

Народ а кто подскажет как получить дистанцию в пипах ну допустим от iOpen до iClose???

Изменено 7 октября, 2013 пользователем elruso

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

Перейти к списку тем
Форум · 2.0.20260627.0025