A própria lógica de busca é pesada lá, e como torná-la mais fácil - eu ainda não sei.
Vitaly, eu originalmente tentei explicar que não são os cálculos que atrasam o testador, mas os objetos gráficos nos testes visuais. Faça-o da maneira que ele aconselha
Alexey Kozitsyn:
Você pode enrolá-lo no indicador sem desenhar). E é melhor fazer uma escolha. Lúpulo - desenho, lúpulo - sem desenho:)
e ver a diferença na velocidade.
Não é nem o desenho que está atrasado, é apenas a presença de gráficos na carta.
Não é nem mesmo o desenho que está atrasando as coisas, é apenas a presença de gráficos no gráfico.
Nenhum argumento... É por isso que eu disse que quando não preciso, eu o desligo (DRAW_NONE) e é isso... e você pode acessar os valores da mesma forma.
Vitaly, eu originalmente tentei explicar a você que não são os cálculos que atrasam o testador, mas os objetos gráficos nos testes visuais. Faça o que ele diz
e ver a diferença na velocidade.
Não é nem mesmo o desenho que está atrasado, é apenas a presença de gráficos na carta.
Eu testei a função sem nenhum gráfico, o gráfico foi feito apenas para ver a exatidão dos cálculos enquanto escrevia o código - era puramente técnico e foi removido do código por muito tempo. A tabela está em branco durante os testes.
Assim, quando sem função, o teste "voa", mas liga a função - ele vai lentamente.
P.S. Eu não preciso de objetos gráficos em princípio. Esqueça os gráficos - eu não os tenho e não vou tê-los!
Eu testei a função sem nenhum gráfico, o gráfico foi feito apenas para ver se os cálculos estavam corretos enquanto escrevia o código - era puramente técnico e foi removido do código há muito tempo. A tabela está em branco durante os testes.
Então, quando eu não tenho função, então teste "moscas", mas conecte a função - ela vai devagar.
P.S. Eu não preciso de objetos gráficos em princípio. Esqueça os gráficos - eu não os tenho e não vou tê-los!
datetime some_time=D'2017.03.03 4:00'; int shift=Bars("EURUSD",PERIOD_CURRENT,some_time,TimeCurrent()); Print("index of the bar for the time ",TimeToStr(some_time)," is ",shift);
datetime some_time=D'2004.03.21 12:00'; int shift=iBarShift("EURUSD",PERIOD_CURRENT,some_time); Print("index of the bar for the time ",TimeToStr(some_time)," is ",shift);
datetime some_time=D'2017.03.03 4:00'; int shift=Bars("EURUSD",PERIOD_CURRENT,some_time,TimeCurrent()); Print("index of the bar for the time ",TimeToStr(some_time)," is ",shift);
datetime some_time=D'2004.03.21 12:00'; int shift=iBarShift("EURUSD",PERIOD_CURRENT,some_time); Print("index of the bar for the time ",TimeToStr(some_time)," is ",shift);
Entendo que a data está definida para um dia específico, mas como posso definir o índice de barras para ser 15 ontem e o índice de barras para ser 4 hoje?
Olá a todos! Como faço para escrever minha condição! Preciso colocar uma ordem de stop-loss após o preço ter ultrapassado a distância de stop-loss
para Buy.....
se( )
{
------------
}
para Sell.....
função para transferir STB para Breakeven, o bilhete de pedido e a distância em pips são passados para a função
{
double sl=0.0;
if(OrderSelect(ticket,SELECT_BY_TICKET))
{
if(OrderType()==OP_BUY)
{
if(Bid>=OrderOpenPrice() && Bid-OrderOpenPrice()>=distance*_Point) sl=OrderOpenPrice();
if(OrderStopLoss()!=0 && OrderStopLoss()>=OrderOpenPrice())return;
}
if(OrderType()==OP_SELL)
{
if(Ask<=OrderOpenPrice() && OrderOpenPrice()-Ask>=distance*_Point) sl=OrderOpenPrice();
if(OrderStopLoss()!=0 && OrderStopLoss()<=OrderOpenPrice())return;
}
ResetLastError();
if(sl<=0)return;
if(!OrderModify(OrderTicket(),OrderOpenPrice(),sl,OrderTakeProfit(),0))
{
int error=GetLastError();
rezult=StringConcatenate(OrderSymbol(),": error modifying StopLoss order ",OrderTicket()," ",TypeToStr(OrderType())," №- ",error);
Print(rezult);
}
}
}
...
Não haverá nenhuma pintura)
A própria lógica de busca é pesada lá, e como torná-la mais fácil - eu ainda não sei.
Vitaly, eu originalmente tentei explicar que não são os cálculos que atrasam o testador, mas os objetos gráficos nos testes visuais. Faça-o da maneira que ele aconselha
Você pode enrolá-lo no indicador sem desenhar). E é melhor fazer uma escolha. Lúpulo - desenho, lúpulo - sem desenho:)
e ver a diferença na velocidade.
Não é nem o desenho que está atrasado, é apenas a presença de gráficos na carta.
Não é nem mesmo o desenho que está atrasando as coisas, é apenas a presença de gráficos no gráfico.
Vitaly, eu originalmente tentei explicar a você que não são os cálculos que atrasam o testador, mas os objetos gráficos nos testes visuais. Faça o que ele diz
e ver a diferença na velocidade.
Não é nem mesmo o desenho que está atrasado, é apenas a presença de gráficos na carta.
Eu testei a função sem nenhum gráfico, o gráfico foi feito apenas para ver a exatidão dos cálculos enquanto escrevia o código - era puramente técnico e foi removido do código por muito tempo. A tabela está em branco durante os testes.
Assim, quando sem função, o teste "voa", mas liga a função - ele vai lentamente.
P.S. Eu não preciso de objetos gráficos em princípio. Esqueça os gráficos - eu não os tenho e não vou tê-los!
Eu testei a função sem nenhum gráfico, o gráfico foi feito apenas para ver se os cálculos estavam corretos enquanto escrevia o código - era puramente técnico e foi removido do código há muito tempo. A tabela está em branco durante os testes.
Então, quando eu não tenho função, então teste "moscas", mas conecte a função - ela vai devagar.
P.S. Eu não preciso de objetos gráficos em princípio. Esqueça os gráficos - eu não os tenho e não vou tê-los!
Você já olhou aqui?
Legal, vou tentar puxar as funções para dentro da EA. Publicarei o resultado mais tarde.
Obrigado!!!
Por favor, ajude-me a entender como escrever o código corretamente para que o índice de barras seja aberto às 16:00 e 15:00
Esta é uma delas.
int shift=Bars("EURUSD",PERIOD_CURRENT,some_time,TimeCurrent());
Print("index of the bar for the time ",TimeToStr(some_time)," is ",shift);
Isso são dois.
int shift=iBarShift("EURUSD",PERIOD_CURRENT,some_time);
Print("index of the bar for the time ",TimeToStr(some_time)," is ",shift);
Esta é uma delas.
int shift=Bars("EURUSD",PERIOD_CURRENT,some_time,TimeCurrent());
Print("index of the bar for the time ",TimeToStr(some_time)," is ",shift);
Isso são dois.
int shift=iBarShift("EURUSD",PERIOD_CURRENT,some_time);
Print("index of the bar for the time ",TimeToStr(some_time)," is ",shift);