Всем привет! Столкнулся с проблемой... записываю данные через FileWrite, всё пишет, но цикл повторяется с каждым тиком т.е примерно так ( строка 1 - цена 1,19454... строка 2- цена 1,19454... итд.., а мне надо чтобы уже строка 2 была новой данной, не повторялась чтобы... Использовал этот код, вроде работает, но не всегда... прошу помочь)))
"FileClose(file_read);"
- вероятно, здесь должно быть file_handle, а не file_read.
А вообще-то, говоря, что вопрос заключается в записи через FileWrite, и не приводя остальной части кода, Вы тем самым сужаете возможности читающих и желающих помочь людей очень сильно. Кто и где еще правит, например, TimeStamp - неизвестно. Как обновляется Price - тоже. Знаете, ситуация похожа на вызов на дом компьютерщика с указанием причины вызова "компьютер не работает". Только компьютерщик, приехав, сможет сам поискать смысл этой фразы, а форумчане никак без Вашей информации ничего не узнают. Чтобы люди могли искать ошибку (причину), давайте максимально возможную часть кода.
Если записываются одинаковые значения, то скорее всего дело в переменой Price, что то сказать точнее трудно т.к. непонятно где и как вы присваиваете ей значение.
"FileClose(file_read);"
- вероятно, здесь должно быть file_handle, а не file_read.
А вообще-то, говоря, что вопрос заключается в записи через FileWrite, и не приводя остальной части кода, Вы тем самым сужаете возможности читающих и желающих помочь людей очень сильно. Кто и где еще правит, например, TimeStamp - неизвестно. Как обновляется Price - тоже. Знаете, ситуация похожа на вызов на дом компьютерщика с указанием причины вызова "компьютер не работает". Только компьютерщик, приехав, сможет сам поискать смысл этой фразы, а форумчане никак без Вашей информации ничего не узнают. Чтобы люди могли искать ошибку (причину), давайте максимально возможную часть кода.
Я беру Price от истории... От последней закрытой сделки.. т.е последний ордер и получаю его цену закрытие, после записываю его на csv файл, но дальше происходит ошибка, мне нужно сделать так чтобы Price записался только один раз
А FileWrite случайно не в цикле гоняете (for или while) ?
Да) через цикл for
Не ну Вы не серьёзный человек.Так и будем гадать на кофейной гуще ? Дайте нормальный кусок кода.
for(int i=0; i<OrdersHistoryTotal(); i++) if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicB) { int nOrderType = OrderType(); int nOrderTicket = OrderTicket(); datetime OrderCloseT=OrderCloseTime(); if((nOrderType==OP_BUY && TicketBuy_11==OrderTicket()) && (OrderOpenTime()<OrderCloseT)) { if(TimeStamp_b11!=Time[0]){ double Price = OrderOpenPrice(); int file_handle=FileOpen(InpDirectoryName+"//"+InpFileName,FILE_READ|FILE_WRITE|FILE_CSV); if(file_handle!=INVALID_HANDLE) { FileSeek(file_handle,0,SEEK_END); FileWrite(file_handle,Price); FileClose(file_handle); } FileClose(file_handle); int AlertCount=1; TimeStamp_b11=Time[0]; }}}
TimeStamp_b11 //- Этот код чтобы цикл не повторялся при каждом тике.. но он иногда глючит... в таблице я вижу примерно такPrice
1.19505
1.19505
1.19505 1.19505....
Не могу сделать так чтобы получил данные, всё ждем новую... типа 1,19505, 1,19200, 1,19580 итд
Aibek Mugiynov:
for(int i=0; i<OrdersHistoryTotal(); i++) if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicB) { int nOrderType = OrderType(); int nOrderTicket = OrderTicket(); datetime OrderCloseT=OrderCloseTime(); if((nOrderType==OP_BUY && TicketBuy_11==OrderTicket()) && (OrderOpenTime()<OrderCloseT)) { if(TimeStamp_b11!=Time[0]){ double Price = OrderOpenPrice(); int file_handle=FileOpen(InpDirectoryName+"//"+InpFileName,FILE_READ|FILE_WRITE|FILE_CSV); if(file_handle!=INVALID_HANDLE) { FileSeek(file_handle,0,SEEK_END); FileWrite(file_handle,Price); FileClose(file_handle); } FileClose(file_handle); int AlertCount=1; TimeStamp_b11=Time[0]; }}}
1. чему равна TicKetBuy_11 ? если значение постоянное(не меняется) то проблема в этом.
2. зачем 2 раза закрывать файл ? На результат влиять не будет.
P.S. И проверка на появление нового бара - её правильнее делать перед работой всего цикла.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всем привет! Столкнулся с проблемой... записываю данные через FileWrite, всё пишет, но цикл повторяется с каждым тиком т.е примерно так ( строка 1 - цена 1,19454... строка 2- цена 1,19454... итд.., а мне надо чтобы уже строка 2 была новой данной, не повторялась чтобы... Использовал этот код, вроде работает, но не всегда... прошу помочь)))