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

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

#3301

1.Вопрос к опытным прогерам: вот я советника на демо поставил, раньше как то не задумывался когда в тестере гонял, бывают моменты что связь обрывается терминала с сервером, а советник записал до обрыва в struct u{} данные свечи хай, лоу, опен, клозед в переменные, так вот вопрос эти данные остаются в переменных после обрыва и соединения терминала, или обнуляются?
еще вопрос!

2.в пробнике: Init
//if (Digits == 3 || Digits == 5) // Так нельзя делать грубая ошибка
// {
// TakeProfit *= 10;
// StopLoss *= 10;
// Slippage *= 10;
// }
я тоже так делаю по урокам Сергея, разьясните пожалуйста почему это ошибка, еще и грубая?

Изменено 24 марта, 2016 пользователем vitek01

#3302
vitek01 при обрыве связи сова как-бы засыпает. все переменные сохраняют значения.
грубая ошибка с коррекцией дистанций от значности счёта возникает только на экзотике, металлах и пр. если торговать мажоры и кроссы по ним, то ошибки не будет.
#3303


Спойлер



Здравствуйте Сергей!!!
Меня зовут Иван ,и проблема у меня такая :
Посмотрев урок№3 и сделал всё тоже самое ,что и ВЫ с кампилировал ТМА и тест3 получилось всё замечательно ,но когда запускаешь в тестере стратегий
,то он даже не загружает и выдаёт следующее:
1) ошибка 2016.03.23 13:18:48.423 2015.10.27 14:00 Tester: cancel execution,
2) предупреждение 2016.03.23 13:18:38.371 2015.10.27 14:00 Tester: stop button pressed

Как можно решить эту проблему?


Добавлено: 23-03-2016 10:51:29

Здравствуйте Сергей!!!
Меня зовут Иван ,и проблема у меня такая :
Посмотрев урок№3 и сделал всё тоже самое ,что и ВЫ с кампилировал ТМА и тест3 получилось всё замечательно ,но когда запускаешь в тестере стратегий
,то он даже не загружает и выдаёт следующее:
1) ошибка 2016.03.23 13:18:48.423 2015.10.27 14:00 Tester: cancel execution,
2) предупреждение 2016.03.23 13:18:38.371 2015.10.27 14:00 Tester: stop button pressed

Как можно решить эту проблему?


Вы ошиблись со знаком


Спасибо РЕБЯТА за помощь,теперь всё работает

Добавлено: 23-03-2016 12:23:06



Здравствуйте Сергей!!!
Меня зовут Иван ,и проблема у меня такая :
Посмотрев урок№3 и сделал всё тоже самое ,что и ВЫ с кампилировал ТМА и тест3 получилось всё замечательно ,но когда запускаешь в тестере стратегий
,то он даже не загружает и выдаёт следующее:
1) ошибка 2016.03.23 13:18:48.423 2015.10.27 14:00 Tester: cancel execution,
2) предупреждение 2016.03.23 13:18:38.371 2015.10.27 14:00 Tester: stop button pressed

Как можно решить эту проблему?


Добавлено: 23-03-2016 10:51:29

Здравствуйте Сергей!!!
Меня зовут Иван ,и проблема у меня такая :
Посмотрев урок№3 и сделал всё тоже самое ,что и ВЫ с кампилировал ТМА и тест3 получилось всё замечательно ,но когда запускаешь в тестере стратегий
,то он даже не загружает и выдаёт следующее:
1) ошибка 2016.03.23 13:18:48.423 2015.10.27 14:00 Tester: cancel execution,
2) предупреждение 2016.03.23 13:18:38.371 2015.10.27 14:00 Tester: stop button pressed

Как можно решить эту проблему?


Вы ошиблись со знаком




Здравствуйте Сергей!!!
Меня зовут Иван ,и проблема у меня такая :
Посмотрев урок№3 и сделал всё тоже самое ,что и ВЫ с кампилировал ТМА и тест3 получилось всё замечательно ,но когда запускаешь в тестере стратегий
,то он даже не загружает и выдаёт следующее:
1) ошибка 2016.03.23 13:18:48.423 2015.10.27 14:00 Tester: cancel execution,
2) предупреждение 2016.03.23 13:18:38.371 2015.10.27 14:00 Tester: stop button pressed

Как можно решить эту проблему?


Добавлено: 23-03-2016 10:51:29

Здравствуйте Сергей!!!
Меня зовут Иван ,и проблема у меня такая :
Посмотрев урок№3 и сделал всё тоже самое ,что и ВЫ с кампилировал ТМА и тест3 получилось всё замечательно ,но когда запускаешь в тестере стратегий
,то он даже не загружает и выдаёт следующее:
1) ошибка 2016.03.23 13:18:48.423 2015.10.27 14:00 Tester: cancel execution,
2) предупреждение 2016.03.23 13:18:38.371 2015.10.27 14:00 Tester: stop button pressed

Как можно решить эту проблему?


Вы ошиблись со знаком



Здравствуйте Сергей!!!
Меня зовут Иван ,и проблема у меня такая :
Посмотрев урок№3 и сделал всё тоже самое ,что и ВЫ с кампилировал ТМА и тест3 получилось всё замечательно ,но когда запускаешь в тестере стратегий
,то он даже не загружает и выдаёт следующее:
1) ошибка 2016.03.23 13:18:48.423 2015.10.27 14:00 Tester: cancel execution,
2) предупреждение 2016.03.23 13:18:38.371 2015.10.27 14:00 Tester: stop button pressed

Как можно решить эту проблему?


Добавлено: 23-03-2016 10:51:29

Здравствуйте Сергей!!!
Меня зовут Иван ,и проблема у меня такая :
Посмотрев урок№3 и сделал всё тоже самое ,что и ВЫ с кампилировал ТМА и тест3 получилось всё замечательно ,но когда запускаешь в тестере стратегий
,то он даже не загружает и выдаёт следующее:
1) ошибка 2016.03.23 13:18:48.423 2015.10.27 14:00 Tester: cancel execution,
2) предупреждение 2016.03.23 13:18:38.371 2015.10.27 14:00 Tester: stop button pressed

Как можно решить эту проблему?


Вы ошиблись со знаком


Уважаемый voldemar227!!!
протестив этого робота на разных ТФ ,в журнале выдаёт кучу предупреждений.Как с этим бороться?
Я так пологаю ,что предупреждений не должно быть во все!


Привет! Я не правил код, я только устранил Вашу ошибку, это первое второе, какие предупреждения ? Их может быть много и выдавать их может не только советник но и терминал...

Добавлено: 24-03-2016 11:59:01


1.Вопрос к опытным прогерам: вот я советника на демо поставил, раньше как то не задумывался когда в тестере гонял, бывают моменты что связь обрывается терминала с сервером, а советник записал до обрыва в struct u{} данные свечи хай, лоу, опен, клозед в переменные, так вот вопрос эти данные остаются в переменных после обрыва и соединения терминала, или обнуляются?
еще вопрос!

2.в пробнике: Init
//if (Digits == 3 || Digits == 5) // Так нельзя делать грубая ошибка
// {
// TakeProfit *= 10;
// StopLoss *= 10;
// Slippage *= 10;
// }
я тоже так делаю по урокам Сергея, разьясните пожалуйста почему это ошибка, еще и грубая?



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

Вы можете сделать так:
void OnInit()
{
tp = TakeProfit;
sl = StopLoss;
sli = Slippage ;

if (Digits == 3 || Digits == 5)
{
tp *= 10;
sl *= 10;
sli *= 10;
}
}

Изменено 24 марта, 2016 пользователем voldemar227

#3304

Спасибо за ответы! Вопрос еще если можно; Покупка открывается по Bid и закрывается по Askу, с продажами все наоборот. А если ошибся где нить например тейк профит на продажу поставил по Ask, на реальном счете, или на есн счете будет закрыватся по тейку или выскочит ошибка в журнале неправильные стопы или еще чтонибудь?
Очень часто ошибаюсь, но в тестере все нормально прокатывает, может думаю это не так важно???

#3305



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

Вы можете сделать так:
void OnInit()
{
tp = TakeProfit;
sl = StopLoss;
sli = Slippage ;

if (Digits == 3 || Digits == 5)
{
tp *= 10;
sl *= 10;
sli *= 10;
}
}


Кстати, все время хотел узнать почему?
#3306


Спасибо за ответы! Вопрос еще если можно; Покупка открывается по Bid и закрывается по Askу, с продажами все наоборот. А если ошибся где нить например тейк профит на продажу поставил по Ask, на реальном счете, или на есн счете будет закрыватся по тейку или выскочит ошибка в журнале неправильные стопы или еще чтонибудь?
Очень часто ошибаюсь, но в тестере все нормально прокатывает, может думаю это не так важно???



Покупка только по Ask, продажа только по Bid, по другому нельзя !!! любая покупка или активация отложенника бай только по Ask.
Закрытие Buy ордера хоть по тейку, хоть руками, хоть по стоп лоссу только по Bid и никак по другому.

В тестере может прокатить по разному, но на реале ордер не откроется или не закроется.... (теперь понимаете почему тестирование стратегий в тестере не реально)

Для селов наоборот....

Добавлено: 24-03-2016 14:27:34




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

Вы можете сделать так:
void OnInit()
{
tp = TakeProfit;
sl = StopLoss;
sli = Slippage ;

if (Digits == 3 || Digits == 5)
{
tp *= 10;
sl *= 10;
sli *= 10;
}
}


Кстати, все время хотел узнать почему?

глобальные переменные ввода данных особого типа extern или input получают свои значения из наастроек.
Не рекомендуется их изменять программно.
#3307


Не рекомендуется их изменять программно.


Кем не рекомендуется? Так не рекомендуется или "грубая ошибка"?
У меня например советник уже много месяцев нормально работает на вышеприведенном коде (extern переменные умножаются в init на 10 для 5-ти знака), никаких глюков и ошибок не наблюдаю. Вот и интересно, почему и кем не рекомендуется?

Цитата из хелпа:
Цитата

Подобно input-переменным, extern-переменные также определяют входные параметры mql4-программы, они доступны из окна свойств. В отличии input-переменных, значения extern-переменных могут быть программно изменены в процессе работы программы.




#3308



Не рекомендуется их изменять программно.


Кем не рекомендуется? Так не рекомендуется или "грубая ошибка"?
У меня например советник уже много месяцев нормально работает на вышеприведенном коде (extern переменные умножаются в init на 10 для 5-ти знака), никаких глюков и ошибок не наблюдаю. Вот и интересно, почему и кем не рекомендуется?

Цитата из хелпа:
Цитата

Подобно input-переменным, extern-переменные также определяют входные параметры mql4-программы, они доступны из окна свойств. В отличии input-переменных, значения extern-переменных могут быть программно изменены в процессе работы программы.



Я сам так раньше делал пока не начали советники вылетать из графиков, писал в сервис деск разработчиков терминала, проблему они устранили и рекомендовали не использовать глобальные переменный с вводимыми данными из настроек. Заявку в сервис деск не нашёл , у меня их 120.
#3309

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

