Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1749

 
makssub #:
Boa tarde. Eu uso este código para fechar todos os pedidos. Mas notei que se há muitos deles, nem todos estão fechados. O que posso acrescentar para fechar todos eles, mesmo que não seja a primeira vez. Se possível, por favor, nos dê um exemplo.

https://www.mql5.com/ru/docs/common/sleep

   if(AccountInfoDouble(ACCOUNT_EQUITY)<=TargetLoss || AccountInfoDouble(ACCOUNT_EQUITY)>=TargetProfit)
     {
      AllClose();
      Sleep(1000);
      AllClose();
      ExpertRemove();
     }
//---
Документация по MQL5: Общие функции / Sleep
Документация по MQL5: Общие функции / Sleep
  • www.mql5.com
Sleep - Общие функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Última pergunta )

Quem quer que tenha portado sua EA da plataforma mql para janelas ou linux. Deixe-me explicar, uma vez há muito tempo atrás, escrevi scripts para o mu online, que o jogo em si bombeava o herói, enquanto você dormia. Então a questão é, talvez quem transferiu o consultor, para fora da plataforma? O tipo de comércio de uma pessoa, não de um robô.

Desculpe se não o expliquei corretamente )

 
makssub #:

Última pergunta )

Quem quer que tenha portado sua EA da plataforma mql para janelas ou linux. Deixe-me explicar, uma vez há muito tempo atrás, escrevi scripts para o mu online, que o jogo em si bombeava o herói, enquanto você dormia. Então a questão é, talvez quem transferiu o consultor, para fora da plataforma? O tipo de comércio de uma pessoa, não de um robô.

Se isso não foi explicado corretamente, desculpe )

em um servidor Windows (VDS ou VPS) é colocado o MetaTrader, no qual o Expert Advisor está rodando. Isso é tudo: O soldado dorme, o serviço vai :-)

A plataforma de negociação é algorítmica e projetada para a participação ativa do robô, se não totalmente por um robô.

Embora, clickers (software que "clica" nos botões que emulam um humano) alguém usa. E os freelancers são solicitados periodicamente e há os que estão à venda na Internet.

 

Olá!

Alguém pode encontrar um EA ou um pedaço de código (para incluir no código da coruja), para mudar o SL TP para o próximo pedido?

Digamos que o pedido foi aberto com 0,01 SL= 30 TP=100

o próximo pedido aberto com 0,02SL= 30 TP=95

etc.

Que função devo usar para descrever isto?

É assim que o meuSL TP está sendo designado atualmente:

//+-----------------------------------------------------------------------------------------------+
//|                                                                    Функция модификации ордера |
//+-----------------------------------------------------------------------------------------------+
void vOrderModify(int iOTi)
  {
   int    iOTy = -1;    // Тип ордера
   double dOOP = 0;     // Цена открытия ордера
   double dOSL = 0;     // Стоп Лосс
   int    iMag = 0;     // Идентификатор советника
   double dSL  = 0;     // Уровень убытка
   double dTP  = 0;     // Уровень прибыли

// Выберем по тикету открытый ордер, получим некоторые значения
   if(OrderSelect(iOTi, SELECT_BY_TICKET, MODE_TRADES))
     {
      iOTy = OrderType();
      dOOP = OrderOpenPrice();
      dOSL = OrderStopLoss();
      iMag = OrderMagicNumber();
     }

// Если ордер открыл данный советник, то входим в условие
   if(OrderSymbol() == Symbol() && OrderMagicNumber() == iMag)
     {
// Если Стоп Лосс текущего ордера равен нулю, то модифицируем ордер
      if(dOSL == 0)
        {
         if(iOTy == OP_BUY)
           {
            dSL = NormalizeDouble(dOOP - StopLoss * Point, Digits);
            dTP = NormalizeDouble(dOOP + TakeProfit * Point, Digits);

            bool bOM = OrderModify(iOTi, dOOP, dSL, dTP, 0, clrNONE);
           }

         if(iOTy == OP_SELL)
           {
            dSL = NormalizeDouble(dOOP + StopLoss * Point, Digits);
            dTP = NormalizeDouble(dOOP - TakeProfit * Point, Digits);

            bool bOM = OrderModify(iOTi, dOOP, dSL, dTP, 0, clrNONE);
           }
        }
     }
  }
 

Cavalheiros profissionais, por favor, aconselhem-me, não consigo pensar em nada (acabo de começar a aprender programação).

Aqui está uma parte de um Expert Advisor, não importa qual deles. Na função OnInit() há dois operadores de retorno.

Não consigo obter os números -1 e 0 entre parênteses, de onde eles vêm e de onde volta o programa abortado?

//| Função de iniciação de especialista |

//+------------------------------------------------------------------+
int OnInit()
{
*******************************************
if(********* ||| *********)
{
Alert("***************",******(),"!!");
retorno(-1);
}


**** = *******;
*** = *********;
if(_******** || _********)
{
************;
************;
}
retorno(0);
}
//+------------------------------------------------------------------+
//| Função de desinicialização especializada |
 
vladeimirami #:

Eu não consigo obter os números -1 e 0 entre parênteses, de onde eles vêm e para onde o programa abortado volta?

https://www.mql5.com/ru/docs/event_handlers/oninit

Continue lendo. Zero é um sucesso e o programa continuará funcionando. Os outros números são o fim do trabalho.

Документация по MQL5: Обработка событий / OnInit
Документация по MQL5: Обработка событий / OnInit
  • www.mql5.com
OnInit - Обработка событий - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Aleksei Stepanenko #:

https://www.mql5.com/ru/docs/event_handlers/oninit

Continue lendo. Zero é um sucesso e o programa continua. Os outros números são o fim do trabalho.

Merda. Entendi. Não leu cuidadosamente a enumeraçãoENUM_INIT_RETCODE. Obrigado. De qualquer forma, quando a inicialização falha, saímos com qualquer número que não seja zero. Pelo menos, ele se moveu do ponto morto. Obrigado!
Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Функции обработки событий - Функции - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

A tarefa de verificar os gráficos de símbolos para barras em falta

Não consigo encontrar uma solução para este problema

Preciso escrever o roteiro de acordo com o seguinte princípio: Print(data), Print(data), Print(data ) se houver uma lacuna na barra

Por exemplo, o roteiro deve ter 48 barras no gráfico M30 eimprimir (data) se houver uma lacuna de 47 barras.

Como escrevê-lo? É desejável uma solução multiplataforma.

P.S. Isto deve ser feito em toda a história disponível.

 

Vitaly, como você estima o passe da barra? 48 barras por dia? Às vezes o trabalho pára às 23h, às vezes começa às 2h. Se você olhar o rublo, não há comércio lá à noite.

Se for estritamente 24 horas 5 dias por semana, então tentaremos cada barra em ordem com a verificação da seqüência. Mas então haverá sinais sobre barras perdidas, que não deveriam existir.

 
Vitaly Muzichenko Print(data), Print(data ) se houver uma lacuna na barra

Por exemplo, o roteiro deve ter 48 barras no gráfico M30 eimprimir (data) se houver uma lacuna de 47 barras.

Como escrevê-lo? É desejável uma solução multiplataforma.

P.S. Isto deve ser feito em toda a história disponível.

Há uma tarefa semelhante - fazer um cronograma com barras perdidas. Isto é, por exemplo, ter exatamente 1440 minutos em um dia. Não importa se alguns deles estão vazios.

nada de rápido, limpo e bonito surgiu :-( Apenas para formar uma matriz no início do dia, contagem de minutos decorridos a partir das 0:00 e preenchimento desta forma.

E o fato de faltarem minutos pode ser verificado comparando-se iBars(current_time,0:01 of current day) e (current_time_beginning of day)/PERIOD_SECONDS...

Razão: