Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
имхо во-первых, некорректно сравнивать вещественное Stochast_ и целое 75, во-вторых сравнивать правильнее их разность с нулём.
Очередная проблема встает с Блоком закрытия позиций. Вставил этот блок в свой любимый эксперт. Который открывает сделки только строго в направлении тренда (низкий поклон ему за это...)
Но в зависимости от силы тренда эксперт последовательно способен (и делает это!) открывать несколько сделок, - одну за другой!, - своего рода "антимартингейл". Именно здесь и нужен мне Блок закрытия позиций по сигналу индикатора. Но вот проблема!, - Когда и если открыто несколько пизиций по тренду и начинается коррекция против тренда, - то индикатор в Блоке закрытия дает сигнал - на закрытие. Как и мне нужно.
Однако, при этом, почему-то, закрываются вовсе не ВСЕ ОТКРЫТЫЕ позиции. А в основном, - только самая ранняя. Те же, что открылись позже не реагируют на сигнал закрытия, - а продолжают движение. И далее, - "история повторяется, как фарс"! С каждым сигналом закрытия, - закрывается только одна, - самая ранняя открытая позиция, а остальные продолжают движение! Лот всех позиций - постоянный.
Вот график визуального режима. Закрытие по сигналу индикатора обозначено зелёным треугольником. Хорошо видно - что всякий раз по сигналу закрывается только одна позиция. А мне хотелось бы, чтобы закрывались все открытые! Подскажите пож., - в чем здесь дело?
Напоминаю код :
/********* Закрытие позиций **************************************** if (AutoClose) { //---------------------------------------------------------------------- if (ExpertOrder(MagicLong)) { //есть открытые ордера на покупку if(Stochast_1>=Up_lim && Stochast_0<Up_lim) { OrderClose(OrderTicket(),OrderLots(),Bid,3,Green);//закрываем позицию return(0); // выходим } } //-------------------------------------------------------- if (ExpertOrder(MagicShort)) { //есть открытые ордера на продажу if(Stochast_1<=Low_lim && Stochast_0>Low_lim) { OrderClose(OrderTicket(),OrderLots(),Ask,3,Green);//закрываем позицию return(0); // выходим } } //------------------------------------------------------- } //if (AutoClose)
Очередная проблема встает с Блоком закрытия позиций...
А где цикл по OrdersTotal() ?
Нет, здесь нет этого. Ордера определяются - иначе:
И такой вариант кода мне удобнее! Поскольку длинные и короткие позиции у меня - независимо друг от друга открываются.
Однако и при стандартном закрытии - всё равно такая же история. ...
Однако и при стандартном закрытии - всё равно такая же история. ...
А все таки, может попробовать делать цикл наоборот, от OrdersTotal до 0. Должно помочь.
А как это сделать? Напишите пож., если не очень обременительно. Вот кстати график - при вышепрведенном "стандартном": Всё тож самое - по сигналу индюка закрывается только одна позиция -
А как это сделать?
for (int v=0; v<OrdersTotal(); v++)
написать:
for (int v=OrdersTotal()-1; v>0; v--)
У меня работает.
А как это сделать?
for (int v=0; v<OrdersTotal(); v++)
написать:
for (int v=OrdersTotal()-1; v>0; v--)
У меня работает.
Совершенно верно. Хотя у KimV есть скрипты и библиотеки все это реализующие. Может стоит поискать. И может быть на его форуме.