Вы можете сделать так:
void OnInit()
{
tp = TakeProfit;
sl = StopLoss;
sli = Slippage ;

if (Digits == 3 || Digits == 5)
{
tp *= 10;
sl *= 10;
sli *= 10;
}
}
____________________________________________________________________________
Значит при выставлений ТР=NormaliseDouble(Bid+" я должен записать tp, а не TakeProfit" на покупку ?!

Изменено 24 марта, 2016 пользователем vitek01

#3310


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

Вы можете сделать так:
void OnInit()
{
tp = TakeProfit;
sl = StopLoss;
sli = Slippage ;

if (Digits == 3 || Digits == 5)
{
tp *= 10;
sl *= 10;
sli *= 10;
}
}

Значит при выставлений ТР=NormaliseDouble(Bid+" я должен записать tp, а не TakeProfit" на покупку ?!


Верно ! Вы уже нормально понимаете процессы программирования, поздравляю !
#3311

спасибо за помощь! уже не важно но все же напишу, нашел в учебнике, все правильно!

Правильной ценой открытия рыночного ордера Buy является последняя известная рыночная цена Ask.
Правильной ценой открытия рыночного ордера Sell является последняя известная рыночная цена Bid.

Правильной ценой закрытия рыночного ордера Buy является последняя известная рыночная цена Bid.
Правильной ценой закрытия рыночного ордера Sell является последняя известная рыночная цена Ask.

Изменено 24 марта, 2016 пользователем vitek01

#3312

Здравствуйте, подскажите пожалуйста, каким образом создаются дополнительные панельки для mt4, в частности интересует вывод различной информации о работе советника. Стандартный вариант Comment() слишком примитивен, а ObjectCreate() как то тоже не годится для таких целей.

#3313


Здравствуйте, подскажите пожалуйста, каким образом создаются дополнительные панельки для mt4, в частности интересует вывод различной информации о работе советника. Стандартный вариант Comment() слишком примитивен, а ObjectCreate() как то тоже не годится для таких целей.


Есть канва, но она даже для профи ад. В 99.999999999% случаях только ObjectCreate().
#3314

А можно ли сделать чтобы внутри материнской свечи не появлялись внутрение свечи, и только закрытие выше хай или лоу обозначало новую материнскую свечу и опять по кругу. функция Sleep может что то подобное ?
Заранее спасибо за любой ответ!

#3315


А можно ли сделать чтобы внутри материнской свечи не появлялись внутрение свечи, и только закрытие выше хай или лоу обозначало новую материнскую свечу и опять по кругу. функция Sleep может что то подобное ?
Заранее спасибо за любой ответ!


Ваш вопрос весьма не ясен...
Расшифруйте детально...
#3316



А можно ли сделать чтобы внутри материнской свечи не появлялись внутрение свечи, и только закрытие выше хай или лоу обозначало новую материнскую свечу и опять по кругу. функция Sleep может что то подобное ?
Заранее спасибо за любой ответ!


Ваш вопрос весьма не ясен...
Расшифруйте детально...


Появилась большая бычья свеча, у нее есть вершина - хай и низина-лоу, и вот свечки внутри начали болтатся туда сюда не выходя за хай и лоу материнской свечи, я хочу чтобы небыло этих свечей внутри, и только если какято свеча закроется ниже или выше хай или лоу она становится материнской и внутри нее так же не отображаются внутрение свечи.
одному програмисту заказывал он зделал, но дорого просит слишком!
#3317




А можно ли сделать чтобы внутри материнской свечи не появлялись внутрение свечи, и только закрытие выше хай или лоу обозначало новую материнскую свечу и опять по кругу. функция Sleep может что то подобное ?
Заранее спасибо за любой ответ!


Ваш вопрос весьма не ясен...
Расшифруйте детально...

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

Я Вас не понимаю, простите ... Первый раз слышу о материнских свечах... Может картинки какие есть ?
#3318





А можно ли сделать чтобы внутри материнской свечи не появлялись внутрение свечи, и только закрытие выше хай или лоу обозначало новую материнскую свечу и опять по кругу. функция Sleep может что то подобное ?
Заранее спасибо за любой ответ!


Ваш вопрос весьма не ясен...
Расшифруйте детально...

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

Я Вас не понимаю, простите ... Первый раз слышу о материнских свечах... Может картинки какие есть ?

22.png

#3319

vitek01, опираясь на ваши слова, только это в голову приходит,
однако эти уровни надо куда- прикручивать, чтобы от них польза была.

if(High[1] > high || Low[1] {
high = High[1];
low = Low[1];
}

#3320






А можно ли сделать чтобы внутри материнской свечи не появлялись внутрение свечи, и только закрытие выше хай или лоу обозначало новую материнскую свечу и опять по кругу. функция Sleep может что то подобное ?
Заранее спасибо за любой ответ!


Ваш вопрос весьма не ясен...
Расшифруйте детально...

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

Я Вас не понимаю, простите ... Первый раз слышу о материнских свечах... Может картинки какие есть ?


Теперь понятно, я б помог но сейчас занят, ваша просьба не слишком сложна.. Может позже..
Чисто из любопытсва, сколько запросил другой прогер ?, можно в личку..
#3321







А можно ли сделать чтобы внутри материнской свечи не появлялись внутрение свечи, и только закрытие выше хай или лоу обозначало новую материнскую свечу и опять по кругу. функция Sleep может что то подобное ?
Заранее спасибо за любой ответ!


Ваш вопрос весьма не ясен...
Расшифруйте детально...

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

Я Вас не понимаю, простите ... Первый раз слышу о материнских свечах... Может картинки какие есть ?


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

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








А можно ли сделать чтобы внутри материнской свечи не появлялись внутрение свечи, и только закрытие выше хай или лоу обозначало новую материнскую свечу и опять по кругу. функция Sleep может что то подобное ?
Заранее спасибо за любой ответ!


Ваш вопрос весьма не ясен...
Расшифруйте детально...

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

Я Вас не понимаю, простите ... Первый раз слышу о материнских свечах... Может картинки какие есть ?


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

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

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

voldemar227 вам то зачем заказывать, вы сами напишите себе бота. А лучший советник это тот который вы написали сами, я поэтому взялся за изучение програмирования MQL4. И все мой стратегий вмиг разбились о суровую статистику, стратегий которые я вручную торговал были вкорне неверными, а советники это показали и дали мне новую пищу для размышлений и новое еаправление. 100 доларов средняя цена за советника .

#3324

Понравился урок про построение сеточника. Написал как в уроке и потестировал. Прибыльность, конечно, вскружила голову! Однако сова живет от силы год-два, даже если объем сделки 0,01 на 10000 ед.валюты. Скажите, возможно ли ограничить слив?, скажем, если суммарный убыток достигает столько-то, то вся сетка закрывается,и по-новой.

#3325


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

Конечно возможно и часто делается, но результат Вам не понравится. Это будет лесенка вниз. Как показала практика в теме "Forex Setka Trader Mod" лучше рисковать по полной и снимать доход, до слива часто рынок даёт снять более 100% начального депо

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

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