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 192

 
Desead:

Claro que obrigado, mas se você é preguiçoso demais para ler a pergunta, então qual é o objetivo de responder? Posso mudar o valor, espessura, cor e estilo dos níveis no indicador nas duas funções que tenho. Eu não tenho acesso à descrição. Estou perguntando novamente, alguém sabe a resposta? Eu não sei se já vi isso antes.

Anexei uma foto para mostrar o que eu preciso.


Não estava e provavelmente nunca estará nesta forma.
 
yan720:

Então você acha que esta função não vai funcionar? Eu não o testei, mas me parece fazer parte de um código de trabalho (este Ilan foi obviamente reconstruído a partir de algo depurado na melhor das hipóteses). Ou ainda é um código mesquinho?




Use-o:

void Modify_orders (double AverPrice, double SLoss, double TProfit){
   double Stoplevel =  MarketInfo(Symbol(),MODE_STOPLEVEL);
   datetime GTCount_1 = 0;
   datetime GTCount_2 = 0;
   int ppos = 0;
   if ((AverPrice != 0) == TRUE){
      for (ppos = OrdersTotal() - 1; ppos >= 0; ppos--){
          if (OrderSelect(ppos, SELECT_BY_POS, MODE_TRADES) == TRUE){
            if ((OrderSymbol() != Symbol() || OrderMagicNumber() != Magic || OrderType() >= 2) == TRUE) continue;
            if ((OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) == TRUE){ 
            if ((OrderType() == 0) == TRUE){ 
               if(Bid - SLoss < Stoplevel * Point){ SLoss = ND(Bid - Stoplevel * Point);}
               if(TProfit - Ask < Stoplevel * Point){ TProfit = ND(Ask + Stoplevel * Point);}
            }else if ((OrderType() == 1) == TRUE){ 
               if(SLoss - Ask < Stoplevel * Point){ SLoss = ND(Ask + Stoplevel * Point);}
               if(Bid - TProfit < Stoplevel * Point){ TProfit = ND(Bid - Stoplevel * Point);}
               }
                  GTCount_1 = GetTickCount();           
                  OrderModify(OrderTicket(), AverPrice, SLoss, TProfit, 0, Yellow);  
                  GTCount_2 = GetTickCount() - GTCount_1;
                   // Print("Modify time(ms):   ", GTCount_2, "   /  Ticket: ", OrderTicket()," /  Time: ", TimeToStr (TimeCurrent(), TIME_SECONDS), " /  Average price: ",AverPrice, " /  SL: ",SLoss, " /  TP: ",TProfit); 
                Sleep(33);                
                }
            }
        } 
    }
}
double ND(double value){
   return(NormalizeDouble(value, Digits));
}
 
digits:


Você está usando:

Sua função não lida com erros do servidor comercial. A função OrderModify() deve ser projetada como uma função separada de pleno direito com manipulação de erros e resposta adequada a erros.

E novamente, para quê?

if ((OrderSymbol() != Symbol() || OrderMagicNumber() != Magic || OrderType() >= 2) == TRUE) continue;
if ((OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) == TRUE){

Para que serve o óleo?

 
digits:


Utilização:


Não, nós não usamos este tipo de g.
 

Seria estranho comprar pão a 20, voltar para casa e mudar o preço de compra para 5 rublos, e depois ver na carteira a chegada de 15 rublos de diferença... Fantástico... ;)

Você poderia revender o pão por 35 rublos (15 rublos de lucro), mas o corretor não lhe daria uma comissão :=)

 

Boa tarde. Começou a estudar MQL há alguns dias, relê o site, mas não consegue encontrar a resposta. (Não julgue um novato)

Se eu já tivesse tentado isso, teria visto que muitos pedidos agora estão fechados. Aqui está um código simples que deve fechar uma ordem ao atravessar um MA(5) e MA(21)

Aqui está o código para fechar o pedido cruzando MA(5) e MA(21). Obrigado.

double ma50;

double ma51;

double ma210;

double ma211;

double ma550;

double Stoh;

int start()

{

//Open Orders--------------------------------------------------------------------------------

{

ma50=iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,0);

ma51=iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,1);

ma210=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,0);

ma211=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,1);

ma550=iMA(NULL,0,55,0,MODE_EMA,PRICE_CLOSE,0);

Stoh=iStochastic(Symbol(),5,5,3,3,MODE_SMA,1,MODE_MAIN,0);

if(OrdersTotal()==0 && ma50 > ma51 && ma50 > ma210 && ma51 < ma211 && ma210 > ma550 )

OrderSend(Symbol(),OP_BUY,Lots,Ask,0,0,0,"BUY",123,0,Red);

}

//Close Orders--------------------------------------------------------------------------------

{

if(OrdersTotal()==1 && ma50 < ma210 )

if(OrderSelect(10,SELECT_BY_POS)==true)

OrderClose(OrderMagicNumber(),Lots,Bid,1,CLR_NONE);

}

}


 
AlexCY:

Boa tarde. Começou a estudar MQL há alguns dias, relê o site, mas não consegue encontrar a resposta. (Não julgue um novato)

Se eu já tivesse tentado isso, teria visto que muitos pedidos agora estão fechados. Aqui está um código simples que deve fechar uma ordem ao atravessar um MA(5) e MA(21)

Obrigado.

Se o código está correto ou não, depende diretamente do que você, e ninguém mais, quer dizer com este termo.

Aqui você está tentando abrir uma ordem com uma tentativa similar, mas um pouco mais incorreta, de fechá-la.

A única coisa em que posso aconselhá-lo é ir mais longe e estudar o idioma, não há pressa, pois uma base muito pequena é a principal razão para mal-entendidos.

Os parâmetros em OrderClose não são corretos. + Se você tiver um pedido ,OrderSelect é tomado com o número 0. + você tem certeza de que após o próximo tick ou dois "ma50 < ma210" não será executado comendo seu spread?

e o código é inserido através do botão SRC na barra de ferramentas.

 

Boa tarde.

No código do indicador precisamos pegar o momento em que uma nova tendência aparece no gráfico, e obter o nome desta tendência.

Além de rastrear a lista de todos os objetos em cada tick, fixando o momento da mudança no número de objetos e depois percorrer toda a lista na esperança de encontrar o objeto que acabou de ser aplicado... Existe alguma outra maneira, menos cara? Em caso afirmativo, como isso pode ser implementado mais facilmente?

 
satorifx:

Boa tarde.

No código do indicador precisamos pegar o momento em que uma nova tendência aparece no gráfico, e obter o nome desta tendência.

Além de rastrear a lista de todos os objetos em cada tick, fixando o momento da mudança no número de objetos e depois percorrer toda a lista na esperança de encontrar o objeto que acabou de ser aplicado... Existe alguma outra maneira, menos cara? Em caso afirmativo, como isso pode ser implementado mais facilmente?


e na parte onde o objeto é aplicado diretamente, adicionar um link ao bloco com o processamento do acima?
 
ALXIMIKS:

e na parte onde o objeto é aplicado diretamente, adicionar um link ao bloco com o processamento do acima?
Então, de que parte estamos falando? Tenho duas maneiras de criar tendências: com meu próprio roteiro (posso acrescentar o que quiser lá) e com a tendência padrão criada por meio do MT4 (não posso acrescentar nada aqui). A tarefa é rastrear a tendência por qualquer método.