Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 1065

 
evillive:

Se eu entendi corretamente, você precisa de uma foto depois de 30 ticks, não para cada um dos próximos 30 ticks depois que a posição for fechada?

Não seria então mais fácil tirar uma foto pelo tempo? Digamos, após 30 segundos do tempo de fechamento do pedido?

A foto precisa de um após 30 ticks. O gráfico será de tiquetaque, portanto, será de 30 tiquetaques. Mas em qualquer caso, devemos trabalhar com a matriz. Se outras ordens forem fechadas dentro de 30 segundos, teremos que contar 30 segundos das outras ordens também.
 
JuliettaRu:
Boa tarde, por favor, me indique onde encontrar uma explicação para minha pergunta (presumo que não sou o primeiro a fazê-la) e o que fazer. Instalei o MT4 em meu smartphone, mas os gráficos que ele mostra com um atraso de 20 minutos - eu o comparo com as leituras do MT4 no PC.
É um graal!
 

Ajude-me a descobrir isso. Não sei como consertar este pedaço de código... Ou melhor, o que posso acrescentar para que ele não jure?

o valor de retorno de 'OrderModify' deve ser verificado

         }    
         if (OrderOpenPrice()-Ask > Korts*Point*Multi)
         {
           if (OrderStopLoss() > Ask +(Korts)*Point*Multi) 
           {
              OrderModify(OrderTicket(),OrderOpenPrice(),Ask + (TrSt)*Point*Multi,'1', 0, Red);
           }
         }            
      }
   }   
   return(0);
 
Guaro:

Ajude-me a descobrir isso. Não sei como consertar este pedaço de código... Ou melhor, o que devo acrescentar para não jurar?

o valor de retorno de 'OrderModify' deve ser verificado

O valor retornado da função OrderModify() deve ser atribuído a uma variável para que a função possa ser verificada. Ou apenas

if(OrderModify(OrderTicket(),OrderOpenPrice(),Ask + (TrSt)*Point*Multi,'1', 0, Red))
Print("Ордер модифицирован успешно.");
 

Ajuda a corrigir erro de compilação: Magic - identificador não declarado

gato:

Bool CheckExists(int Type)
{
bool Resultado = Verdadeiro;
for(int i = 0; i < OrderTotal(); i++)
if(OrderSelect(i, SELECT_BY_POS))
if(OrderType() == Tipo && OrderMagicNumber() == Magic && OrderSymbol() == Symbol())
if(OrderOpenTime() >= Tempo[0])
Resultado = Falso;
for(i = 0; i < OrderHistoryTotal(); i++)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
if(OrderType() == Tipo &&& OrderOpenTime() >= Time[0]
&& OrderMagicNumber() == Magic && OrderSymbol() == Symbol())
Resultado = Falso;
}

retorno(Resultado);
}

 
Abdus_Ali:

Ajuda a corrigir erro de compilação: Magic - identificador não declarado

gato:

As variáveis globais e de usuário devem ser declaradas no início do código, neste caso é uma variável de usuário, escreva-a assim:

input int Magic = 1;

 
ticket2=OrderSend( Symbol(),OP_SELL, lot1, Price2, 20, SL2, TP2, NULL, 2,0, clrGreen);
if (Licitação>=TP1) // 1(1/0)
{

OrderModify(ticket2,?????, SL2, Price2, 0, clrNONE);

Boa noite me diga como modificar o pedido de ingressos2? Qual o preço a colocar em vez de ?????.....? Ou eu tenho que selecionar primeiro esta ordem para modificá-la? Embora na verdade eu já o tenha selecionado por escrito nos parâmetros da OrderModify(ticket2,.....

 
bobrush:
ticket2=OrderSend( Symbol(),OP_SELL, lot1, Price2, 20, SL2, TP2, NULL, 2,0, clrGreen);
if (Licitação>=TP1) // 1(1/0)
{

OrderModify(ticket2,?????, SL2, Price2, 0, clrNONE);

Boa noite me diga como modificar o pedido de ingressos2? Qual o preço a colocar em vez de ?????.....? Ou eu tenho que selecionar primeiro esta ordem para modificá-la? Embora na verdade eu já o tenha selecionado por escrito nos parâmetros da OrderModify(ticket2,.....

Colocar ordemPreço Aberto()
 
Não consigo entender porque a busca e as posições de fechamento param no loop, já virei o loop e aumentei o número de posições, no testador ainda salta (sai) posições... diga-me se você consegue ver onde e o que está errado...
int positions=PositionsTotal();
       for(int x1=-1;x1<positions;x1++) 
          {
           ulong pos_tiket11=PositionGetTicket(x1);
           if(PositionSelectByTicket(pos_tiket11))
             {
              string comment11=PositionGetString(POSITION_COMMENT);
              Print("ПОЗИЦИЯ ТИКЕТ + "+(string)pos_tiket11+" "+comment11+" ТИП "+(string)PositionGetInteger(POSITION_TYPE));
              if(pos_tiket11!=TIKET11) 
                {
                 ENUM_POSITION_TYPE type11=(ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);
                 if(type11==POSITION_TYPE_BUY)
                   {
                    Print("ПОЗИЦИЯ ВЫБРАНА КОМЕНТ = "+comment11);
                    mytrade111.PositionClose(pos_tiket11,15);
                    TIKKET=0;    
                    dolivka_P1=1;
                   } 
                }
             }
          }
 
ara66676:
Não consigo entender porque a busca de posições e as paradas de fechamento no loop, já reverti o loop e aumentei o número de posições, mas no testador ele ainda salta (sai) posições.

Como a pergunta está no fórum mql4, presumo que o código também esteja no mql4. Ou é errado?

Em mql4 não há posições, há apenas ordens.

Razão: