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

Boris
3920
Boris  
Chiripaha:
Интересно, что получится. : )) Обычно эти дыры формируются как раз на сервере самого брокера и при подобных попытках исправления у меня успеха не давали. Если брокер не восстановит, то нечему будет подкачиваться.
Но на другой МТ4 на Демо того же брокера нет дыры!
Chiripaha
226
Chiripaha  
borilunad:
Но на другой МТ4 на Демо того же брокера нет дыры!

ключевое слов - ДЕМО

у меня таких случаев десятками и у разных брокеров... Это обычная ситуация.

gyfto
252
gyfto  
Послушайте, профи. Вас и так мало, а вы ещё и сцепляетесь, уже до рукопашной дело доходит. Вы вообще цените весь местный контент? Вам показать форумы, где таких профи вообще нет? Integer сам горячий на руку, доводилось сцепляться, знакомы. Что имеем не храним, потерявши плачем, понимаю. Но бить всего человека пусть даже за то, что он в одном чём-то неправ, при том что у каждого из вас наработки, и довольно неплохие - по крайней мере непродуманно, если не сказать похлеще.
Mikhail Kozhemyako
1334
Mikhail Kozhemyako  
sdm:
Нужна помощь 1 как узнать цену верхнего открытого или отложенного ордера sell 2 как проверить есть ли по указанной мной цене открытый или отложенный ордер sell



Только перебирая все ордера. Например так:

#property copyright "Copyright 2013, Mikhail <Sepulca> Kozhemyako"
#property link      "ua3xcm@obninsk.com"
extern int MAGIC=1234;
int init()
 {
  return(0);
 }
int deinit()
 {
  return(0);
 }
int start()
 {
  int NoL,NoS,NoBS,NoSS,NoBL,NoSL,n,i;
  double MaxSellOpenPrice,MaxSellStopOpenPrice,MaxSellLimitOpenPrice,MinBuyOpenPrice,MinBuyLimitOpenPrice,MinBuyStopOpenPrice;
  NoL=0;NoS=0;NoBS=0;NoSS=0;NoBL=0;NoSL=0;
  MaxSellOpenPrice=0.0;MaxSellStopOpenPrice=0.0;MaxSellLimitOpenPrice=0; MinBuyOpenPrice=99999999.9;MinBuyStopOpenPrice=9999999.9;MinBuyLimitOpenPrice=9999999.9;
// Перебираем все ордера
  n=OrdersTotal();
  for (i=n-1; i>=0; i--)
   {
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
     {
      if(OrderMagicNumber()==MAGIC && OrderSymbol()==Symbol())
       {
        if(OrderType()==OP_BUY) 
         {
          NoL++;MinBuyOpenPrice=MathMin(MinBuyOpenPrice,OrderOpenPrice());
         }
        if(OrderType()==OP_SELL)
         {
          NoS++;MaxSellOpenPrice=MathMax(MaxSellOpenPrice,OrderOpenPrice());
         }
        if(OrderType()==OP_BUYSTOP) 
         {
          NoBS++;MinBuyStopOpenPrice=MathMin(MinBuyStopOpenPrice,OrderOpenPrice());
         }
        if(OrderType()==OP_SELLSTOP)
         {
          NoSS++;MaxSellStopOpenPrice=MathMax(MaxSellStopOpenPrice,OrderOpenPrice());
         }
        if(OrderType()==OP_BUYLIMIT) 
         {
          NoBL++;MinBuyLimitOpenPrice=MathMin(MinBuyLimitOpenPrice,OrderOpenPrice());
         }
        if(OrderType()==OP_SELLLIMIT)
         {
          NoSL++;MaxSellLimitOpenPrice=MathMax(MaxSellLimitOpenPrice,OrderOpenPrice());
         }
       }
     }
   }
// Смотрим чего есть в наличии
  if(NoL>0)// Если есть активные лонги
   {
   }
  if(NoS>0)// Если есть активные шорты
   {
   }
  if(NoBL>0)// Если есть лонги-отложеннники лимитники
   {
   }
  if(NoSL>0)// Если есть шорты отложенники лимитники
   {
   }
  if(NoBS>0)// Если есть лонги-отложенники стоповые
   {
   }
  if(NoSS>0)// Если есть шорты отложенники стоповые
   {
   }
// Соответственно в  переменных получаете мин/макс цену.
  return(0);
 }
Dmitry Fedoseev
58223
Dmitry Fedoseev  
borilunad:

Спасибо! Но есть позиции открытые, или ничего страшного?! Сейчас попробую!

Извините, а как можно удалить только от начала дыры? В F2 можно удалить всё, но как только нажимаю на М1, сразу все котировки появляются с той же дырой! Как же удалить только от начала дыры? 


С позициями ничего не будет. От начала дыры - посмотреть во сколько дыры начинаются, в таблице истории есть колонка с датой, по ней смотрет и от нужной даты вверх (при помощи клавиши Shift). Архив котировок это Главное меню - Сервис - Архив котировок.
Boris
3920
Boris  
Integer:

С позициями ничего не будет. От начала дыры - посмотреть во сколько дыры начинаются, в таблице истории есть колонка с датой, по ней смотрет и от нужной даты вверх (при помощи клавиши Shift). Архив котировок это Главное меню - Сервис - Архив котировок.
Спасибо, Дмитрий! Повыше я уже поблагодарил и сообщил, что получмлось! Не знаю как, но главное 0 ошибок м все котировки еа месте. Но эти объёмы всё время вызывают ошибки! Может, как-нибудь без них? Я в коде их не использую! Ещё раз спасибо!
Chiripaha
226
Chiripaha  

У меня есть имена типа стринг - h0 h1 h2 и т.д. В зависимости от найденного имени мне нужно сделать перебор по swith(Имя).

Как это правильно сделать?

Я пытался через препроцессор - но что-то у меня не получается. : (

#define h0   0
#define h1   1
#define h2   2
#define h3   3      

      string Имя_Остатке;

      switch (Имя_Остатке)
         {
          case h0:  break;
          case h1:  break;
          case h2:  break;
          case h3:  break;
         }
Рустам
3627
Рустам  
неполучится, свитч работает только с интами. загоните имена в массив, и оперируйте его индексами.
Chiripaha
226
Chiripaha  
FAQ:
неполучится, свитч работает только с интами. загоните имена в массив, и оперируйте его индексами.

Спасибо большое!

Научился - Получилось! : ))))   В смысле, через массив.

Boris
3920
Boris  

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

15:55:39 Memory handler: cannot allocate 206924212 bytes of memory
15:55:39 HistoryBase: not enough memory 'EURUSD1' [4702734 bars]
15:55:39 Memory handler: cannot allocate 206924212 bytes of memory
15:55:39 HistoryBase: not enough memory 'EURUSD1' [4702734 bars]
15:55:39 Memory handler: cannot allocate 206924212 bytes of memory
15:55:39 HistoryBase: not enough memory 'EURUSD1' [4702734 bars] 

 500й!