допустим есть 1 открытый ордер и тут открывается второй отложенный, как
сделать тейк профи первого ордера равным тейку второго ордера? и так
далее, 1,2=3 1,2,3=4 1,2,3,4=5 ?
- [ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда.
- Скрипт для изменения тейкпрофи.
- Как открыть 4 отложенных ордера на расстоянии друг от друга 100 пунктов разным лотом?
Попробуй так:
1. Присвоить ордерам тикеты.
2. Выбрать по тикету первый ордер (OrderSelect).
3. Изменить тейк первого ордера (OrderModify).
Это понятно, а код примерный можно?
int tickets[], i = 0, total = OrdersTotal() - 1; double tps[], open_price[], sls[]; datetime open_time[]; for ( i = total; i >= 0; i -- ) { if ( !OrderSelect( i, SELECT_BY_POS, MODE_TRADES ) ) { Print( "OrderSelect error #", GetLastError() ); continue; } if ( OrderSymbol() != Symbol() ) { continue; } //--только по символу if ( OrderType() > 1 ) { continue; } //--и только рыночные if ( OrderMagicNumber() != MagicNumber ) { continue; } //--опционально, имеет смысл только, если ордера ставятся экспертом и им задают нужный мейджик //--теперь творим, то есть инициализируем наши массивы ArrayResize( tickets, ArraySize( tickets ) + 1 ); ArrayResize( tps, ArraySize( tps ) + 1 ); ArrayResize( open_time, ArraySize( open_time ) + 1 ); tickets[ArraySize(tickets)-1] = OrderTicket(); open_time[ArraySize(open_time)-1] = OrderOpenTime(); tps[ArraySize(tps)-1] = OrderTakeProfit(); open_price[ArraySize(open_price)-1] = OrderOpenPrice(); sls[ArraySize(sls)-1] = OrderStopLoss(); } //--теперь все позиции в массивах нужно отсортировать по времени открытия //--после сортировки на 0 позиции в массиве будет самый первый ордер, на ArraySize(ARRAY_NAME) - 1 соответственно последний открывшийся //--все, что нужно теперь, просмотреть все позиции и передвинуть ТП в случае необходимости int index = ArraySize(tickets) - 1; for ( i = 0; i < index; i ++ ) //--все кроме последнего { if ( MathAbs( tps[i] - tps[index] ) > Point/2.0 ) { OrderModify( tickets[i], open_price[i], sls[i], tps[index], 0 ); } } //--как-то так, наверное
не изменят :(
Это примерный код для того, чтобы натолкнуть на мысль. Если чуть-чуть подумать и дописать все недостающее будет изменять как нужно.
ну а где хоть? а?
Up
Up
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь