[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 1095
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
Eu não escrevi imediatamente um EA sem indicadores, não há indicadores, apenas pedidos para comprar e vender e assim por diante... e então os períodos que mudaram no testador e o resultado final ainda não é nada que eu não entenda.
Você não pode dizer nada sem o próprio Expert Advisor. Eu estou apenas adivinhando.
O que devo fazer com Ilan6 para que ele comece a negociar? Quanto dinheiro começa a funcionar e funciona com um centavo?
Eu não escrevi imediatamente um EA sem indicadores, não há indicadores, apenas pedidos para comprar e vender e assim por diante... e então os períodos que mudaram no testador e o resultado final ainda não é nada que eu não entenda.
Sim, devemos olhar para o próprio código. Não tem algum tipo de estratégia, com base em quais cálculos abre e fecha os pedidos?
Você pode me dizer onde está o erro? Se houver uma ordem de mercado para vender nosso instrumento financeiro, então feche-o e se não houver ordem para comprar, então abra uma ordem para comprar. Aqui tudo é normal com o fechamento, mas ele não os abre uma única vez, mas a cada tic-tac.
//--------------------------------------------------------------------------------------------
extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
int sells=0;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
sells++;
}
}
if (sells==0)
{
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
//--------------------------------------------------------------------------------------------
Você pode me dizer onde está o erro? Se houver uma ordem de mercado para vender nosso instrumento financeiro, então feche-o e se não houver ordem para comprar, então abra uma ordem para comprar. Aqui tudo é normal com o fechamento, mas ele os abre não uma vez, mas a cada tique.
//--------------------------------------------------------------------------------------------
extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
int sells=0;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
sells++;
}
}
if (sells==0)
{
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
//--------------------------------------------------------------------------------------------
Ou é melhor fazer isso? Se não houver ordens de venda, não abriremos uma ordem de compra.
extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
}
//--------------------------------------------------------------------------------------------
Regra para a execução do for statement
Diga-me: um tick chegou, a condição de operador é verdadeira, o controle é passado adiante - tudo isso acontecerá durante um tick, ou seja, todos esses operadores serão executados durante 1 tick ou não.
extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
}
//--------------------------------------------------------------------------------------------
Ou exatamente quais operadores serão executados durante este tick? Todos os anteriores ou quais serão executados durante o próximo tick? Explicar...
Regra para a execução do for statement
Diga-me: um tick chegou, a condição de operador é verdadeira, o controle é passado adiante - tudo isso acontecerá durante um tick, ou seja, todos esses operadores serão executados durante 1 tick ou não.
Ou exatamente quais operadores serão executados durante este tick? Todos os anteriores ou quais serão executados durante o próximo tick? Explicar...
A função start() é executada quando chega o primeiro tick. Se outros carrapatos chegarem enquanto a função estiver em funcionamento, eles serão pulados.
A função de partida será executada completamente de acordo com sua lógica
Regra de para a execução de declarações
Diga-me: um tick chegou, a condição de operador é verdadeira, o controle é passado adiante - tudo isso acontecerá durante um tick, ou seja, todos esses operadores serão executados durante 1 tick ou não.
extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
}
//--------------------------------------------------------------------------------------------
Ou exatamente quais operadores serão executados durante este tick? Todos os anteriores ou quais serão executados durante o próximo tick? Explicar...
Já descobrimos. Todos os operadores serão executados se a condição estiver esgotada.