Есть следующий вопрос.
Когда ордер ставится - пишется время его выставления.
Когда он срабатывает - сие время меняется на время срабатывания.
Как мне получить в отчете и время выставления и время срабатывания?
Или я не там ищу...
Когда ордер ставится - пишется время его выставления.
Когда он срабатывает - сие время меняется на время срабатывания.
Как мне получить в отчете и время выставления и время срабатывания?
Или я не там ищу...
Вот так...
//+------------------------------------------------------------------------------------------------+ //| Определение факта срабатывания отложенного ордера //+------------------------------------------------------------------------------------------------+ if((CountBuyStop>CalculationOfWarrants(Symbol(),0,4,0))|| (CountSellStop>CalculationOfWarrants(Symbol(),0,5,0))) {//1 int resSS=0,resSB=0,intSize=0; size=ArrayRange(InfoOpenOrders,0); for(i=0;i<size;i++) {//2 if(OrderSelect(InfoOpenOrders[i][0],SELECT_BY_TICKET)) {//3 if(OrderType()==InfoOpenOrders[i][2]) continue; else {//4 switch(OrderType()) {//5 case OP_BUY: CountOperations++; WriteLineInFile(FileNameOfReport,GetCurRusTime()+"Торговая операция №"+CountOperations); WriteLineInFile(FileNameOfReport,GetCurRusTime() +"Сработал ордер BuyStop тикет "+DoubleToStr(InfoOpenOrders[i][0],0) +" внутренний №"+DoubleToStr(InfoOpenOrders[i][1],0)+" на отметке: " +DoubleToStr(InfoOpenOrders[i][3],Digits)); WriteLineInFile(FileNameOfReport,GetCurRusTime() +"Открыта позиция Buy тикет "+DoubleToStr(InfoOpenOrders[i][0],0) +" внутренний №"+DoubleToStr(InfoOpenOrders[i][1],0)+" по цене: " +DoubleToStr(InfoOpenOrders[i][3],Digits)); InfoOpenOrders[i][2]=OP_BUY; FlagFractal="buy"; CountBuyStop--; UseOfDeposit=UseOfDeposit+((NormalizeDouble(Ask,Digits)*1000)*OrderLots()); if(ToExposeContrwarrants&&AllowTrade) {//6 WriteLineInFile(FileNameOfReport,"Разрешено выставление контрордеров!"); CountOrders++; resSS=PerformanceOpenSellStop(Symbol(),Lots,(FractalDn-(Limit*Point)),5,StopLoss,TakeProfit, CountOrders+" SellStop "+NameOfExpert,magicNumber,UseSoundInOperations,SoundOpenSellStop); if(resSS>0) {//7 CountSellStop++;TotalSellStop++; intSize=ArrayRange(InfoOpenOrders,0); ArrayResize(InfoOpenOrders,size+1); InfoOpenOrders[intSize][0]=resSS; InfoOpenOrders[intSize][1]=CountOrders; InfoOpenOrders[intSize][2]=OP_SELLSTOP; InfoOpenOrders[intSize][3]=NormalizeDouble((FractalDn-(Limit*Point)),Digits); }//7 else {//8 WriteLineInFile(FileNameOfReport,GetCurRusTime()+"Не удалось выставить отложенный контрордер!"); CountOrders--; }//8 }//6 WriteLineInFile(FileNameOfReport,""); break; case OP_SELL: CountOperations++; WriteLineInFile(FileNameOfReport,GetCurRusTime()+"Торговая операция №"+CountOperations); WriteLineInFile(FileNameOfReport,GetCurRusTime() +"Сработал ордер SellStop тикет "+DoubleToStr(InfoOpenOrders[i][0],0) +" внутренний №"+DoubleToStr(InfoOpenOrders[i][1],0)+" на отметке: " +DoubleToStr(InfoOpenOrders[i][3],Digits)); WriteLineInFile(FileNameOfReport,GetCurRusTime() +"Открыта позиция Sell тикет "+DoubleToStr(InfoOpenOrders[i][0],0) +" внутренний №"+DoubleToStr(InfoOpenOrders[i][1],0)+" по цене: " +DoubleToStr(InfoOpenOrders[i][3],Digits)); InfoOpenOrders[i][2]=OP_SELL; FlagFractal="sell"; CountSellStop--; UseOfDeposit=UseOfDeposit+((NormalizeDouble(Bid,Digits)*1000)*OrderLots()); if(ToExposeContrwarrants&&AllowTrade) {//9 WriteLineInFile(FileNameOfReport,"Разрешено выставление контрордеров!"); CountOrders++; resSB=PerformanceOpenBuyStop(Symbol(),Lots,(FractalUp+(Limit*Point)),5,StopLoss,TakeProfit, CountOrders+" SellStop "+NameOfExpert,magicNumber,UseSoundInOperations,SoundOpenBuyStop); if(resSB>0) {//10 CountBuyStop++;TotalBuyStop++; intSize=ArrayRange(InfoOpenOrders,0); ArrayResize(InfoOpenOrders,size+1); InfoOpenOrders[intSize][0]=resSB; InfoOpenOrders[intSize][1]=CountOrders; InfoOpenOrders[intSize][2]=OP_BUYSTOP; InfoOpenOrders[intSize][3]=NormalizeDouble(FractalUp+(Limit*Point),Digits); }//10 else {//11 WriteLineInFile(FileNameOfReport,GetCurRusTime()+"Не удалось выставить отложенный контрордер!"); CountOrders--; }//11 }//9 WriteLineInFile(FileNameOfReport,""); break; default: WriteLineInFile(FileNameOfReport,GetCurRusTime()+"Путаница в ордерах на сервере!"); Print("Путаница в ордерах на сервере!"); break; }//5 }//4 }//3 else {//4 WriteLineInFile(FileNameOfReport,GetCurRusTime()+"Не удалось выбрать ордер "+ InfoOpenOrders[i][0] +" внутренний №"+InfoOpenOrders[i][1]+", причина: "+ErrorDescription(GetLastError())); Print("Не удалось выбрать ордер "+ InfoOpenOrders[i][0]+" внутренний №"+InfoOpenOrders[i][1] +", причина: "+ErrorDescription(GetLastError())); }//4 }//2 }//1 //+------------------------------------------------------------------------------------------------+ //| Конец определения факта срабатывания отложенного ордера //+------------------------------------------------------------------------------------------------+
2 Registr
Как самому записать это в лог - оно давно и так понятно.
Вопрос был по встроенному отчету самого терминала...
Потому как, если не стоит эксперта - то и некому записывать лог. :)
Как самому записать это в лог - оно давно и так понятно.
Вопрос был по встроенному отчету самого терминала...
Потому как, если не стоит эксперта - то и некому записывать лог. :)
2 Registr
Как самому записать это в лог - оно давно и так понятно.
Вопрос был по встроенному отчету самого терминала...
Потому как, если не стоит эксперта - то и некому записывать лог. :)
Как самому записать это в лог - оно давно и так понятно.
Вопрос был по встроенному отчету самого терминала...
Потому как, если не стоит эксперта - то и некому записывать лог. :)
К сожалению, в ордере не сохраняется время первичной установки.
Можно только внешним контролем решить вопрос.
Или писать в MagicNumber CurTime() - так Вы всегда будете знать когда выставлен ордер.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Когда ордер ставится - пишется время его выставления.
Когда он срабатывает - сие время меняется на время срабатывания.
Как мне получить в отчете и время выставления и время срабатывания?
Или я не там ищу...