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

 
Maksym Mudrakov:
я бы сделал следующим образом, со сторонним индикатором нужно отслеживать ObjectsTotal(), и если наибольший индекс объекта моей панели меньше ObjectsTotal()-1, то пересоздаем панель. Нужно сначала поробовать ваш метод во всевозможных ситуациях, но пока что я не вижу большей свободы при использовании Видимости объектов.

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

 

Други подскажите.   В тестере МТ5, в отчёте  Бэктест есть некий учёт   LR Standart error.   Что он означает?  В букварях и справках ни чего о нём не нашёл.., кроме упоминаний, что он есть.

Догадываюсь что это какое то стандартное отклонение результатов по сериям выборок, но приставка LR возможно подразумевает что то своё. Мне бы метод, как она считается и что это за зверь вообще)  

Бэктест в файле. 

Файлы:
 
Valeriy Yastremskiy:

Ctrl T что бы появилось меню внизу, Торговля, Активы, ..... , последнее Журнал. Щелкаем журнал и на одной из записей щелкаем правую кнопку мыши и там просм

"Журнал" не помог, но проведя аналогию помог "Эксперты". Спасибо.

 
Alexandr Sokolov:

Пишу советник, которому время от времени нужно проводить несколько длительных циклов разных перерасчётов (например раз в 12, 24, 48 часов). Каждый такой перерасчёт длится 1,5-2 часа на одном ядре (то есть в одном потоке) - и само собой приостанавливают обработку новых тиков и торговлю данным советником

... такие расчёты можно делегировать другому советнику в другом потоке и наладить передачу итоговых данных между советниками с помощью функции EventChartCustom и обработчиком событий OnChartEvent


Но мне нужно иметь возможность опубликовать советник в маркете - поэтому делегирование перерасчётов и перерасчёты в одном потоке не подходят. Есть ли аналог библиотеки thread из C++ или какой-то другой вариант для реализации такого специфического советника в MQL5? (я вводил в поисковик на сайте слово "thread" с фильтром "Документация", и ничего нет)

ночь использовать, когда торговли нет. 

 
Artyom Trishkin:

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

если при манипуляциях с видимостью объектов это работает, тогда это очень очень хорошо. Надо попробовать. Спасибо.
 

Всем доброго дня!
Мне нужно после закрытия по стопу каждого ордера( а их одновременно открытых много) выводить в Print () некоторые параметры закрытого ордера. Я научился это делать очень успешно. Но.....есть одна проблема на решение которой моего ума не хватает. Некоторые ордера закрываются по стопу на одном тике и по одной цене. И тогда программа игнорирует первый закрывшийся ордер и печатает Print() только последнего закрытого ордера. А первого не печатает. 
ВОПРОС
При помощи какой языковой конструкции можно сделать что бы программа , в случаях которые я выше описал печатала Print ()  и после первого закрытого по стопу ордера?

Буду очень признателен если напишете код такой конструкции. Объяснение на словах я пока понимаю с трудом.

Спасибо.

int start()
{
int Ht = OrdersHistoryTotal();
if (OrderSelect (Ht-1,SELECT_BY_POS, MODE_HISTORY))                                             
if (TP!=OrderTicket( ))
{
Print("---------------------------------------------------------------=",TimeToString(OrderOpenTime()) );
TP=OrderTicket( );
}

if (TimeCurrent()==1262598040)
if (H==0)
{
OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,1.62199,1.60919,"300",10 );
H=1;
}
if (TimeCurrent()==1262601140)
if (L==0)
{
OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,1.62199,1.61758,"300",10 );
L=1;
}
return(0);
}


 
ANDREY:

Всем доброго дня!
Мне нужно после закрытия по стопу каждого ордера( а их одновременно открытых много) выводить в Print () некоторые параметры закрытого ордера. Я научился это делать очень успешно. Но.....есть одна проблема на решение которой моего ума не хватает. Некоторые ордера закрываются по стопу на одном тике и по одной цене. И тогда программа игнорирует первый закрывшийся ордер и печатает Print() только последнего закрытого ордера. А первого не печатает. 
ВОПРОС
При помощи какой языковой конструкции можно сделать что бы программа , в случаях которые я выше описал печатала Print ()  и после первого закрытого по стопу ордера?

Буду очень признателен если напишете код такой конструкции. Объяснение на словах я пока понимаю с трудом.

Спасибо.


Объяснение на словах: нужно отслеживать количество ордеров и позиций и сравнивать их с прошлым состоянием. Если на прошлом тике было 12 позиций, а на текущем их стало 8, то имеем изменение на 4 позиции. Соответственно, нужно брать четыре последние (по времени их закрытия) позиции для того чтобы понять что с ними произошло.

Но, судя по приложенному коду, в котором написаны "чудеса", вам пояснение на словах действительно не нужно. Но здесь помогают, а не пишут за/для.

 
Artyom Trishkin:

Объяснение на словах: нужно отслеживать количество ордеров и позиций и сравнивать их с прошлым состоянием. Если на прошлом тике было 12 позиций, а на текущем их стало 8, то имеем изменение на 4 позиции. Соответственно, нужно брать четыре последние (по времени их закрытия) позиции для того чтобы понять что с ними произошло.

Но, судя по приложенному коду, в котором написаны "чудеса", вам пояснение на словах действительно не нужно. Но здесь помогают, а не пишут за/для.

Спасибо за ценный совет. Но у меня нет проблем с пониманием того что произошло с ордерами. Я не знаю, как сделать так что бы программа печатала Print () так же и после закрытия первого ордера, если после него на этом же тике и по этой же цене закрылся по стопу еще один ордер. Ведь если ордера закрылись в одно время но по разной цене программа печатает Print() после закрытия обоих ордеров, включая первый.
Буду Вам очень признателен если разовьете свою мысль , изложенную Вами в первом посте.

Код "чудесный" потому что предназначен только для того что бы наглядно описать проблему и больше ни для чего.


 
ANDREY:

Спасибо за ценный совет. Но у меня нет проблем с пониманием того что произошло с ордерами. Я не знаю, как сделать так что бы программа печатала Print () так же и после закрытия первого ордера, если после него на этом же тике и по этой же цене закрылся по стопу еще один ордер. Ведь если ордера закрылись в одно время но по разной цене программа печатает Print() после закрытия обоих ордеров, включая первый.
Буду Вам очень признателен если разовьете свою мысль , изложенную Вами в первом посте.

Код "чудесный" потому что предназначен только для того что бы наглядно описать проблему и больше ни для чего.


Если перечитаете что я вам написал, то поймёте, что развивать там уже некуда - как определить что на одном тике закрыто больше одной позиции я написал, и что при этом сделать - тоже. А код.., ну это всё индивидуально по потребностям. Я даже в статьях расписал как всё сделать, разжевал и все коды выложил - ну куда ж ещё больше-то...

 
Artyom Trishkin:

Если перечитаете что я вам написал, то поймёте, что развивать там уже некуда - как определить что на одном тике закрыто больше одной позиции я написал, и что при этом сделать - тоже. А код.., ну это всё индивидуально по потребностям. Я даже в статьях расписал как всё сделать, разжевал и все коды выложил - ну куда ж ещё больше-то...

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

Причина обращения: