Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 1010

 

Ребят,выдает 130 ошибку, подскажите если не трудно. Просьба не критиковать сильно, начинающий.

.
.
.
   double step = 0.0005;
   double val,c,r,res;
   string str;
   int i; //цикличесская
   int stp=5;
.
.
.
   c=(Ask+Bid)/2;
   r=(MathRound(c*1000))/1000;
   if((r-c)==0){
      res=r;
   }
   else{
      if((r-c)>0){
         res=r-step;
      }
      else {
         res=r+step;
      }
   }
.
.
.
      ResetLastError();
      OrderSend(Symbol(),OP_BUYLIMIT,0.01,res-stp*(i+1)*Point,3,res-(stp*(i+1)-100)*Point,res-(stp*(i+1)+5)*Point,"|",0,0,CLR_NONE);
      Print("98-",GetLastError());
.
.
...
 

Привет всем) подскажите пожалуйста - не могу сообразить как код написать (  Пример; работает 2 робота - у каждого свой магик  ) большая доля на покупку или продажу падает на историю ордеров, то есть если ордер был селл то следющая сделка будет бай  - проблема  заключается в том что не получается выбрать последний ордер и магик вместе  и соответственно определить тип ордера для определенного робота(работает только часть кода - если выбирать только последний ордер из истории - отлично работает когда робот один ,а второй код записанный через for перечисляет все ордера с магик номером выводит его число порядковое и пишет его тип но  почему то не возвращает значение последнего и я не могу понять почему ) помогите это соединить в одно целое  вот 1 и 2 код  ;

1) код для определения последнего ордера а точнее его типа

int orderBS;

int total1=OrdersHistoryTotal()-1;

if(OrderSelect(total1, SELECT_BY_POS, MODE_HISTORY) == true)  //  тип ордера

          { orderBS=OrderType();}

2) код считает все совершенные сделки смагиком записывает их порядковый номер и тип но не выводит последний ордер  

  int k ;

 int orderBS;

 

if(OrdersHistoryTotal()>0)

  { for(int O=OrdersHistoryTotal()-1; O>=0; O--)

     { if(OrderSelect(O,SELECT_BY_POS,MODE_HISTORY))

       {  if(OrderMagicNumber()!=136) continue; 

         if(OrderMagicNumber()==136)          

          k=OrderMagicNumber();

         orderBS=OrderType();

         Alert("последний ордер номера 136 = ","номер ордера в истории=",O,"магик номер=",k,"ордер сел бай=",orderBS);   }}}  

КАК ВЕРНУТЬ ПОСЛЕДНИЙ ОРДЕР ИЗ ИСТОРИИ С НУЖНЫМ МАГИК номером !!!   


help me pliz!!!!!              

 
Tema97:

Привет всем) подскажите пожалуйста - не могу сообразить как код написать (  Пример; работает 2 робота - у каждого свой магик  ) большая доля на покупку или продажу падает на историю ордеров, то есть если ордер был селл то следющая сделка будет бай  - проблема  заключается в том что не получается выбрать последний ордер и магик вместе  и соответственно определить тип ордера для определенного робота(работает только часть кода - если выбирать только последний ордер из истории - отлично работает когда робот один ,а второй код записанный через for перечисляет все ордера с магик номером выводит его число порядковое и пишет его тип но  почему то не возвращает значение последнего и я не могу понять почему ) помогите это соединить в одно целое  вот 1 и 2 код  ;


1) Чтобы правильно вставить исходный код на форуме, нажмите на SRC и в появившееся окно вставьте ваш код.


2) Попробуйте такой скрипт, быстро его набросал, не проверял т.к. у меня нет ордеров в истории.

#property strict

void OnStart()
  {
   if(OrdersHistoryTotal()>0)
     {
      for(int i=OrdersHistoryTotal()-1; i>=0; i--)
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
           {
            if(OrderMagicNumber()!=136) continue;
              {
               Print("Последний ордер с магик-номером 136: индекс ордера в истории = ",i,
                     " магик номер = ",OrderMagicNumber(),
                     " тип ордера = ",OrderType());
               return;
              }
           }
        }
     }
  }

3) Помните, если после if идет только одна инструкция, то фигурные скобки { } можно не ставить, НО если идет 2 и более инструкций зависящие от этого if, то их обязательно надо записать внутри { }. В вашем примере выше было так, что после условия   if(OrderMagicNumber()==136)  идет 3 инструкции к=...; orderBS=...; и Alert();   но они не помещены внутри { }.

 

"Один в поле - не воин!"

Здравствуйте всем!

Есть ли здесь кто-нибудь из ЛИТМО (Санкт-Петербургский Государственный университет Информационных Технологий Механики и Оптики), живущий в Питере, с кем можно встречаться очно и обсуждать вопросы программирования?
Откликнитесь в личку или на E-mail: leonid.belskiy@gmail.com !!!!!
 
paladin80:

1) Чтобы правильно вставить исходный код на форуме, нажмите на SRC и в появившееся окно вставьте ваш код.


2) Попробуйте такой скрипт, быстро его набросал, не проверял т.к. у меня нет ордеров в истории.

3) Помните, если после if идет только одна инструкция, то фигурные скобки { } можно не ставить, НО если идет 2 и более инструкций зависящие от этого if, то их обязательно надо записать внутри { }. В вашем примере выше было так, что после условия   if(OrderMagicNumber()==136)  идет 3 инструкции к=...; orderBS=...; и Alert();   но они не помещены внутри { }.

- все так же делает как и 2 код - последний не выбирает ((((((((((((

может как нибудь через время закрытия сделать ????? или там тоже не выбрать? 

 
Всем привет. Кто знает , какое время жизни одномерного статического массива? Оно такое же как у локальной переменной или нет?
 
i999i:
Всем привет. Кто знает , какое время жизни одномерного статического массива? Оно такое же как у локальной переменной или нет?
После выполнения функции , в которой объявлен массив , его надо удалять или что то с ним делать для высвобождения памяти или он сам удалится?
 
i999i:
После выполнения функции , в которой объявлен массив , его надо удалять или что то с ним делать для высвобождения памяти или он сам удалится?
Пока работает программа - он (массив) существует
 
Vinin:
Пока работает программа - он (массив) существует
а если он мне нужен на 1 тик в час , а в остальное время он мне не нужен ...как его удалить? ...он же все это время занимает память
 
подскажите пожалуйста как часто перерисовывается самостоятельно график? (так же как принудительно это делает ChartRedraw() )
Причина обращения: