[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 38
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
charter значит что закрывает ордер не через 30 минут а в ту же секунду.
В коде поставил как у тебя в примере
По другим причинам робот никак не закрывает, т.е. не по стопу не по профиту.1 2011.07.29 00:00 buy 1 0.01 1.4328 1.3328 1.5328 0.00 1000.00
2 2011.07.29 00:01 close 1 0.01 1.4327 1.3328 1.5328 -0.10 999.90
3 2011.07.29 00:01 buy 2 0.01 1.4329 1.3329 1.5329 0.00 999.90
4 2011.07.29 00:01 close 2 0.01 1.4326 1.3329 1.5329 -0.30 999.60
5 2011.07.29 00:01 buy 3 0.01 1.4328 1.3328 1.5328 0.00 999.60
6 2011.07.29 00:03 close 3 0.01 1.4327 1.3328 1.5328 -0.10 999.50
7 2011.07.29 00:03 buy 4 0.01 1.4329 1.3329 1.5329 0.00 999.50
8 2011.07.29 00:03 close 4 0.01 1.4329 1.3329 1.5329 0.00 999.50
Поставьте, все это в самом конце функции start(). Ваши операции должны стоять перед этим.
Я понял.
А если считать открытие счета на 0 долларов - началом, а 1-е пополнение баланса - доливкой. Можно определить программно все доливки (в том числе и первую), которые были сделаны на счет?
:-Р
Вы не в ту сторону гребете... :-)))
Есть ф-ия
с ее помощью Вы определяете состояние баланса торгового счета по закрытым сделкам на какой-либо момент времени.
Далее - предположим вошли в рынок - на счете плавающий минус при открытых позициях, далее осуществляете пополнение счета... Вот здесь уже необходимо программно определить сумму доливки (при ее наличии) для проведения корректировки объема (в сторону увеличения) открытых позиций для сохранения стартового "допуска" на просадку/прибыль, допустим, в процентном отношении на капитал, с изначальной суммы которого были рассчитаны объемы "стартовых" рыночных позиций (до доливок). Какой существует вариант решения этого вопроса?
Не надо. Это "промежуточная" переменная времени, всегда равная времени последнего закрытия.
Время срабатывания устанавливается в секундах. В Вашем случае это 30*60.
Можете 30 заменить на некую переменную, скажем, exstern int closetime = 30.
Тогда время срабатывания будет выглядеть так: closetime*60.
Не надо. Это "промежуточная" переменная времени, всегда равная времени последнего закрытия.
Время срабатывания устанавливается в секундах. В Вашем случае это 30*60.
Можете 30 заменить на некую переменную, скажем, exstern int closetime = 30.
Тогда время срабатывания будет выглядеть так: closetime*60.
:-Р
Вы не в ту сторону гребете... :-)))
Есть ф-ия
с ее помощью Вы определяете состояние баланса торгового счета по закрытым сделкам на какой-либо момент времени.
Далее - предположим вошли в рынок - на счете плавающий минус при открытых позициях, далее осуществляете пополнение счета... Вот здесь уже необходимо программно определить сумму доливки (при ее наличии) для проведения корректировки объема (в сторону увеличения) открытых позиций для сохранения стартового "допуска" на просадку/прибыль, допустим, в процентном отношении на капитал, с изначальной суммы которого были рассчитаны объемы "стартовых" рыночных позиций (до доливок). Какой существует вариант решения этого вопроса?
Если Вы изначально определили соотношение StartBalance (стартового баланса) к StarLots (стартовому лоту) согласно установленных рисков, тогда размер доливки надо определить из эквити:
if(AccountEquity()<StartBalance) Доливка = (AccountBalance()+(StartBalance-AccountEquity()))*Новый лот/StarLots
Это без учета AccountCredit(). Если я Вас, конечно, правильно понял.
Только что попробовал тоже самое, находится в конце тела старт.... Почему такое не понимаю. Может еще вариантик есть?
Оба варианта должны работать.
Всем привет. У меня к вам такой вопрос. Мне нужно найти ближайший максимум и минимум. Но чтобы они были в пределах + - 10 пунктов от Open[0];
У меня сейчас так:
for (int i=1;i<100;i++)
if (High[i+1]<High[i] && High[i]>High[i-1] break;
он находит ближайший максимум,
если я добавляю сравнение High[i]>(Open[0]+0.0010) и High[i]<(Open[0]+0.0020) вот как это выглядит:
if (High[i+1]<High[i] && High[i]>High[i-1] && High[i]>(Open[0]+0.0010) && High[i]<(Open[0]+0.0020) break;
Программа выдает неправильный максимум.В чем проблема?
С минимумом пока вообще не пробовал.