[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 964
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
Por que a velocidade do testador cai perto do final do terceiro ano?
existe tal problema - eu também tive esse problema, se o Expert Advisor fizer muitas negociações por ano - talvez muitos dados sejam armazenados para exibir o resultado final ou talvez os buffers indicadores comam memória
como uma serra completa - não sei, paciência - para o quadro geral, o teste por 10 anos, e é melhor otimizar um ano de cada vez e depois fazer uma seleção dos parâmetros ideais
Quero analisar diferentes cruzamentos seguidos de pedidos em outro par:
int magic = 428;// número trágico do Expert Advisor
volume duplo externo = 0,1;//volume do pedido sendo feito
escorregamento interno externo = 3;//slippage
na OPB;// a marca do pedido de compra
na OPS;// a marcação da ordem de venda
int Lucro=1;// nível de lucro do pedido aberto
string comB = "Entrada na tendência de compra; // comentário sobre o pedido
string comS = "Entrada por tendência a Vender";// comentário do pedido
dupla StochasticCAD;//posição da linha Stochastic principal na barra atual no USDCAD
dupla StochasticAUD;//posição da linha Stochastic principal na barra atual para AUDUSD
duplo SARCAD;//posição do indicador atual no USDCAD
dupla SARCAD;//posição da barra indicadora de volta no USDCAD
duplo SARAUD;//c posição atual do indicador no AUDUSD
duplo SARСAUD;//posição da barra indicadora de volta no AUDUSD
int start()
{
//______________________________определение значений переменных_______________________
StochasticCAD = iStochastic("USDCAD",30,5,3,3,3,1,1,1,0,0);
StochasticAUD = iStochastic("AUDUSD",30,5,3,3,3,1,1,1,1,0);
SARCAD=iSAR("USDCAD",30,0.02,0.2,0);
SARСCAD=iSAR("USDCAD",30,0.02,0.2,1);
SARAUD=iSAR("AUDUSD",30,0.02,0.2,0);
SARСAUD=iSAR("AUDUSD",30,0.02,0.2,1);
double bidCAD =MarketInfo("USDCAD",MODE_BID);
askCAD duplo =MarketInfo("USDCAD",MODE_ASK);
double bidAUD =MarketInfo("AUDUSD",MODE_BID);
askAUD =MarketInfo("AUDUSD",MODE_ASK);
//______________________________поиск и закрытие ордеров_______________________________________
int i;
for(i=0; i<=OrdensTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==falso)
pausa;// se o número de pedido i não existir, pare a busca
se (OrderSymbol() != "GBPUSD" || OrderMagicNumber() != magic) // se a ordem não for do par onde nossa EA está localizada
continuar; // pular a ordem e olhar para a próxima ordem após a mesma
///_______close Comprar_______
if (OrderType() == OP_BUY && OrderProfit()>=Profit)
// se o pedido for Comprar
{
OPB=1;
if(StochasticCAD==0 || StochasticAUD===100 || SARCAD<bidCAD || SARAUD>askAUD)//e o mercado está prestes a reverter
{
OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Wheat); // fechar se estiver em lucro
OPB=0;
}
}
senão
{
//_______close Sell_______
if(OrderType() == OP_SELL && OrderProfit()>=Profit)// se o pedido for VENDIDO
{OPS=1;
if(StochasticCAD===100 || StochasticAUD==0 || SARCAD>askCAD || SARAUD<bidAUD)//e o mercado está próximo da reversão
{
OrderClose(OrderTicket(),OrderLots(),Ask,slippage,PaleTurquoise); // fechar se estiver em lucro
OPS=0;
}
}
}
}
//______________выставление ордеров______________________________________________________________________
se (SARCAD>askCAD && SARCAD<bidCAD && SARAUD<bidAUD && SARCAUD>askAUD && OPB<1)//define conditions
{ ///_______Buy_______
if(!IsTradeAllowed())
{
Alerta("o fio comercial está ocupado, tente novamente comprar...");
retorno(-1);
}
OPB =OrderSend("GBPUSD",OP_BUY,volume,Ask,slippage,0,0,0,comB,magic,0,Red); //set an order
if(OPB == -1)
{
Alerta("GBPUSD", "Erro: comprar", GetLastError()));
retorno(-1);
}
if(OPB > 1)
Alerta("GBPUSD", "Temos um pedido de compra!)
}
senão
{//_______Sell_______
if(SARCAD>askCAD && SARCAD<bidCAD && SARCADAUD<bidAUD && SARAUD>askAUD && OPS<1)//define conditions
{
if(!IsTradeAllowed())
{
Alerta("o fio condutor está ocupado, tente novamente vender...");
retorno(-1);
}
OPS=OrderSend("GBPUSD",OP_SELL,volume,Bid,slippage,0,0,comS,magic,0,Blue); //set an order
if(OPS == -1)
{
Alerta("GBPUSD", "Error: Sell", GetLastError());
retorno(-1);
}
if(OPS > 1)
Alerta ("GBPUSD", "Coloque ordem de venda!)
}
}
retorno(0);//saída
}
Nada sai quando eu o teste. Nenhum resultado.
No registro, há um conjunto de erros:
Você pode me dizer o que está errado?
Quero analisar diferentes cruzamentos e depois fazer pedidos em outro par:
int magic = 428;// número trágico do Expert Advisor
duplo volume externo = 0.1;//volume de pedidos feitos
deslize int externo = 3;//slippage
int OPB;//tag de pedido feito Comprar pedido
int OPS;//tag de pedido feito Vender pedido
int Lucro=1;//pro nível de lucro de pedidos abertos
string comB = "Entrada por tendência para Comprar"; //pedido de pedido
string comS = "Entrada por tendência para Vender"; //pedido de pedido
duplo StochasticCAD;//posição da linha principal Stochastic na barra atual em USDCAD
duplo StochasticAUD;//posição da linha principal Stochastic na barra atual em AUDUSD
duplo SARCAD;//posição atual da barra indicadora em USDCAD
duplo SARCAD;//posição da barra indicadora de volta em USDCAD
duplo SARAUD;//posição atual da barra indicadora em AUDUSD
duplo SARAUD;//posição da barra indicadora de volta em AUDUSD
int start()
{
//_______________________ determinação dos valores variáveis_______________________
StochasticCAD = iStochastic("USDCAD",30,5,3,3,1,1,1,0,0);
StochasticAUD = iStochastic("AUDUSD",30,5,3,3,1,1,1,1,0);
SARCAD=iSAR("USDCAD",30,002,0.2,0);
SARCAD=iSAR("USDCAD",30,0.02,0.2,1);
SARAUD=iSAR("AUDUSD",30,0.02,0.2,0);
SARAUD=iSAR("AUDUSD",30,0.02,0.2,1);
double bidCAD =MarketInfo("USDCAD",MODE_BID);
double askCAD =MarketInfo("USDCAD",MODE_ASK);
double bidAUD =MarketInfo("AUDUSD",MODE_BID);
double askAUD =MarketInfo("AUDUSD",MODE_ASK);
// search and close orders
int i;
for(i=0; i<=OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==falso)
break;// se o número do pedido i não existir, pare a busca
if (OrderSymbol() !="GBPUSD" || OrderMagicNumber() != mágico) // se o pedido não for do par onde nosso Expert Advisor está localizado
continuar; // pular e olhar o pedido seguinte
// close Buy
if (OrderType() == OP_BUY && OrderProfit()>=Profit)
// se o pedido for COMPRAR
{
OPB=1;
if(StochasticCAD==0 || StochasticAUD===100 || SARCAD<bidCAD || SARAUD>askAUD)// e o mercado estiver próximo da reversão
{
OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Wheat); // feche se for COMPRAR
OPB=0;
}
}
else
{
//
close Sell
if(OrderType() == OP_SELL && OrderProfit()>=Profit)// if the order is Sell {OPS=1;
if(StochasticCAD===100 ||| StochasticAUD==0 || SARCAD>askCAD || SARAUD<bidAUD)// e o mercado está próximo de uma inversão
{
OrderClose(OrderTicket(),OrderLots(),Ask,slippage,PaleTurquoise); // feche-o se em lucro
OPS=0;
}
}
}
}
//
encomendar _______ if (SARCAD>askCAD && SARCAD<bidCAD && SARAUD<bidAUD && SARAUD>askAUD && OPB<1)// definir condições
{ //______________________________________________________________________Buy
if(!IsTradeAllowed())
{
Alerta("o fio comercial está ocupado, tente novamente comprar...");
return(-1);
}
OPB =OrderSend("GBPUSD",OP_BUY,volume,Ask,slippage,0,0,0,comB,magic,0,Red); //set order
if(OPB == -1)
{
Alert("GBPUSD", "error: buy", GetLastError());
return(-1);
}
if(OPB > 1)
Alerta ("GBPUSD", "Put Buy Order!");
}
else
{// Sell
if(SARCAD>askCAD && SARCAD<bidCAD && SARCAD<bidAUD && SARAUD>askAUD && OPS<1)//define conditions
{ if(!IsTradeAllowed())
{
Alerta("o fio comercial está ocupado, tente novamente vender...");
return(-1);
}
OPS=OrderSend("GBPUSD",OP_SELL,volume,Bid,slippage,0,0,comS,magic,0,Blue); //set order
if(OPS == -1)
{
Alert("GBPUSD", "error: sell", GetLastError());
return(-1);
}
if(OPS > 1)
Alerta ("GBPUSD", "Put Sell order!");
}
}
return(0);//exit
}
Nada sai quando testado. Não produz resultados.
Há um conjunto de erros no registro:
Você pode me dizer o que está errado?
Antes de tudo, aprenda como inserir o código na janela pressionando simultaneamente "Counterclick + Alt + M", para que em sua halimatry as pessoas naveguem e dêem recomendações.
Tente também clicar duas vezes na mensagem de erro correspondente no registro - talvez isso leve a algumas reflexões...
Primeiro, aprenda como inserir código em uma janela pressionando as teclas Conrle + Alt + M ao mesmo tempo, para que você possa guiar as pessoas através de seus disparates e fazer recomendações.
Além disso, tente clicar duas vezes na mensagem de erro correspondente no diário de bordo - talvez isso lhe dê algumas idéias...
Os erros estão no registro do testador, não no do compilador. (você pode realmente vê-lo na foto se olhar primeiro para ele e comentá-lo depois...). Um duplo clique não faz nada lá...
Um teste em todos os tiques? Problemas com a história
Um teste em todos os tiques? Problemas com a história
Isto é, você precisa recarregar o histórico para todos os pares envolvidos na análise?
Ou seja, você precisa recarregar o histórico para todos os pares envolvidos na análise?
Talvez. Se, é claro, a corretora o apoiar.
Mas não devemos esquecer que você pode abrir posições no testador para o símbolo atual, e há algumas restrições para outros símbolos
Isso é possível. Se, é claro, a corretora a apoiar.
Apenas tenha em mente que no testador você pode abrir posições no instrumento atual, e há algumas restrições sobre outros instrumentos
O que é um CD? E quais são as restrições a outros instrumentos?
O que é uma empresa de corretagem? E quais são as limitações de outros símbolos?
DC - Mesa de operações
No testador para outros instrumentos você só pode obter o preço de abertura na barra zero, os carrapatos para outros instrumentos não são modelados, o ambiente do mercado é quase inacessível.
O comércio de outros instrumentos não é aberto.
Se você precisar realizar corretamente a análise de múltiplas moedas, é melhor usar o MT5. Há um testador de múltiplas moedas.