[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 892
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
Oi! Não consigo entender o que há de errado com ???? Não modifica ordem de mercado
slb =NormalizeDouble(Bid - (StopLoss * Ponto),Dígitos); // calcular stop para posições de compra//
tpb =NormalizeDouble(Ask + (TakeProfit* Ponto),Dígitos); // calcular lucro para posições de compra//
sls =NormalizeDouble(Ask + (StopLoss * Ponto),Dígitos) // cálculo de parada para posições de vendas//
tps =NormalizarDuas(Bid - (TakeProfit* Point),Dígitos);
// //
int total=OrdensTotal();
int n=0;
for (int i=total-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS))
{
if(OrderSymbol()==Symbol())
{
n+++;
}}}
if ( total === 1 )
{
for (int k=total-1; k>=0; k--)
{
if(OrderSelect(k, SELECT_BY_TICKET)
Alerta("order is", k);
{
if ((OrderType()==OP_BUY)&&(OrderTakeProfit()==0)&&(O rderStopLoss()==0))
{
OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue);
Alert("error", GetLastError());
}}}}
return(0);}
QUAL É O PROBLEMA, POR FAVOR AJUDE ...........?????
A pergunta de qualquer novato, para não desorganizar o fórum. Não deixe os profissionais passarem por você. Não é em lugar nenhum sem você.
A pergunta de qualquer novato, para não desorganizar o fórum. Não deixe os profissionais passar por você. Em nenhum lugar sem você.
Desculpe, eu não entendo qual é o problema. Eu acho que nunca cumpro a condição de while, porque se eu colocar Comentário dentro do loop, ele não é refletido. Também acima do loop eu tenho a variável B igual ao valor normal esperado, como 0,0011, mas se eu multiplicá-lo por Ponto, ele sai 0!!!!
int start()
{
double A,B,C ;A=Close[1];B=Close[Bars];
C=A-B ;Comentário("Valor da diferençai ", B*Point);
while (B*Point >Swing)
{ Comentário("Valor da diferença", B);
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-stoploss*Point,Ask+TakeProfit*Point,"macd sample",16384,0,Green);}
while (0-B*Point<Point)
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+stoploss*Point,Bid-TakeProfit*Point,"macd sample",16384,0,Red);
Alerta("Valor ",B);
Comentário("Diferença de valori ",B);
//
//
return(0);
}
Não tenho certeza, mas a maneira correta seria
int start()
{
duplo A,B,C ;A=Fechar[1];B=Fechar[barras]; O que significa Fechar[barras]; Fechar[seqüência de números de barras para trás, sem corrente].
velas anteriores fechadas[1]. velas anteriores fechadas[2].
B=(A-B)*Ponto ; Comentário("Valor da diferença", B); B será igual ao fechamento da vela anterior menos o fechamento da vela que você colocou em B= fechamento [....
while (B > B) e muito provavelmente não enquanto a condição
{ Comment("Value Difference ", B);
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-stoploss*Point,Ask+TakeProfit*Point, "macd sample",16384,0,Green);
}
while (0-B<Round) e muito provavelmente não enquanto uma condição de if
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+stoploss*Point,Bid-TakeProfit*Point, "macd sample",16384,0,Red);
}
Alerta("Valor ",B);
Comentário("Diferença de valori ",B);
//
//
return(0);
}
Pode estar errado.....
Há muitos erros em seu código ...... o que você quer fazer com que resultado???? Não deve haver cartas russas...
Você não pode ter C na planilha porque C tem um número na memória como 1,23456
0-B seria um número negativo....
e é melhor calcular os lucros e perdas da seguinte forma
slb =NormalizeDouble(Bid - (StopLoss * Ponto),Dígitos); // calcular stop para posições de compra//
tpb =NormalizeDouble(Ask + (TakeProfit* Ponto),Dígitos); // calcular lucro para posições de compra//
sls =NormalizeDouble(Ask + (StopLoss * Ponto),Dígitos) // calcular parada para posições de vendas//
tps =NormalizarDuplo(Bid - (TakeProfit* Point),Dígitos); // calcular lucro para posições de vendas//
Desculpe, eu não entendo qual é o problema. Eu acho que nunca cumpro a condição de while, porque se eu colocar Comentário dentro do loop, ele não é refletido. Também acima do loop eu tenho a variável B igual ao valor normal esperado, como 0,0011, mas se eu multiplicá-lo por Ponto, ele sai 0!!!!
int start()
{
double A,B,C ;A=Close[1];B=Close[Bars];
C=A-B ;Comentário("Valor da diferençai ", B*Point);
while (B*Point >Swing)
{ Comentário("Valor da diferença", B);
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-stoploss*Point,Ask+TakeProfit*Point,"macd sample",16384,0,Green);}
while (0-B*Point<Point)
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+stoploss*Point,Bid-TakeProfit*Point,"macd sample",16384,0,Red);
Alerta("Valor ",B);
Comentário("Diferença de valori ",B);
//----
//----
return(0);
}
E você está cortejando a necessidade de multiplicar a diferença entre A e B por ponto?
Os valores de A e B são números reais. Ao multiplicar sua diferença por ponto, você aumenta ainda mais o número de casas decimais. Se você precisar obter um número inteiro para comparar com um número inteiro "Espalhado", você deve dividir por ponto.