А у вас тоже в программах полно флагов? (читать первый пост)

 
  • 22% (8)
  • 56% (20)
  • 22% (8)
Всего проголосовало: 36
 

Когда я только учился программированию, я думал, что все функции будут выполняться 1 раз.

Вот была у меня такая программа "если цена станет больше 1.3000, то открыть сделку". И я думал, что сделка откроется на этой отметке и всё, она будет ждать стоплосса или тейкпрофита.
Но нет, сделки начали открываться на каждом тике.

и тогда я понял что нужно использовать флаг и снимать его когда сделка уже откроется.

теперь у меня в программе полно флагов.
flag1

flag2

flag3


и для построения линий флаг и для открытия сделок и для взятия времени первого тика и для всего.

правильно ли я поступаю? или можно всё организовать как-то более умно?)

 
всё, вообще всё в мк4 упирается в цикл перебора ордеров/объектов/глобпеременных/чего угодно, флаги практически никогда не использую потому как их нужно на глобальный уровень выводить чтоб не обнулялись при переинициализации, если хочешь чтото программно сделать то сначала спроси у сервера - например а есть ли открытая сделка, если есть то по какой цене открыта, каким объёмом и в каком направлении итд итп, и если цена открытия "примерно" равна текущей +- отклонение то будет считать что по текущей цене сделка уже открыта и новую открывать не надо и так на каждом тике переспрашиваешь сервер, он от этого не лопнет
 
igrok333правильно ли я поступаю? или можно всё организовать как-то более умно?)
При перезагрузке терминала все флаги обнуляются (если конечно вы их не храните в особых местах)
Правильнее все условия проверять "на лету", по текущей ситуации на текущий момент.

Допустим перед открытием ордера проверять, открыт ли уже ордер.
Причина обращения: