[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 163

 
Não é esse o meu desejo. É uma resposta à sua pergunta de 12:08.
 
MikeM:
Não é esse o meu desejo. É uma resposta à sua pergunta de 12:08.
Ok. no post clique em "responder" eu não percebi que era uma resposta à minha pergunta. Mas um bom conselho, farei como você sugeriu. Obrigado.
 
paladin80:
Ok. Clique em "responder" no post, não percebi que era uma resposta à minha pergunta. Mas o conselho é bom, eu farei como você sugeriu. Obrigado.

Meu entendimento é que se você tiver mais de um EA e não houver sobreposição no envio de ordens comerciais,

você pode usar isto:

if(IsTradeContextBusy())Sleep(5000);//Торговый поток занят. Подождите 5 ceкунд

insira-o antes de OrderSend();

 

Melhor ainda, aqui está uma função para a abertura de posições.

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 10.04.2008                                                     |
//|  Описание : Открывает позицию по рыночной цене.                            |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (NULL или "" - текущий символ)          |
//|    op - операция                                                           |
//|    ll - лот                                                                |
//|    sl - уровень стоп                                                       |
//|    tp - уровень тейк                                                       |
//|    mn - MagicNumber                                                        |
//|    co - комментарий                                                        |
//+----------------------------------------------------------------------------+
void OpenPosition(string sy, int op, double ll, double sl=0, double tp=0, int mn=0, string co="") {
  color    clOpen;
  datetime ot;
  double   pp, pa, pb;
  int      dg, err, it, ticket=0;

  if (sy=="" || sy=="0") sy=Symbol();
  if (op==OP_BUY) clOpen=clOpenBuy; else clOpen=clOpenSell;
  if (co=="") co=WindowExpertName()+" "+GetNameTF(Period());
  for (it=1; it<=NumberOfTry; it++) {
    if (!IsTesting() && (!IsExpertEnabled() || IsStopped())) {
      Print("OpenPosition(): Остановка работы функции");
      break;
    }
    while (!IsTradeAllowed()) Sleep(5000);
    RefreshRates();
    dg=MarketInfo(sy, MODE_DIGITS);
    pa=MarketInfo(sy, MODE_ASK);
    pb=MarketInfo(sy, MODE_BID);
    if (op==OP_BUY) pp=pa; else pp=pb;
    pp=NormalizeDouble(pp, dg);
    ot=TimeCurrent();
    if (MarketWatch)
      ticket=OrderSend(sy, op, ll, pp, Slippage, sl, tp, co, mn, 0, clOpen);
    else
      ticket=OrderSend(sy, op, ll, pp, Slippage, sl, tp, co, mn, 0, clOpen);
    if (ticket>0) {
      if (UseSound) PlaySound(SoundSuccess); break;
    } else {
      err=GetLastError();
      if (UseSound) PlaySound(SoundError);
      if (pa==0 && pb==0) Message("Проверьте в Обзоре рынка наличие символа "+sy);
      // Вывод сообщения об ошибке
      Print("Error(",err,") opening position: ",ErrorDescription(err),", try ",it);
      Print("Ask=",pa," Bid=",pb," sy=",sy," ll=",ll," op=",GetNameOP(op),
            " pp=",pp," sl=",sl," tp=",tp," mn=",mn);
      // Блокировка работы советника
      if (err==2 || err==64 || err==65 || err==133) {
        gbDisabled=True; break;
      }
      // Длительная пауза
      if (err==4 || err==131 || err==132) {
        Sleep(1000*300); break;
      }
      if (err==128 || err==142 || err==143) {
        Sleep(1000*66.666);
        if (ExistPositions(sy, op, mn, ot)) {
          if (UseSound) PlaySound(SoundSuccess); break;
        }
      }
      if (err==140 || err==148 || err==4110 || err==4111) break;
      if (err==141) Sleep(1000*100);
      if (err==145) Sleep(1000*17);
      if (err==146) while (IsTradeContextBusy()) Sleep(1000*11);
      if (err!=135) Sleep(1000*7.7);
    }
  }
  if (MarketWatch && ticket>0 && (sl>0 || tp>0)) {
    if (OrderSelect(ticket, SELECT_BY_TICKET)) ModifyOrder(-1, sl, tp);
  }
}
 
Bom dia! Pergunta sobre a rede de arrasto: Fiz uma parada de 25 pips. À noite chego do trabalho, e o negócio não estava fechado, embora o preço do dia estivesse a 70 pips de distância.
 
demid61:
Bom dia! Pergunta sobre a rede de arrasto: Fiz uma parada de 25 pips. À noite chego do trabalho, e o negócio não estava fechado, embora o preço do dia estivesse a 70 pips de distância.

Onde está o código? Sem o código - aqui.
 
demid61:

Bom dia! Pergunta sobre a rede de arrasto. Estabeleci uma parada de arrasto de 25 pips.

Provavelmente há uma pequena opus "e eu estou desligando o computador" que está acontecendo aqui.

 
sergeev:

provavelmente há uma pequena opus "e desligando o computador" acontecendo aqui




:)) Pensei que funcionaria sem um computador
 
gawara:
Olá a todos os senhores... Tenho pesquisado no Google há muito tempo, mas ainda não o encontrei... Eu tenho uma pergunta, há uma estatueta em html, ela precisa ser visualizada em um gráfico para maior clareza, parece-me do ponto de vista de programação é possível, quem se deparou com algo como isto por favor aconselhe ... Acho que deve haver algum tipo de roteiro que faça o trabalho ... obrigado de antemão...

https://www.mql5.com/ru/code/10425
 

Amigos!

Ajuda, não consigo entender...

Como posso ter uma visão:

if( lucro>=0,10 && lucro <=0,99) dp =1;

senão

if( lucro>==1,00 && lucro <=9,99) dp =10;

senão

if( lucro>==10,00 && lucro <=99,99) dp =100;

... e assim por diante através do loop for( int i=0; i<=100000; i++)

Simplificando, COMO determinar o número de casas decimais que restam do número inteiro (fracionário é claro)?