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

 
tim2019:
Então você não acha que é demais? Talvez os desenvolvedores devam analisar outros recursos freelance para entender como deve ser uma interface amigável para o usuário. Não consegui nem mesmo encontrar o botão Sign Up imediatamente. Em resumo, é terrível.

Não, eu não tenho.

Você só se registrou aqui ontem. O que você tem para vender? O que você tem de conhecimento para executar ordens no serviço freelance a um nível decente? Não no nível de "tudo como, só para bater", mas em um nível que combine com o nível de um excelente, vamos ser bons, desenvolvedor?

Ou você deve se apressar antes de mudar de idéia?

 
Artyom Trishkin:

Não, eu não tenho.

Você só se registrou aqui ontem. O que você tem para vender? O que você tem de conhecimento para executar ordens no serviço freelance a um nível decente? Não ao nível de "tudo como, só para bater", mas ao nível de um excelente, digamos bom, desenvolvedor?

Ou você quer se apressar antes de mudar de idéia?

Afinal de contas, existem alguns padrões para a interface. Se houve um erro, devemos pelo menos informar ao usuário que tipo de erro, em vez de forçar o usuário a bater nele várias vezes com a teimosia de um pica-pau e descarregá-lo / preenchê-lo novamente.

O que isso tem a ver com conhecimento ou o que está à venda? Eu ainda nem cheguei a essa fase. Ao invés disso, infelizmente, é disso que se trata o mundo moderno. Não gostou, fechou-a e passou por ela. Não é isso que somos. E no final das contas, uma conversa vazia. Estou falando torto e estou sendo persuadido de que é assim que deve ser. Certo.

 
tim2019:

Afinal de contas, existem alguns padrões de interface. Se houver um erro, é costume ao menos indicar que tipo de erro, em vez de forçar o usuário a bicar repetidamente com a tenacidade de um pica-pau e baixar/encher novamente.

O que isso tem a ver com conhecimento ou o que está à venda? Eu ainda nem cheguei a essa fase. Ao invés disso, infelizmente, é disso que se trata o mundo moderno. Não gostou, fechou-a e passou por ela. Não é isso que somos. E no final das contas, uma conversa vazia. Estou falando torto e estou sendo persuadido de que é assim que deve ser. Certo.

Eu conheço pessoas que passaram pelo registro de vendedor literalmente em um dia. Mas estas pessoas, e você pode dizer olhando para elas, são inquisitivas e não têm pressa. E tenho visto pessoas que fazem perguntas no fórum há meses, mas não fazem nada sobre o que lhes é dito e escrito.

E para que conste, não há lá nenhum humano - todos os registros são monitorados por um robô. Assim você pode bater na porta dele por um longo tempo e lhe dar algo errado. Mas ainda vale a pena ler seus posts - tudo deveria estar lá. Infelizmente, já ultrapassei tudo isso há muito tempo e, desde então, muita coisa mudou, de modo que não posso dizer exatamente qual é o seu problema. Leia, por exemplo, as seções do seu perfil de fornecedor:


 

Ajuda para ajustar as condições de abertura de posições

// открытие продаж

   if(CountSell()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0])
     
// закрытие продаж
            if(CountSell()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
              
// открытие покупок

   if(CountBuy()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
     
// закрытие покупок    
            if(CountBuy()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0])

considerando que os parâmetros indicadores são incorporados no robô

------------------------------------------------------------------+
//|                                       Test advisor on ZigZag.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                         https:/goga342@yandex.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright c 2010, MQL для тебя."
#property link "http://mql4you.ru"
#property strict
extern double lots = 0.01; //
extern int  TakeProfit=60; //
extern int  StopLoss=100; //
extern int Magic=111111111;
extern int Slippage=3;
extern int ExtDepth=12;
extern int ExtDeviation=5;
extern int ExtBackstep=3;

datetime Today=0;
double SL,TP;
int ticket;
//±-----------------------------------------------------------------+
int OnInit()
  {
   if(Digits==3 || Digits==5)
     {
      TakeProfit *=10;
      StopLoss   *=10;
      Slippage   *=10;
     }
   return(INIT_SUCCEEDED);
  }
//±-----------------------------------------------------------------+
int deinit() {return(0);}
//±-----------------------------------------------------------------+
int start()
  {

   if(DayOfWeek()==0 || DayOfWeek()==6) return(0); // в выходные не работаем
   if(!IsTradeAllowed()) return(0); // пропустим тик если терминал занят
                                    //:проверим открытие новой свечи
   if(Time[0]==Today) return(0);
   Today=Time[0];
//:получим значение ZigZag на предыдущей свече
   double lZZ=iCustom(NULL,0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,1);
  
// открытие продаж

   if(CountSell()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0])
     {
      SL = NormalizeDouble(Bid+StopLoss*Point, Digits);
      TP = NormalizeDouble(Bid-TakeProfit*Point, Digits);
        {

         ticket=OrderSend(Symbol(),OP_SELL,lots,Bid,Slippage,SL,TP,"macd sample",Magic,0,Red);
         if(ticket>0)
           {
            // закрытие продаж
            if(CountSell()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
              {
               for(int i=OrdersTotal()-1; i>=0; i--)
                 {
                  if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
                    {
                     if(OrderMagicNumber()==Magic && OrderType()==OP_SELL)
                        if(OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,clrNONE))
                           Print("Ошибка открытия ордера на покупку !");
                    }
                 }
              }
           }
        }
     }
// открытие покупок

   if(CountBuy()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
     {
      TP = NormalizeDouble(Ask+TakeProfit*Point, Digits);
      SL = NormalizeDouble(Ask-StopLoss*Point, Digits);
        {
         ticket=OrderSend(Symbol(),OP_BUY,lots,Ask,Slippage,SL,TP,"macd sample",Magic,0,Green);
         if(ticket>0)
           {
            // закрытие покупок    
            if(CountBuy()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0])
              {
               for(int i=OrdersTotal()-1; i>=0; i--)
                 {
                  if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
                    {
                     if(OrderMagicNumber()==Magic && OrderType()==OP_BUY)
                        if(!OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,clrNONE))
                           Print("Ошибка открытия ордера на продажу!");
                    }
                 }
              }
           }
        }
     }
   return(0);
  }
//+------------------------------------------------------------------+
int CountSell()//проверкна открытие ордеров на продажу
  {
   int count=0;

   for(int trade=OrdersTotal()-1; trade>=0; trade--)
     {
      if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_SELL)
           {
            if(OrderType()==OP_SELL)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
int CountBuy()// проверкна открытие ордеров на покупку
  {
   int count=0;

   for(int trade=OrdersTotal()-1; trade>=0; trade--)
     {
      if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_BUY)
           {
            if(OrderType()==OP_BUY)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
 
Алексей Тарабанов:

Se você não pode ganhar, roube.

Uma frase clássica de um filme, não consigo lembrar o título: "Se você não pode roubar, aprenda a ganhar".
 
Boa tarde, por alguma razão, a EA está carregando o terminal. Como detectar o erro? ((( Obrigado.
 
rabanik:
Boa tarde, por alguma razão, a EA está carregando o terminal. Como detectar o erro? ((( Obrigado.
Профилирование кода - Разработка программ - MetaTrader 5
Профилирование кода - Разработка программ - MetaTrader 5
  • www.metatrader5.com
Профилирование — это сбор характеристик программы во время ее выполнения. При профилировании замеряется время выполнения и количество вызовов отдельных функций и строк в коде программы. При помощи этого инструмента программист может найти наиболее медленные участки кода и провести их оптимизацию. Профилирование можно проводить на обычном...
 

Boa tarde. Comecei a testar o Expert Advisor em uma conta real. Nunca vi nada parecido com isto com pedidos de venda.

 
Lomonosov1991:

Boa tarde. Comecei a testar o Expert Advisor em uma conta real. Nunca vi nada parecido com isto com pedidos de venda.

Veja na revista "Experts".

 

Bom dia a todos vocês! Pessoal, avisem-me bem se alguém souber.

Este é o código que você pode usar para obter os preços atuais.

void OnTick()
  {
   MqlTick last_tick;
//---
   if(SymbolInfoTick(Symbol(),last_tick))
     {
      Print(last_tick.time,": Bid = ",last_tick.bid,
            " Ask = ",last_tick.ask,"  Volume = ",last_tick.volume);
     }
   else 
      Print("SymbolInfoTick() failed, error = ",GetLastError());
//---
  }

Pergunta:

Qual é a forma correta de anexar isto a ele?

bool  SymbolInfoTick(
   string    symbol,     // символ
   MqlTick&  tick        // ссылка на структуру
   );

Bem, que foi possível obter os preços atuais em um único Expert Advisor para vários pares de moedas.

Bem, eu não sou bom em programação, então estou tentando descobrir!

Razão: