Как выбрать ордер по тикету? - страница 3

 
Sergey Eremin:

Просто так пишут авторы уважаемых мной книг по качеству ПО, плюс мой личный опыт командной работы (в нескольких командах, не в одной), где это утверждение дефакто стандарт разработки, говорит, что таки да, такое мнение бытует в определённых кругах.

Я тоже не вижу смысла в дальнейшей (по крайней мере публичной) полемике, мы на разных волнах (хотя бы то, что я к Вам на "Вы" и с полным уважением, а Вы сходу набросились на меня с критикой, да ещё и на "ты"). Если будет чем продолжить этот увлекательный разговор, то прошу в личку :)

Может я и не прав, но придерживаюсь мнения, что "Вежливость придумали для того, чтобы скрыть недостаток добра в отношениях между людьми." Так-что даже на "ты" я вёл эту беседу с полным уважением мнения собеседника. И где это тебе показалось что я "набросился"?
 
Sergey Eremin:

А в чём проблема преобразовать int в double и обратно? :)

Что-то вроде такого:

разве не будет работать? :)

  попробывал так, не получилось
double comment2()
{ 
  int ticket = 0;
  string gvName = "ticket2_"+Symbol()+EnumToString((ENUM_TIMEFRAMES)Period());   
  if(GlobalVariableCheck(gvName)==true)// если в глоб.переменной есть имя ticket2,то
       {
      ticket = (int)GlobalVariableGet(gvName);//тикету присваиваем номер,да?
        if(ticket>0) 
        {
         double comment2=StrToDouble(OrderComment());
        }      
     }  
  return(comment2); 
}
   а вообще хотелось бы разобраться, пока возможность есть. Странно почему 4 недели хранятся значения.Может ордер дольше висеть будет.
 
Dima DD:
   Спасибо за ответ. Первый вариант без цикла не идёт "0". Второй, это перебор ордеров не по тикету.Так не найти 2-й, 3-й и т.д.Тикет указываю перед OrderSend.

Ну вы водные параметры для функции укажите, чтобы первый вариант шел.

double comment2(int ticket2)
 {
 Дальше свой код
 return();
 }
Честно говоря не знаю, как этот код вообще работает.
 
Alexey Busygin:

Ну вы водные параметры для функции укажите, чтобы первый вариант шел.

Честно говоря не знаю, как этот код вообще работает.
добавил  int ticket2, пишет неверные параметры 'comment2' - wrong parameters count
 
Dima DD:
добавил  int ticket2, пишет неверные параметры 'comment2' - wrong parameters count
У вас по сути, функцию надо переписывать.
 

Будет намного проще, если Вы выложите весь код :)

 
Sergey Eremin:

Будет намного проще, если Вы выложите весь код :)

Будет намного проще, если человек расскажет точно свою задачу. Не нужно тут всего этого огорода - логику менять нужно.
 
Artyom Trishkin:
Будет намного проще, если человек расскажет точно свою задачу. Не нужно тут всего этого огорода - логику менять нужно.

Думаю, что ещё лучше код+описание логики, которую пытался реализовать. Ну по крайней мере лично я бы взглянул на код (можно и в личке).

Поясню почему я хочу увидеть весь код: если мы просто по задаче реализуем код (тут или во фрилансе,) или расскажем как это сделать, без анализа текущей логики, то не получится эффекта работы над ошибками. А мне кажется, форум отчасти как раз для этого и нужен - взаимопомощь, работа над ошибками и т.д. Увидев код (даже если он жуткий), и поняв требуемую задачу мы сможем именно помочь сделать как надо, а не сделать работу за ТС. Я лично готов к анализу "огорода" с целью помощи человеку. И да, скорее всего в конечном итоге будет уже другая логика: первая моя попытка натолкнуть на смену логики была на тему перевода учёта сделок по отдельным магическим номерам, а не тикетам. Но сначала нужно понять логику текущую, понять как мыслит человек, чтобы объяснить его ошибки.

Был у нас такой профессор, он говорил "всё неправильно, всё переделать" (не хотел вникать подробно и объяснять наши ошибки). Как понимаете, знания по его предмету остались очень поверхностными у всего потока.

 
Sergey Eremin:

Думаю, что ещё лучше код+описание логики, которую пытался реализовать. Ну по крайней мере лично я бы взглянул на код (можно и в личке).

Поясню почему я хочу увидеть весь код: если мы просто по задаче реализуем код (тут или во фрилансе,) или расскажем как это сделать, без анализа текущей логики, то не получится эффекта работы над ошибками. А мне кажется, форум отчасти как раз для этого и нужен - взаимопомощь, работа над ошибками и т.д. Увидев код (даже если он жуткий), и поняв требуемую задачу мы сможем именно помочь сделать как надо, а не сделать работу за ТС. Я лично готов к анализу "огорода" с целью помощи человеку. И да, скорее всего в конечном итоге будет уже другая логика: первая моя попытка натолкнуть на смену логики была на тему перевода учёта сделок по отдельным магическим номерам, а не тикетам. Но сначала нужно понять логику текущую, понять как мыслит человек, чтобы объяснить его ошибки.

Был у нас такой профессор, он говорил "всё неправильно, всё переделать" (не хотел вникать подробно и объяснять наши ошибки). Как понимаете, знания по его предмету остались очень поверхностными у всего потока.

Разве ж я против? Хочу донести до человека, что в первую очередь важна логика. Сначала нужно определить конечную цель, далее разбить её на подцели и распределить по блокам. В программе, работающей с деньгами, главной целью должна быть надёжность. А значит в первую очередь нужно сделать так, чтобы у нас под рукой всегда находились актуальные данные рыночного окружения. Значит первоочередной задачей должна быть задача поиска нужных данных. Не хранения, а поиска. В этом случае программа будет не зависима от сбоев ОС, терминала, изменений в сортировке на сервере или в терминале и пр.

Если человеку нужно работать с последними тремя ордерами, то их нужно найти - не взять из памяти, а найти. Это первый блок данной задачи. А искать их нужно по времени открытия/закрытия. Далее уже можно сложить данные по этим ордерам во временный массив и, если размер массива не нулевой, то работать с ним - брать из него нужные данные по найденным ордерам.

Остальные блоки задачи нужно так же оформить функциями и работать с ними. Вот потому и говорю - услышать бы конечную цель того, что человек в данном контексте пытается реализовать.

 
Способов прописания одного и тогоже думаю не один, и не два, с магиком всё работает. Код достаточно большой, чтобы половину удалить и показать.Главное сделал то,что нужно было. Всем спасибо.