[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 254

 
Здравствуйте! У меня наверное глупый вопрос, но может все таки есть какое нибудь решение? Понимаю что реквоты делает сервер ДЦ, но может есть какой нибудь програмный способ боротся с реквотами? Возможно ли уменьшить их время? А то у моего брокера порой и до 7-10 секунд доходит! Это кошмар.
 
Shniperson:
Здравствуйте! У меня наверное глупый вопрос, но может все таки есть какое нибудь решение? Понимаю что реквоты делает сервер ДЦ, но может есть какой нибудь програмный способ боротся с реквотами? Возможно ли уменьшить их время? А то у моего брокера порой и до 7-10 секунд доходит! Это кошмар.


Нет. В Вашем распоряжении лишь программная обработка реквот. Пример - Функция OpenPosition() для online от Ким И.В.- в последней строчке цикла обработка реквот -

 if (err!=135) Sleep(1000*7.7);

Вообще, ошибки №№ 135 и 138 - предполагают одинаковую обработку, как я понял...:-)))

ERR_PRICE_CHANGED 135 Цена изменилась
ERR_OFF_QUOTES 136 Нет цен
ERR_BROKER_BUSY 137 Брокер занят
ERR_REQUOTE 138 Новые цены

У меня в сове данная строка забита следующим образом

if ((error != ERR_PRICE_CHANGED) && (error != ERR_REQUOTE)) Sleep(1000*7.7);
      


	          
 
Roman.:


Нет. В Вашем распоряжении лишь программная обработка реквот. Пример - Функция OpenPosition() для online от Ким И.В.- в последней строчке цикла обработка реквот -

Вообще, ошибки №№ 135 и 138 - предполагают одинаковую обработку, как я понял...:-)))

ERR_PRICE_CHANGED 135 Цена изменилась
ERR_OFF_QUOTES 136 Нет цен
ERR_BROKER_BUSY 137 Брокер занят
ERR_REQUOTE 138 Новые цены

У меня в сове данная строка забита следующим образом


не понимаю, каким образом программная задержка позволяет "бороться" с реквотами?

речь идёт, что ДЦ делают задержку с открытием ордера, а тут ещё + и программная задержка.

есдинственный способ "борьбы":

а) использовать большой slippage

б) использовать отложники

мой ДЦ в последнее время стал задерживать до минуты, торговать рыночными ордерами просто невозможно

 
nadya:
А почему не посчитать сумму самому, используя функцию OrderCommission()?

int n=OrdersTotal();
double Comission=0;
while (n>0)
 {
 OrderSelect(n-1,SELECT_BY_POS,MODE_TRADES);
 Comission=Comission+OrderCommission();
 n--;
 }
не уверен, что данный код правильно считает его
 
abolk:


...

а) использовать большой slippage

б) использовать отложники

...рыночными ордерами просто невозможно

а) - это по умолчанию идет.

б) - если рыночные открываются, то почему бы и их не пользовать...

 
Друзья, ответьте на мое предыдущее сообщение плз
 

Нада найти среднее значение 

MathAbs(iClose(NULL,0,i)-iOpen(NULL,0,i));

за определенное n свечей прогнать в тестере и вывести  в Alert

Почему-то у меня не получается

Помогите 

 
palesandr:

Нада найти среднее значение

MathAbs(iClose(NULL,0,i)-iOpen(NULL,0,i));

за определенное n свечей прогнать в тестере и вывести в Alert

Почему-то у меня не получается

Помогите

покажите как не получается, а мы поправим
 

   
  extern double n = 360;
   
 
int start()
  {
   
  double v, vol;
 
  for(int i=1;i<=n;i=i+1)
  {
  v=MathAbs(iClose(NULL,0,i)-iOpen(NULL,0,i));
  vol=(vol+v);
  }
  Alert ("vol=", vol );
 return;
 }
 

 
palesandr:


extern double n = 360;


int start()
{

double v, vol;

for(int i=1;i<=n;i=i+1)
{
v=MathAbs(iClose(NULL,0,i)-iOpen(NULL,0,i));
vol=(vol+v);
}
Alert ("vol=", vol );
return;
}


vol = vol / n;
Alert ("vol=", vol );
Причина обращения: