Вопросы от начинающих MQL4 MT4 MetaTrader 4 - страница 250
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Если по простому, чтобы быстро проверить, то типа такого:
Как правило, ордера идут по времени друг за другом, но это не гарантировано. Поэтому, по-хорошему, хронологию нужно проверять. Но для экспериментов и так сойдёт.
Если по простому, чтобы быстро проверить, то типа такого:
Как правило, ордера идут по времени друг за другом, но это не гарантировано. Поэтому, по-хорошему, хронологию нужно проверять. Но для экспериментов и так сойдёт.По
Согласен, время не гарантировано, поэтому и перебирать хочу все закрытые ордера в сторону увеличения по тикету. Знаю тикет ордера, и пробую от него считать, но что то пошло не так) Как правильно будет?
Если по простому, чтобы быстро проверить, то типа такого:
Как правило, ордера идут по времени друг за другом, но это не гарантировано. Поэтому, по-хорошему, хронологию нужно проверять. Но для экспериментов и так сойдёт.
В истории вернее ордера перебирать от меньшего к большему, что бы учесть те, которые закроются в момент пересчета, это рыночные ордера мы считаем от большего к меньшему, что бы правильно учесть открытые и закрытые на этом же тике. Мне так думается)
Если по простому, чтобы быстро проверить, то типа такого:
Как правило, ордера идут по времени друг за другом, но это не гарантировано. Поэтому, по-хорошему, хронологию нужно проверять. Но для экспериментов и так сойдёт.
А что, код Алексея тоже не правильно считает?
В истории вернее ордера перебирать от меньшего к большему, что бы учесть те, которые закроются в момент пересчета, это рыночные ордера мы считаем от большего к меньшему, что бы правильно учесть открытые и закрытые на этом же тике. Мне так думается)
А что, код Алексея тоже не правильно считает?
Не пробовал. Сейчас по пробую. Отпишу.
Если по простому, чтобы быстро проверить, то типа такого:
Как правило, ордера идут по времени друг за другом, но это не гарантировано. Поэтому, по-хорошему, хронологию нужно проверять. Но для экспериментов и так сойдёт.
Проверил, при компеляция много на что ругается, все исправил, кроме :
if(profit>max)
этой строчки, не совсем понимаю ее. Можете обьснить?
Задумка следящая, после набора определенного профита, поменять тикет
max - это и есть та граница профита, после которого меняется тикет. Его значение задаёте Вы.
max - это и есть та граница профита, после которого меняется тикет. Его значение задаёте Вы.
Задача другая, если правильно понимаю. Открываются 1, 2 и 3 ордера. Как формируются цены открытия не знаю. Закрывается ордер 3, суммарный профит равен профиту ордера 3. Т.е. нужно вычислить тикет ордера, открытого перед ордером 3 . Потом закрывается ордер 2. Нужно найти тикет ордера открытого перед ордером 2. Это ордер 1. Суммарный профит равен профиту 2 и 3 ордеров.
Зачем так, не понимаю, но вроде логика такая.)
Валерий, я не до конца понял логику по тем двум предложениям.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Вопросы от начинающих MQL4 MT4 MetaTrader 4
makssub, 2021.09.01 16:38
В первой функции нахожу тикет нужного ордера. А вторая должна посчитать профит всех закрытых ордеров после этого тикета. Профит тех, что были до него, мне неинтересны. Вот вторая, считает криво. При открытие ордера вызывается эти 2 функции, и соответственно он должен быть равен 0, но он не равен.
PS воспользовался Вашим советом, отказался от массивов)
12-й квадратик сверху)
Все додумал, и сделал по своему исходя из ваших подсказать)
Задача была следящая, при появление убыточного ордера перекрыть его другими ордерами с профитом.
Как было реализовано. Запоминался тикет ордера открытого после убыточного, это у была наша точка отчета. После нее начинаем считать профит убыточного ордера, профит закрытых ордеров после него. Напомню первый ордер открыт и закрываем его при достижении прибыли.
if ( (CalculateProfitHistory() + FirstProfit() >= Profit)
{
CloseFirst();
Print ("закрываем первый убыточный");
}