перед попыткой закрытия выполнить OrderSelect и проверить OrderCloseTime. Если оно уже больше 0, то ордер закрыт.
У меня есть Select, a OrderCloseTime где поставить? После Селекта или в функции CloseOrder()?
Посмотрел в Доке. У меня Селекта по истории нет, только по Траде. Значит попробую поставить этот Селект по истории после условия закрытия и перед CloseOrder(). Спасибо!
Внутри селекта, после фильтров на символ и магик (если они есть), то есть проверяем ордер на время закрытия, если оно не равно нулю (ордер закрыт), то запрещаем повторное его закрытие
FAQ: Внутри селекта, после фильтров на символ и магик (если они есть), то есть проверяем ордер на время закрытия, если оно не равно нулю (ордер закрыт), то запрещаем повторное его закрытие
Спасибо! Значит, попробую выше!
Вот, попытался вставить, прогнал в демо, но что-то выходят больше ошибок и разных. Прошу сначала, от печки, по этому коду из Доки:
Что здесь лишнее, чтобы вставить между Селектом Траде, проверки по символу, магику... и ... типом ордера. Может, datetime cmt и int ticket представить в начале старта? А принт пишет другие ошибки.
Вот, попытался вставить, прогнал в демо, но что-то выходят больше ошибок и разных. Прошу сначала, от печки, по этому коду из Доки:
Что здесь лишнее, чтобы вставить между Селектом Траде, проверки по символу, магику... и ... типом ордера. Может, datetime cmt и int ticket представить в начале старта? А принт пишет другие ошибки.
И добавить условие для закрытия:
Помогите, пожалуйста!
Эээх, как говорится : "учись студент" (с)
for(int i=OrdersTotal()-1;i>=0;i--){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES){
if(OrderSymbol()!=Symbol()){continue;}// фильтр по символу(если не наш символ, то пропускаем)if(OrderMagicNumber()!=magik){continue;}// фильтр по магикуif(OrderCloseTime()!=0){continue;}// фильтр по времени закрытия (если не=0 то ордер уже закрыт)if(OrderType()<=OP_SELL){//закрытие для рыночных ордеровOrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),MarketInfo(OrderSymbol(),MODE_SPREAD),CLR_NONE);
}else{// закрытие для отложенных ордеровOrderDelete(OrderTicket());
}
}
}
Спасибо большое! Я и учусь всю жизнь! И вообще, учиться интереснее, чем работать. Сейчас попробую приспособить, очень не хочется менять порядка в коде. В любой момент меняю или добавляю условия в зависимости от изменений в поведении рынка. Всего Вам доброго и спокойной ночи!
перед попыткой закрытия выполнить OrderSelect и проверить OrderCloseTime. Если оно уже больше 0, то ордер закрыт.
У меня есть Select, a OrderCloseTime где поставить? После Селекта или в функции CloseOrder()?
Посмотрел в Доке. У меня Селекта по истории нет, только по Траде. Значит попробую поставить этот Селект по истории после условия закрытия и перед CloseOrder(). Спасибо!
Внутри селекта, после фильтров на символ и магик (если они есть), то есть проверяем ордер на время закрытия, если оно не равно нулю (ордер закрыт), то запрещаем повторное его закрытие
Спасибо! Значит, попробую выше!
Вот, попытался вставить, прогнал в демо, но что-то выходят больше ошибок и разных. Прошу сначала, от печки, по этому коду из Доки:
Что здесь лишнее, чтобы вставить между Селектом Траде, проверки по символу, магику... и ... типом ордера. Может, datetime cmt и int ticket представить в начале старта? А принт пишет другие ошибки.
И добавить условие для закрытия:
Помогите, пожалуйста!
Здарова, подскажите пожалста
Требуется открывать ордер не сразу с тп и сл, а ставить тп и сл после открытия ордера его модифицированием
сделал так:
}
нихрена не понимаю что и зачем
правильно?
Здарова, подскажите пожалста
Требуется открывать ордер не сразу с тп и сл, а ставить тп и сл после открытия ордера его модифицированием
сделал так:
}
нихрена не понимаю что и зачем
правильно?
И я не понимаю и больше! Пользуйся SRC для изложения кода, видишь наверху?
Спасибо! Значит, попробую выше!
Вот, попытался вставить, прогнал в демо, но что-то выходят больше ошибок и разных. Прошу сначала, от печки, по этому коду из Доки:
Что здесь лишнее, чтобы вставить между Селектом Траде, проверки по символу, магику... и ... типом ордера. Может, datetime cmt и int ticket представить в начале старта? А принт пишет другие ошибки.
И добавить условие для закрытия:
Помогите, пожалуйста!
Эээх, как говорится : "учись студент" (с)
ненужное вычеркнуть (закомментировать)
Кусок кода открывающий ордер и ставящий стоп лосс и тейк профит
терминал выдает ошибки: EURUSD,M30: OrderSend error 130
EURUSD,M30: invalid ticket for OrderModify function
EURUSD,M30: OrderModify error 4051
EURUSD,M30: OrderSend failed with error #4051 bid:1.23674000 ask:1.23683000 Open:1.23674000 SL:1.2423 TP:1.2283 MODE_STOPLEVEL:0.00000000 LOT:0.01000000
В чем проблема можете подсказать?
Эээх, как говорится : "учись студент" (с)
ненужное вычеркнуть (закомментировать)
Спасибо большое! Я и учусь всю жизнь! И вообще, учиться интереснее, чем работать. Сейчас попробую приспособить, очень не хочется менять порядка в коде. В любой момент меняю или добавляю условия в зависимости от изменений в поведении рынка. Всего Вам доброго и спокойной ночи!