[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 388

 
Chiripaha:
O que será que vai acontecer? : )) Normalmente estes furos são formados apenas no servidor do próprio corretor e em tentativas semelhantes de consertá-los eu não tive sucesso. Se o corretor não o consertar, não há nada para bombear.
Mas em outro MT4 na Demo do mesmo corretor não há buraco!
 
borilunad:
Mas em outro MT4 em demonstração do mesmo corretor não há buraco!

a palavra-chave é demo.

Já tive dezenas de casos desses com diferentes corretores. Esta é uma situação comum.

 
Ouçam bem, profissionais. Não há o suficiente de você e você está se chocando, está chegando ao ponto de mão a mão. Você aprecia ao menos todo o conteúdo local? Você quer que eu lhe mostre fóruns onde não existem tais profissionais?O Integer está quente em suas mãos, eu já estive em uma briga antes, eu o conheço. Entendo o que temos e choro pelo que não temos. Mas bater em uma pessoa inteira pelo fato de que ela estava errada em uma coisa, mesmo que cada um de vocês tenha experiência, e bastante boa - pelo menos irracional, se não para dizer pior.
 
sdm:
Preciso de ajuda 1 como saber o preço da ordem de venda em aberto ou pendente 2 como verificar se há uma ordem de venda em aberto ou pendente ao preço que especifiquei



Somente passando por todas as ordens. Por exemplo, como este:

#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);
 }
 
borilunad:

Obrigado! Mas há posições em aberto, ou isso está bem?! Vou tentar agora!

Desculpe, como posso apagar apenas desde o início do buraco? Você pode apagar tudo em F2, mas assim que eu apertar M1, todas as aspas aparecem imediatamente com o mesmo furo! Então, como apagar apenas desde o início do buraco?


Nada acontecerá com as posições. Desde o início do buraco - veja a que horas os buracos começam, na tabela de histórico há uma coluna com a data, use-a para olhar para cima a partir da data desejada (usando a tecla Shift). Arquivo de cotações é Menu principal - Ferramentas - Arquivo de cotações.
 
Integer:

Nada acontecerá com as posições. Desde o início do buraco - veja a que horas os buracos começam, na tabela de histórico há uma coluna com a data, use-a para olhar para cima a partir da data desejada (usando a tecla Shift). O arquivo de citações está no menu principal - Ferramentas - Arquivo de citações.
Obrigado Dmitriy! Já agradeci acima e relatei o que tenho! Não sei como, mas o principal é que há 0 erros e todas as citações estão no lugar. Mas esses volumes causam erros o tempo todo! Que tal não usá-los? Eu não os uso em meu código! Mais uma vez, obrigado!
 

Tenho nomes do tipo string - h0 h1 h2 etc. Dependendo do nome encontrado, eu preciso fazer uma enumeração swith(Name).

Como fazer isso corretamente?

Eu tentei usar o pré-processador, mas não funcionou. : (

#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;
         }
 
Você não pode, o interruptor só funciona com ints. coloque os nomes em uma matriz, e opere-o com índices.
 
FAQ:
Não vai funcionar, o interruptor só funciona com ints. coloque os nomes em uma matriz, e opere-o com índices.

Muito obrigado!

Entendi - Entendi! : )))) através de uma matriz.

 

Infelizmente, os 1minutos se foram de novo, só que no gráfico, e no diário de bordo está rabiscando a cada décimo de segundo:

15:55:39 Manipulador de memória: não pode alocar 206924212 bytes de memória
15:55:39 HistoryBase: memória insuficiente 'EURUSD1' [4702734 barras]
15:55:39 Manipulador de memória: não pode alocar 206924212 bytes de memória
15:55:39 HistoryBase: memória insuficiente 'EURUSD1' [4702734 barras]
15:55:39 Manipulador de memória: não pode alocar 206924212 bytes de memória
15:55:39 HistoryBase: memória insuficiente 'EURUSD1' [4702734 barras]

500й!

Razão: