Положительное проскальзывание - страница 2

 
tara:

Пока не знаю. У Вас ордер какой?

OP_BUY на счете типа классик и исполнение инстант

 
olyakish:

OP_BUY на счете типа классик и исполнение инстант




Покажите в коде, если не напрягаю.
 
Тезка, спать хочу уже:)
 
Все, сплю.
 
bool ОткрытиеОрдеров(int type,double inLot, int prolet, int profit,int sleepp)
   {
         double pr_open,_TP,_SL;
         
         int startOpenMS=0,openMS=0,startmodyMS=0,modyMS=0;
         
         //while(ticket==0)      // так как открываем один только раз реквоты смысла нет отыгрывать
            {
               if (!IsTradeContextBusy())
                  {
                     RefreshRates();
                     if (type==0){pr_open=NormalizeDouble(Ask,Digits);}
                     if (type==1){pr_open=NormalizeDouble(Bid,Digits);}

                     if ((type==0 && (pr_open-Close[1])>prolet*Point*mult) || //  текущий аск еще не ускакал вверх при покупке
                         (type==1 && (Close[1]-pr_open)>prolet*Point*mult))   // текущий бид еще не упал вниз при продаже                 
                       // уже поздно входить
                        {
                           Print (pr_open," ",Close[1]," ",pr_open-Close[1]," "," Цена пролетела ",MathAbs(Close[1]-pr_open)/Point/mult,"  настройка=",prolet," пунктов");
                           return(false);
                        }
                     startOpenMS=GetTickCount();
                     globalTicket=OrderSend(Symbol(),type,inLot,pr_open,sleepp*mult,0.0,0.0,"",magic,0,DarkOrange);
                     openMS=GetTickCount();
                     if (globalTicket<0){Print("Ошибка открытия ордера",  GetLastError());} 
                     
                     if (globalTicket>0)
                        {
                           startmodyMS=GetTickCount();
                           OrderSelect(globalTicket,SELECT_BY_TICKET,MODE_TRADES);
                           if (type==0){_TP=OrderOpenPrice()+profit*Point*mult;_SL=OrderOpenPrice()-SL_Ot_pr_open_pos*Point*mult;}
                           if (type==1){_TP=OrderOpenPrice()-profit*Point*mult;_SL=OrderOpenPrice()+SL_Ot_pr_open_pos*Point*mult;}
                           OrderModify(globalTicket,OrderOpenPrice(),_SL,_TP,0,Aqua);
                           modyMS=GetTickCount();
                        }
                     Print("cmd=",type," хотели по цене=",DoubleToStr(pr_open,Digits)," а исполнили по цене=",DoubleToStr(OrderOpenPrice(),Digits)," _SL=",DoubleToStr(_SL,Digits)," _TP=",DoubleToStr(_TP,Digits), " lot=",inLot);                  
                     Print("время на открытие =", openMS-startOpenMS, " время на модификацию=",modyMS-startmodyMS); 
                     priceOpenNewsBar=Open[0];                 
                  }
              //else {break;}    
            }
      return(0);   
   }
            if(buyNormal)
               {
                  ОткрытиеОрдеров(0,LotNormal,maxPipsThenNotTradeNormal,tp_Ot_pr_open_posNormal,sleeppageNormal);
                  Print("Отправили запрос по безопасному бай по цене ",Ask," ",hread[1]," ",GetTickCount()-hread[1], " общее время на открытие и модификацию брокером=",GetTickCount()-timestartsend);
                  lastSignalIsTrade=true;
                  buyNormal=false;
               }
 

Вопрос из первого поста остался открытым.

 
ECN не спасает, только хардкор - нормальный брокер (ну если у вас стратегия нормальная)
 

Вопрос к разработчикам

Сколько строчек в лог файле занимает открытие позиции, а так же пример можно увидеть когда сервер выдает реквоту.

Просто я оформлял претензию одному брокеру

на мой лог терминала из трех строчек

12:30:01 '*******': instant order buy 2.00 GBPUSD at 1.63513 sl: 0.00000 tp: 0.00000
12:30:01 '*******': request was accepted by server
12:30:01 '*******': requote 1.63455 / 1.63505 for open buy 2.00 GBPUSD at 1.63513 sl: 0.00000 tp: 0.00000

Мне в ответ дали всего 1 строчку серверного лога и отказали в открытии позиции

2014.01.17 11:30:01    '*******': instant buy 2.00 GBPUSD at 1.63513 sl: 0.00000 tp: 0.00000 requoted due wrong prices

Я подозреваю что это далеко не все.

Отправляя приказ с проскальзыванием 150п это обязательно должно было быть в логе (для разбора претензий) на счетах типа instant

а так же цены реквоты которую отправляет сервер на клиент.

Ни за что не поверю что серверный лог короче клиентского и еще и в этом случае имеет приоритет в разборе претензий.

Хотя по их регламенту считаю что нарушены пункт 9,31 подпункт b и (или) с




PS. Из личного опыта когда обслуживал серверное ПО устройств самообслуживания, логи у меня за день набегали до 1 гигабайта текстовой информации и однозначно давали всю хронологию действия клиента с УС.

Причина обращения: