[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 292
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Olá.
Por favor, ajude-me a descobrir o que estou fazendo de errado.
Condicionalmente: Pergunte = 1.3000
PriceAsk = 1,3055 (incl. onde Step=50 e Srpead=3)
bool BuyOrder=1 ,
se (Ask-PriceAsk+Step-Spread<=0 && BuyOrder==0) por que esta condição é verdadeira?Imediatamente antes da declaração se, imprimir os valores de todas as variáveis na condição
Imediatamente antes da declaração de se, registrar os valores de todas as variáveis na condição
Confira, obrigado)
E agora a conclusão
Eu quero entender como funciona. Foi por isso que eu perguntei.
GaryKa:
Imediatamente antes da declaração de se, registrar os valores de todas as variáveis na condição
ed3sss:
Confira, obrigado)
Obrigado, encontrei um erro lógico no programa, agora tudo funciona.
Olá.
Como posso exibir no gráfico a inscrição no instrumento atual Lucro/perda de ordens abertas.
É difícil verificar no Expert Advisor se ele abriu ou não posições (terminal on/off) e pegar o último volume do lote antes de fechar o terminal.
Obrigado.
Acabei de me deparar com uma função aqui:
Eu quero entender como funciona. Foi por isso que eu perguntei.Se eu estiver errado, peço desculpas. MathLog(x) é ln(x) (logaritmo natural). A fórmula de conversão é log_a(b)=ln(b)/ln(a), neste caso obtemos ln(x)/ln(10)=lg(x)(logaritmo decimal). A parte inteira do logaritmo decimal lg(1...9) é 0, lg(10...99) é 1, lg(100...999) é 2, lg(1000...9999) é 3 e assim por diante, ou seja, o logaritmo de um número maior que um é igual ao número de dígitos daquele número(antes do ponto decimal, não contar depois) menos um. Se x é 0 para um, então a parte inteira de lg(0.1....0.9) é igual a -1, lg(0.01...0.09) é igual a -2, lg(0.001...0.009) é igual a -3 e assim por diante, ou seja, se você não olhar para o menos, o logaritmo decimal do número de 0 para um é igual ao número total de zeros antes do primeiro dígito significativo. Eu não sei como MathCeil funciona, mas se ele retornar a parte inteira de um número, esta função deve retornar o número de dígitos no número antes do ponto decimal menos um se o número for maior que 1, e o número de zeros no número antes do primeiro dígito significativo se o número for de 0 para 1. O mínimo desta função está na faixa x igual a 1...9. De 10...99 e 0,1...0,9, a função retorna 1, com 100...999 e 0,01...0,09, retorna 2, e assim por diante. A idéia é...
Boa tarde, há um bug no programa, já estou com os miolos em franja, por favor, aponte o dedo para o que está errado. Só quero saber por que a condição para modifi não funciona. Mesmo que a condição não seja verdadeira, ela ainda é satisfeita e, portanto, ao modificar os erros ou 1, ou 130. Obrigado a todos vocês.
//--------------- modificar pedidos sob TP-------------------
para (i = OrderTotal() - 1; i >= 0; i--) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
se (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) continuar;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) {
se (OrderType() == OP_BUY) {
if (OrderTakeProfit() == 0 || OrderTakeProfit() > OprTPB(TP)){
RefreshRates();
OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OprTPB(TP),0,CLR_NONE);
}
}
se ((OrderType() == OP_SELL)) {
if(OrderTakeProfit() == 0 || OrderTakeProfit() < OprTPS(TP)){
RefreshRates();
OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OprTPS(TP),0,CLR_NONE);
}
}
}
}
retorno(0);
}
duplo LastOpPrBuy(duplo va=0)
{
para (i = OrderTotal() - 1; i>= 0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
se (va == 0) va = OrderOpenPrice();
se (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) continuar;
se (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
if (OrderType() == OP_BUY && OrderOpenPrice()<va) va = OrderOpenPrice()
}
retornar (va);
}
//----------------------------------------------------------------------------------
duplo LastOpPrSell(duplo va=0)
{
para (i = OrderTotal() - 1; i>= 0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
se (va == 0) va = OrderOpenPrice();
se (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) continuar;
se (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
if (OrderType() == OP_SELL && OrderOpenPrice()>va) va = OrderOpenPrice()
}
retornar (va);
}
//----------------------------------------------------------------------------------
duplo OprTPB(int TP)
{
int j=0;
duplo TPB=0;
para (i = OrderTotal() - 1; i>= 0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
se (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) continuar;
se (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
se (OrderType() == OP_BUY)
{
TPB+=Preço Aberto de Encomenda();
j++;
}
}
se (j==0) {
j++;
TPB = Pergunte;
}
TPB=(TPB/j)+TP*Point;
retorno (TPB);
}
//----------------------------------------------------------------------------------
duplo OprTPS(int TP)
{
int j=0;
duplo TPS=0;
para (i = OrderTotal() - 1; i>= 0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
se (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) continuar;
se (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
se (OrderType() == OP_SELL)
{
TPS+=OrderOpenPrice();
j++;
}
}
se (j==0) {
j++;
TPS = Licitação;
}
TPS=(TPS/j)-TP*Point;
retorno (TPS);
}
//----------------------------
Todos nós somos novatos aqui! Não veja que nós não sabemos coisas simples! Onde mais podemos descobrir! Pelo menos queremos saber, não da maneira que algumas pessoas pensam que basta pedir para colocar no código e imediatamente bombear o dinheiro!
))) A partir do humor de um comerciante:
- Onde posso obter um Expert Advisor rentável?
- Procure em algum lugar acima na linha, eles postaram um robô chamado @MOZG@v4.12.