[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
volshebnik: 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 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; } } } }
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_______________________
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; } } } }
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á...
int magic = 428;//магический номер экспертаexterndouble volume = 0.1;//объем выставляемого ордераexternint slippage = 3;//проскальзываниеint OPB;//метка выставляемого ордера на покупкуint OPS;//метка выставляемого ордера на продажуint Profit=1;//уровень профита открытых ордеровstring comB = "Вход по тренду на Buy";//комментарий ордераstring comS = "Вход по тренду на Sell";//комментарий ордераdouble StochasticCAD;//положение основной линии Стохастики на текущем баре по USDCADdouble StochasticAUD;//положение основной линии Стохастики на текущем баре по AUDUSDdouble SARCAD;//текущее положение индикатора по USDCADdouble SARСCAD;//положение индикатора бар назад по USDCADdouble SARAUD;//текущее положение индикатора по AUDUSDdouble SARСAUD;//положение индикатора бар назад по AUDUSDdouble bidCAD;
double askCAD;
double bidAUD;
double askAUD;
int start()
{
//______________________________определение значений переменных_______________________
StochasticCAD = iStochastic("USDCAD",30,5,3,3,1,1,0,0);
StochasticAUD = iStochastic("AUDUSD",30,5,3,3,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);
bidCAD =MarketInfo("USDCAD",MODE_BID);
askCAD =MarketInfo("USDCAD",MODE_ASK);
bidAUD =MarketInfo("AUDUSD",MODE_BID);
askAUD =MarketInfo("AUDUSD",MODE_ASK);
//______________________________поиск и закрытие ордеров_______________________________________ int i;
for(i=0; i<=OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)
break;// если ордер номер i не существует, прекращаем переборif (OrderSymbol() != "GBPUSD" || OrderMagicNumber() != magic) // если ордер не с этой пары, на которой стоит наш экспертcontinue; // пропускаем его и смотрим на следующий за ним ордер//_______закрытие Buy_______ if (OrderType() == OP_BUY && OrderProfit()>=Profit)
// если ордер бай
{
OPB=1;
if(StochasticCAD==0 || StochasticAUD==100 || SARCAD<bidCAD || SARAUD>askAUD)//и рынок близок к развороту
{
OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Wheat); // закроем его, если он в профите
OPB=0;
}
}
else
{
//_______закрытие Sell_______ if(OrderType() == OP_SELL && OrderProfit()>=Profit)// если ордер селл
{OPS=1;
if(StochasticCAD==100 || StochasticAUD==0 || SARCAD>askCAD || SARAUD<bidAUD)//и рынок близок к развороту
{
OrderClose(OrderTicket(),OrderLots(),Ask,slippage,PaleTurquoise); // закроем его, если он в профите
OPS=0;
}
}
}
}
//______________выставление ордеров______________________________________________________________________if (SARCAD>askCAD && SARСCAD<bidCAD && SARAUD<bidAUD && SARСAUD>askAUD && OPB<1)//определим условия
{ //_______Buy_______ if(!IsTradeAllowed())
{
Alert("занят торговый поток, повторим попытку бай...");
return(-1);
}
OPB =OrderSend("GBPUSD",OP_BUY,volume,Ask,slippage,0,0,comB,magic,0,Red); //выставим ордерif(OPB == -1)
{
Alert("GBPUSD"," ошибка: бай", GetLastError());
return(-1);
}
if(OPB > 1)
Alert ("GBPUSD","Выставили ордер на покупку!");
}
else
{//_______Sell_______if (SARСCAD>askCAD && SARCAD<bidCAD && SARСAUD<bidAUD && SARAUD>askAUD && OPS<1)//определим условия
{
if(!IsTradeAllowed())
{
Alert("занят торговый поток, повторим попытку селл...");
return(-1);
}
OPS=OrderSend("GBPUSD",OP_SELL,volume,Bid,slippage,0,0,comS,magic,0,Blue); //выставим ордерif(OPS == -1)
{
Alert("GBPUSD"," ошибка: селл", GetLastError());
return(-1);
}
if(OPS > 1)
Alert ("GBPUSD","Выставили ордер на продажу!");
}
}
return(0);//выход
}
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.
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.