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

 
Artyom Trishkin:

Você pode. Mas tenha cuidado. Para uma posição aberta, ele retorna o preço de fechamento. Correspondentemente: para Compra - Oferta, para Venda - Pergunte

o. Eu não sabia que podia ser usado assim.

Pensei que OrderClosePrice() só pode ser tirado de uma posição fechada.

a ajuda não diz nada sobre isso)
 
igrok333:
o. Eu não sabia que poderia ser usado assim.

Pensei que o OrderClosePrice() só poderia ser retirado de uma transação fechada.

não há nada sobre isso na ajuda)

Recurso indocumentado. Mas existem algumas convenções. Não me lembro quais, neste momento. Você precisa perguntar a Alexey @Alexey Viktorov - ele escreveu recentemente sobre eles.

 
Artyom Trishkin:

Uma possibilidade indocumentada. Mas há ali algumas convenções. Não consigo lembrar quais no momento. Pergunte a Alexey @Alexey Viktorov - ele escreveu recentemente sobre eles.

E quanto a este código?

A variável não é iniciada por zero imediatamente?

 void zakritj_vse_sdelki()
 {
 bool pr;
 for (int i=OrdersTotal()-1; i>=0; i--)       
   {                                        
   if(OrderSelect(i,SELECT_BY_POS)==true)
      {   
         if (OrderType()==OP_BUY)    pr=OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(),MODE_BID), 30 );                              
         if (OrderType()==OP_SELL)   pr=OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(),MODE_ASK), 30 );
         
         if (pr==false) Print("закрытие ордера ", OrderSymbol() ," завершилось с ошибкой #",GetLastError());
         if (pr==true) Print("ордер ", OrderSymbol() , " ЗАКРЫТ");
       }
    }
  } 
 
igrok333:
E quanto a este código?

A variável não é imediatamente inicializada com zero?

Não confie nas inadimplências. É melhor se preocupar com seu valor ao declarar uma variável local: bool pr=false;

Em geral, é claro, é desnecessário colocá-lo lá. É suficiente para verificar o que a função retorna:

if(!OrderClose()) Imprimir("Bummer");

 

Como posso saber o preço do ventilador Fibonacci de uma vela anterior? MQL5
ObjectGetValueByTime() não funciona, ele retorna 0, depois vela alta, depois vela baixa

 

@ArtyomTrishkin

Boa tarde. Por favor, ajude-me. Diga-me o que há de errado com meu indicador. Não entendo por que ela não desenha nada.

https://www.mql5.com/ru/forum/224805#comment_6372281

Arquivos anexados:
indicator.ZIP  21 kb
probability.zip  50 kb
 
Artyom Trishkin:

Esta é uma característica indocumentada. Mas existem algumas convenções. Não me lembro quais, neste momento. Preciso perguntar a Alexey @Alexey Viktorov - ele escreveu recentemente sobre eles.

Foi há muito tempo... mas ainda assim conseguiu encontrá-lo. Renat explica em termos claros porque é indesejável. Mas, na minha opinião, não é tão ruim assim. O problema pode ocorrer quando recebemos um reembolso no fechamento do pedido. Se estabelecermos o preço Ask ou Bid no pedido, podemos sempre atualizar o preço e tentar novamente. E no caso de especificar o preço fechado OrderClosePrice(), teremos que selecionar o pedido repetidamente a fim de atualizar os dados do pedido.

Conclusão: Se você não pode, mas realmente precisa, você pode.

Применение функция OrderClosePrice() к открытым ордерам
Применение функция OrderClosePrice() к открытым ордерам
  • 2006.09.11
  • www.mql5.com
Вопрос к разработчикам: Корректно ли использование данной конструкции: OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0,CLR_NONE) Проверка...
 

Por favor, avise! Eu li dados de um arquivo CSV, incluindo uma coluna com um preço com um separador de lugar ". (1.22426) via FileReadString(handle), depois via função StrToDouble, tudo está OK. Mas há uma coluna com o preço também, mas já está delimitada por "," (1.22426) e StrToDouble não a lê. O que fazer, se não houver possibilidade de mudar a vírgula para ponto no próprio CSV ?

 
WinProject:

Por favor, avise! Eu li dados de um arquivo CSV, incluindo uma coluna com um preço com um separador de lugar ". (1.22426) via FileReadString(handle), depois via função StrToDouble, tudo está OK. Mas há uma coluna com preço que já está separada por "," (1.22426) e StrToDouble não a lê. O que posso fazer se não puder mudar a vírgula para um ponto em CSV?


FileReadString


e então você pode mudar de uma vírgula para um ponto:


StringReplace

Substitui todo o substrato encontrado em cordel por uma dada seqüência de caracteres.

intStringReplace(
string&str,//padrão no qual a substituição será realizada.
const stringfind,// substrato procurado
const string replacement// substring a ser substituído
);

 
Vladislav Andruschenko:

FileReadString


e então você pode mudar de uma vírgula para uma parada completa:


StringReplace

Substitui todo o substrato encontrado na corda por uma determinada seqüência de caracteres.

intStringReplace(
string&str,// cadeia a ser substituída
const stringfind,// o substrato procurado
const string replacement// substring a ser substituído
);


Obrigado!) variável Cena=FileReadString(handle); inseri na função Separator=StringReplace(Sepa,",",","); escreve o erro "conversão implícita de número para string" -

não quer ler valor com separador "," (1.22426) como uma corda, e StringReplace não funciona. Ou estou fazendo isso errado?

Razão: