Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 676

 

Artyom Trishkin:

Похоже - переработал я...

Похоже на то... ))))))

Когда создаёшь советник в соответствии с инструкциями справки и учебников всяческих, то создаётся именно тот шаблон о котором идёт речь. Я понял именно так. Потом некоторые места в этом шаблоне правят. Лично мне не нравится, что OnDeinit() стоит перед OnTick() и я переношу его в самый конец кода. Ну и ещё мне не нравятся некоторые несущественные .... в общем у меня свои тараканы в башке...

 
Andrey Sokolov:

это и ежу понятно, мне тоже интересно про сам шаблон

лет 5 назад точно был шаблон в папке метаэдитора, раньше правил под себя, сейчас все перерыл в папке терминала - не нашел, но он должен где то быть, был обычный текстовый файл

ЗЫ:

нашел у себя старые терминалы не в дистрибутивах - уже развернутые

были раньше шаблоны экспертов/индикаторов/скриптов/библиотек, все лежало по пути: 

....\experts\templates

и там находились файлы: 

Include.mqt

Library.mqt

Expert.mqt

Indicator.mqt

Script.mqt


Попробовал скопировать папку templates в папку установленного МТ4...увы никак (((

Файлы:
templates.zip  7 kb
 
Igor Makanu:

лет 5 назад точно был шаблон в папке метаэдитора, раньше правил под себя, сейчас все перерыл в папке терминала - не нашел, но он должен где то быть, был обычный текстовый файл

ЗЫ:

нашел у себя старые терминалы не в дистрибутивах - уже развернутые

были раньше шаблоны экспертов/индикаторов/скриптов/библиотек, все лежало по пути: 

....\experts\templates

и там находились файлы: 

Include.mqt

Library.mqt

Expert.mqt

Indicator.mqt

Script.mqt


Попробовал скопировать папку templates в папку установленного МТ4...увы никак (((

Давно уже МК отказались от таких шаблонов.

 
Igor Makanu:

лет 5 назад точно был шаблон в папке метаэдитора, раньше правил под себя, сейчас все перерыл в папке терминала - не нашел, но он должен где то быть, был обычный текстовый файл

ЗЫ:

нашел у себя старые терминалы не в дистрибутивах - уже развернутые

были раньше шаблоны экспертов/индикаторов/скриптов/библиотек, все лежало по пути: 

....\experts\templates

и там находились файлы: 

Include.mqt

Library.mqt

Expert.mqt

Indicator.mqt

Script.mqt


Попробовал скопировать папку templates в папку установленного МТ4...увы никак (((

Опять "увы никак" - даже в рамках МТ4!

Полное непонимание происходящего!

Игорь!

 Тебе надо "перепрошиться" !

А то ведь, нехорошо получается! На Форуме разное про тебя говорят!!!

 
Igor Makanu:

Не важно, что о тебе говорят, главное, что о тебе говорят. (С)

Когда цитируешь мысли умных людей (в отличие о тебя самого)- следует делать ссылку!!!

По  правилам публикаций так положено. Чтобы дураков от умных отличить.

https://socratify.net/quotes/iuristy-bostona/171580

Хотя Муссолини говорил тоже самое.

Не важно, что о тебе говорят, главное, что о тебе говорят
  • socratify.net
Если хочешь узнать человека, не слушай, что о нём говорят другие, послушай, что он говорит о других. Не важно, что тебе скажут другие о начале твоего пути. Важно, что они скажут после того когда ты добьешься своей цели. Вы знаете, что такое обаяние? Умение почувствовать, как тебе говорят «да», хотя ты ни о чем не спрашивал. Настоящий друг — это...
 
neverness:

Когда цитируешь мысли умных людей (в отличие о тебя самого)- следует делать ссылку!!!

По  правилам публикаций так положено. Чтобы дураков от умных отличить.

мы уже на ты? ОК

Не тот форум ты выбрал свою желчь выплескивать, как и ты просил: "Смешно наблюдать за человеком, который хочет тебя обидеть. Как обезьяна, которая кидается какашками. Ты за стеклом, а у неё все лапы в ***" (интернет)

 
Igor Makanu:

SELECT_BY_POS это выбор ордера "по очередности" в списке ордеров, и в Вашей конструкции:

Вы пытаетесь выбрать ордер который по очереди ордеров № ... а Вы тут № тикета используете, а у Вас всего 1 ордер, а тикет № 10023444... и что ?  тут Вам нужно число от 1 до 2,3.. ну сколько ордеров в рынке у Вас  ,.. подправил число от 0,1,2... - нумерация как в массиве с 0 начинается и до OrdersTotal()-1

SELECT_BY_TICKET должно работать, но до момента когда № тикета у Вас существует, т.е. ордер у Вас рыночный, и выше у Вас проверка на отправку ордера, а если ордер не отправлен то тикет то будет = -1 !!!, вот Вы наверное и пытаетесь иногда ордер с тикетом -1 выбрать

ну и в целом, не правильная у Вас конструкция по работе с ордерами, если решили MQL изучать, то вот уже готовые примеры для работы с ордерами https://www.mql5.com/ru/forum/131859

Спасибо за помощь! Дело в том, что ордер открылся. Я проверял. Присвоен тикет. Но далее при попытке выбрать его я получил сообщение -1. В отличие от приведенного Вами примера я не выбираю символ и т.д. У меня 1 ордер, с известной лотностью, операцией, без Stop Loss/Take Profit и т.д. Именно в такой конструкции (она выбрана для простоты) при использовании параметра SELECT_BY_TICKET я получаю ошибку 4051. Я понимаю, что использовать SELECT_BY_POS не правильно в данном случае. Это был эксперимент для лучшего понимания работы тестера стратегий. Этот эксперимент показал, что тестер стратегий присваивает не тикеты, выделяемые сервером, при  не возможности связаться с сервером, а просто порядковые номера. И тем не менее остается вопрос почему возникает ошибка 4051. Кроме того я пробовал в сочетании с SELECT_BY_POS первым параметром ставить 0 в OrderSelect. Ответ тот же 4051.
 
ski1973:
Спасибо за помощь! Дело в том, что ордер открылся. Я проверял. Присвоен тикет. Но далее при попытке выбрать его я получил сообщение -1. В отличие от приведенного Вами примера я не выбираю символ и т.д. У меня 1 ордер, с известной лотностью, операцией, без Stop Loss/Take Profit и т.д. Именно в такой конструкции (она выбрана для простоты) при использовании параметра SELECT_BY_TICKET я получаю ошибку 4051. Я понимаю, что использовать SELECT_BY_POS не правильно в данном случае. Это был эксперимент для лучшего понимания работы тестера стратегий. Этот эксперимент показал, что тестер стратегий присваивает не тикеты, выделяемые сервером, при  не возможности связаться с сервером, а просто порядковые номера. И тем не менее остается вопрос почему возникает ошибка 4051. Кроме того я пробовал в сочетании с SELECT_BY_POS первым параметром ставить 0 в OrderSelect. Ответ тот же 4051.

если не ошибаюсь, то тестер стратегий генерирует тикеты просто по очереди выставления ордеров: 1,2,3...

увы, Вам самостоятельно нужно искать ошибку 4051, распринтуйте все переменные которые в OrderSelect передаете

как вариант, Вы выбираете уже закрытый ордер, у закрытого ордера время закрытия будет >0,

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

 
ski1973:
Спасибо за помощь! Дело в том, что ордер открылся. Я проверял. Присвоен тикет. Но далее при попытке выбрать его я получил сообщение -1. В отличие от приведенного Вами примера я не выбираю символ и т.д. У меня 1 ордер, с известной лотностью, операцией, без Stop Loss/Take Profit и т.д. Именно в такой конструкции (она выбрана для простоты) при использовании параметра SELECT_BY_TICKET я получаю ошибку 4051. Я понимаю, что использовать SELECT_BY_POS не правильно в данном случае. Это был эксперимент для лучшего понимания работы тестера стратегий. Этот эксперимент показал, что тестер стратегий присваивает не тикеты, выделяемые сервером, при  не возможности связаться с сервером, а просто порядковые номера. И тем не менее остается вопрос почему возникает ошибка 4051. Кроме того я пробовал в сочетании с SELECT_BY_POS первым параметром ставить 0 в OrderSelect. Ответ тот же 4051.

У вас в коде проблема 

double Lots=0.01;
int slippage=30;


void OnTick()
{
int numer=-10;//На каждом новом тике из за этого присвоения процедура Subr2 будет возвращать ошибку!!!
if(OrdersTotal()==0)numer=Subr1();
if(OrdersTotal()>0)Subr2(numer);
return;
}

int Subr1()
{
int result=-1;
int_result=OrderSend(_symbol,OP_BUY,Lots,slippage,0,0);
if(int_res<0){PrintFormat("OrderSend error = ",GetError());}
return int_result;
}
void Subr2(int order)
{
if(!OrderSelect(order,SELECT_BY_TICKET,MODE_TRADES)){PrintFormat("OrderSelect error %d",GetLastError());return;} else PrintFormat("Ok, OrderTicket = ",OrderTicket());
}
 
здравствуйте, есть ли инфа , будет ли поддерживаться mql4 в дальнейшем, если вроде как продажи мт4 прекратились?
Причина обращения: