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

 
secret #:


Não está muito claro o que significa "ativo". Inclui ordens de mercado aceitas pelo servidor mas ainda não executadas? Onde a documentação diz sobre isso?

Uma ordem pendente acionada torna-se uma ordem de mercado. E esta ordem de mercado não pode mais ser aceita. Ou seja, uma ordem ativa é aquela que não foi atingida pelo preço e que ainda não foi acionada.

 
As ordens de mercado aceitas pelo servidor mas ainda não executadas estão incluídas nas ordens "ativas"?
 
secret #:
As ordens de mercado aceitas pelo servidor mas ainda não executadas estão incluídas nas ordens "válidas "?

A resposta acima é insatisfatória?

 
Artyom Trishkin #:

A resposta acima é insatisfatória?

Bem, você respondeu à pergunta errada.
Eu gostaria de uma resposta de sim/não, de preferência com um link para a documentação.
 
secret #:
Você respondeu à pergunta errada.
Eu gostaria de uma resposta de sim/não, de preferência com um link para a documentação.

Respondi à pergunta que você fez.

Link para a documentação.

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

Bom tempo!

Eu tenho uma pergunta, mas não encontrei uma solução nos sites dos comerciantes. A idéia é a seguinte, botões COMPRAR e VENDER, lotes, TP, SL, preço atual na tabela, mas quando os pressiono recebo "magia" dependendo dos modos:

1) precisamos de mais um parâmetro "voltar em pips do ASK/BID" do preço atual no momento da prensagem BUY/SELL. Isto é o preço salta e às vezes salta um pouco mais alto e um pouco mais baixo, o que é comparável à comissão, que às vezes é paga pelo corretor (é importante para os escaladores), por exemplo, você fixa 5-8 pontos e o preço pode ir até esta distância, mas não, o pedido é cancelado em algum tempo, por exemplo, você pode definir este parâmetro em segundos.

2)Este modo é ainda mais complicado e interessante. Por exemplo, o preço mais baixo/navegável para o último 1 minuto é calculado (ou você pode defini-lo manualmente - por 2 minutos, por 30 segundos) e no momento de pressionar COMPRAR ou VENDER o pedido pendente para este preço é criado.

Tudo isso deve ser registrado em alguma tabela em um gráfico por conveniência (naturalmente, não nos parâmetros do Expert Advisor).

Quem encontrou, codificou ou viu algo semelhante?

 

?

Há a necessidade de obter um bilhete do primeiro pedido aberto que ainda esteja aberto.

Pensei que poderia passar pelo número do bilhete e tempo= o mais antigo por vez, ou poderia apenas passar pelos bilhetes e escolher aquele com o valor mais baixo.

Quem fez isso?

Talvez eu não esteja pensando corretamente e existam boas opções
 
Alexander Avksentyev um bilhete do primeiro pedido aberto que ainda esteja aberto.

Pensei que poderia passar pelo número do bilhete e tempo= o mais antigo por vez, ou poderia apenas passar pelos bilhetes e escolher aquele com o valor mais baixo.

Quem fez isso?

Talvez eu não esteja pensando direito e existam opções certas
//+----------------------------------------------------------------------------+
int FindTicketOrder()
  {
   datetime t=TimeCurrent();
   int result=-1;
   for(int i = OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
        {
         if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
           {
            if(t>OrderOpenTime())
              {
               t=OrderOpenTime(); result=OrderTicket();
              }
           }
        }
     }
   return(result);
  }
 
Порт-моне тв #:

Boa tarde!

Quem encontrou, codificou ou viu algo parecido com isto?

Assim?


 

Boa tarde a todos!!!

Ajuda para consertar o código.

Aqui está um comando para abrir as primeiras ordens na grade da EA:

//-------------------------------------------------------------------+  Команда на открытие первых ордеров в сетке
   if((UseHour==1&&Hour()>=StartTime&&Hour()<=StopTime)||UseHour==0)
     {
      if(ObjectFind(0,"Начало торговли" + TimeToString(Time[0],TIME_DATE))!=0)
        {
         ObjectCreate(0,"Начало торговли"+TimeToString(Time[0],TIME_DATE),OBJ_VLINE,0,Time[0]+((StartTime - 1)*3600),0);
         ObjectSetInteger(0,"Начало торговли"+TimeToString(Time[0],TIME_DATE),OBJPROP_COLOR, clrBlue);
         ObjectCreate("signal1",OBJ_LABEL,0,0,0,0,0);
         ObjectSet("signal1",OBJPROP_XDISTANCE,100);
         ObjectSet("signal1",OBJPROP_YDISTANCE,300);
         ObjectSetText("signal1","| Начало торговли",14,"Times New Roman",clrBlue);
         ObjectCreate(0,"Окончание торговли"+TimeToString(Time[0],TIME_DATE),OBJ_VLINE,0,Time[0]+(StopTime*3600),0);
         ObjectSetInteger(0,"Окончание торговли"+TimeToString(Time[0],TIME_DATE),OBJPROP_COLOR, clrYellow);
         ObjectCreate("signal2",OBJ_LABEL,0,0,0,0,0);
         ObjectSet("signal2",OBJPROP_XDISTANCE,100);
         ObjectSet("signal2",OBJPROP_YDISTANCE,320);
         ObjectSetText("signal2","| Окончание торговли",14,"Times New Roman",clrYellow);
        }
      if(CountTrade(0)==0 && CountTrade(1)==0 && TradeSignal()==0 && Drawdown < TotalDrawdown)
         SendFirsOrder(0);
      if(CountTrade(1)==0 && CountTrade(0)==0 && TradeSignal()==1 && Drawdown < TotalDrawdown)
         SendFirsOrder(1);
     }

O código define o tempo de início e fim da abertura das primeiras ordens, mas devido à diferença na função Hora() que participa do cálculo do tempo de negociação e da matriz Tempo[] que participa da visualização do início e fim da negociação no gráfico

há uma discrepância entre o tempo estimado de comércio e a visualização em um gráfico.

Obrigado por sua ajuda!

Razão: