Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Еще вопрос. Ни у кого не было опыта вытаскивания элементов из индикатора Ишимоку и вставки в виде отдельной функции в советник. Интересует Senkou Span B.
Что-то я туплю совсем) Не знал про эту функцию ichimoku. спасибо еще раз.
Здравствуйте! Подскажите простой способ реализовать алгоритм. Если один ордер достиг уровня профита определенного, то остальные ордера закрываются, а этому подтягивается стоплосс.
два выбора orderselect под одной крышей чего-то работать не хотят)
Здравствуйте! Подскажите простой способ реализовать алгоритм. Если один ордер достиг уровня профита определенного, то остальные ордера закрываются, а этому подтягивается стоплосс.
два выбора orderselect под одной крышей чего-то работать не хотят)
И не будут. Будет выбран тот, который выбран последним.
Если я правильно понял, что "уровень профита определённый" - это позиция достигла какого-то заданного уровня профита, то алгоритм такой:
Сначала, собсно, ищется в цикле по всем позициям достижение заданного профита. Если такое нашлось - запоминаем тикет позиции и подтягиваем стоп на нужную величину.
Далее, опять же в цикле (в обратном), проверяем позиции на равенство с запомненным тикетом и, если тикеты не равны, закрываем эту позицию и переходим к следующей.
Пока без ModifyOrders. Не хочет второй закрывать. где сморозил.
Второй цикл должен быть обратным: от OrdersTotal()-1; до >=0;
Ну и... что-то нагромоздили, не? Иль только так кажется на первый взгляд?
А TrailingStop чему равен и какой у него тип?
А если будут две и более позиций, которые удовлетворяют требованию "больше определённой величины профита", то какую из них нужно не закрывать?
void CheckForClose() { int tiket=0; for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()!=MAGIC || OrderSymbol()!=Symbol()) continue; //---- check order type if(OrderType()==OP_BUY) { if((Ask-OrderOpenPrice())>TrailingStop*Point) tiket=OrderTicket(); } if(OrderType()==OP_SELL) { if ((OrderOpenPrice()-Bid)>TrailingStop*Point) tiket=OrderTicket(); } } for(int j=OrdersTotal()-1;j>=0;j--) { if(OrderSelect(j,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()!=MAGIC || OrderSymbol()!=Symbol() || OrderTicket()!=tiket) continue; //---- check order type if(OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3,White); if(OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,White); } }с профитом закрывается, а минусовый висит.
extern double TrailingStop = 200;
да забыл на point TrailingStop стоп умножить.