O problema é que estes bilhetes são mais de um. talvez 4, ainda não sei exatamente. por isso criei uma classe com número de bilhete e outras informações que não são armazenadas por ordem de seleção. por isso quis ter acesso ao bilhete. mas até agora só posso criar objetos de classe e colocá-los no CarrayObj e depois obter o índice, comparar o bilhete e analisar mais a fundo. Mas eu resolvi isso, obrigado. Eu me culpo em outro lugar. SenhoresmalvadosAlexeyVik - obrigado por suas respostas rápidas!
Olá! Por favor, escreva porque no testador de estratégia não abre negócios, escreve no log error: (2015.07.13 00:22:39.218 TestGenerator: erro de dados incomparável (valor alto 1.31150 em 2013.07.11 05:00 não é alcançado a partir do menor prazo, preço alto 1.31140 desajustes) cotações atualizadas. Aqui está o código do Expert Advisor:
int ticket;
int init;
int start()
{
int bars0;
int bars1;
int bars2;
int bars3;
int stoploss=50;
int takeprofit=30;
int slipage=2;
//-------------------------------------------------------------------+if ( OrdersTotal()<1 && Open[bars0]<Close[bars0] && Open[bars1]<Close[bars1] )
if ( Open[bars2]>Close[bars2]&& Open[bars3]>Close[bars3] )
if(V1()==true)
ticket = OrderSend(Symbol(),OP_BUY,0.1,Ask,slipage,Ask-stoploss*Point,Ask+takeprofit*Point,"",123,0,Red);
//-------------------------------------------------------------------+ if ( OrdersTotal()<1 && Open[bars0]>Close[bars0] && Open[bars1]>Close[bars1]&& Open[bars2]<Close[bars2])
if ( Open[bars2]<Close[bars2]&& Open[bars3]<Close[bars3] )
if(V2()==true)
ticket = OrderSend(Symbol(),OP_SELL,0.1,Bid,slipage,Bid+stoploss*Point,Bid-takeprofit*Point,"",123,0,Red);
//-------------------------------------------------------------------+ return;}
//+------------------------------------------------------------------+bool V1( ){
int i, k=OrdersTotal();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderType()==OP_BUY) {
return(false);
}
}
}
return(true);
}
bool V2( ){
int i, k=OrdersTotal();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if(OrderType()==OP_SELL) {
return(false);
}
}
}
return(true);
}
rylay: Olá! Por favor, escreva porque no Testador de Estratégia não abre negócios, escreve no log error: (2015.07.13 00:22:39.218 TestGenerator: erro de dados incomparável (valor alto 1.31150 em 2013.07.11 05:00 não é alcançado a partir do menor prazo, preço alto 1.31140 desajustes) cotações atualizadas. Aqui está o código do Expert Advisor: )
Com relação ao mencionado erro do testador, este será sempre o caso ao testar carrapatos. A história das citações no MT4 não é perfeita, há sempre desajustes.
O código está cheio de erros. As variáveis não são inicializadas, a função de partida não entende o que retorna, não há verificação da execução das funções comerciais, portanto, por favor, conserte-a.
Adicione #propriedade estrita ao início do código.
E como criamos duas funções para definir tipos de ordem, por que não integrar o contador de ordens de cada tipo e escrever se ( OrderBuy<1...), se ( OrderSell<1...) em vez de comparar if( OrderTotal()<1...)? Seria mais correto.
Favor informar como abrir somente uma negociação em condições de um bar, se a negociação ocorrer dentro do bar, mas no momento de fechar o sinal para abrir aparece imediatamente no mesmo bar.
Em outras palavras - o bar deu um sinal para abrir uma ordem. Foi aberta e uma curta tomada foi acionada. O negócio foi fechado, mas a EA fecha o primeiro e imediatamente abre o segundo com exatamente a mesma ordem porque ainda temos a condição de abri-lo dentro da mesma barra. Preciso abrir apenas uma posição em um bar. E para abrir o próximo comércio, devemos esperar pela abertura de outro bar.
Favor informar como abrir somente uma negociação em condições de um bar, se a negociação ocorrer dentro do bar, mas no momento de fechar o sinal para abrir aparece imediatamente no mesmo bar.
Em outras palavras - o bar deu um sinal para abrir uma ordem. Foi aberta e uma curta tomada foi acionada. O negócio foi fechado, mas a EA fecha o primeiro e imediatamente abre o segundo com exatamente a mesma ordem porque ainda temos a condição de abri-lo dentro da mesma barra. Preciso abrir apenas uma posição em um bar. E esperamos pela abertura de outro bar para abrir o próximo comércio.
O _já aberto = falso;
se (isNewBar()){ _already opened = false;}
se (!OrderSend(...) ) { /* tratamento de erros */; } caso contrário, { _já aberto = verdadeiro; }
isNewBar() - padrão, como nos artigos, usando data/hora estática = Hora[0];
se (_já aberto) { devolver; // não enviar o mandado }
Com relação ao erro do testador mencionado, este será sempre o caso ao testar em carrapatos. A história das citações no MT4 é imperfeita, há sempre desajustes.
O código está cheio de erros. As variáveis não são inicializadas, a função de partida não entende o que retorna, não há verificação da execução das funções comerciais, portanto, por favor, conserte-a.
Adicione #propriedade estrita ao início do código.
E como criamos duas funções para definir tipos de ordem, por que não integrar o contador de ordens de cada tipo e escrever se ( OrderBuy<1...), se ( OrdersSell<1...) em vez de comparar if( OrderTotal()<1...)? Seria mais correto.
Obrigado. Vou corrigi-lo. É só que quando havia uma condição:
if ( OrdersTotal()<1 && Open[bars0]<Close[bars0]
ticket = OrderSend(Symbol(),OP_BUY,0.1,Ask,slipage,Ask-stoploss*Point,Ask+takeprofit*Point,"",123,0,Red);
simplesmente não estava funcionando bem, então eu perguntei.
Eu não sou realmente um artesão. Eu gostaria de uma cópia exata e colar se possível, por favor.
Se for uma nova barra, você pode copiar e colar a função éNewBar(), talvez você acerte, não é complicado - compara o tempo de abertura de uma nova barra (com o índice 0, ou seja, o último), se for mais do que antes significa que uma nova barra acabou de aparecer, e se aparecer significa que você pode abrir um novo comércio se você tiver outras condições
O problema é que estes bilhetes são mais de um. talvez 4, ainda não sei exatamente. por isso criei uma classe com número de bilhete e outras informações que não são armazenadas por ordem de seleção. por isso quis ter acesso ao bilhete. mas até agora só posso criar objetos de classe e colocá-los no CarrayObj e depois obter o índice, comparar o bilhete e analisar mais a fundo. Mas eu resolvi isso, obrigado. Eu me culpo em outro lugar. SenhoresmalvadosAlexeyVik - obrigado por suas respostas rápidas!
)
Olá! Por favor, escreva porque no Testador de Estratégia não abre negócios, escreve no log error: (2015.07.13 00:22:39.218 TestGenerator: erro de dados incomparável (valor alto 1.31150 em 2013.07.11 05:00 não é alcançado a partir do menor prazo, preço alto 1.31140 desajustes) cotações atualizadas. Aqui está o código do Expert Advisor:
)
Com relação ao mencionado erro do testador, este será sempre o caso ao testar carrapatos. A história das citações no MT4 não é perfeita, há sempre desajustes.
O código está cheio de erros. As variáveis não são inicializadas, a função de partida não entende o que retorna, não há verificação da execução das funções comerciais, portanto, por favor, conserte-a.
Adicione #propriedade estrita ao início do código.
E como criamos duas funções para definir tipos de ordem, por que não integrar o contador de ordens de cada tipo e escrever se ( OrderBuy<1...), se ( OrderSell<1...) em vez de comparar if( OrderTotal()<1...)? Seria mais correto.
Favor informar como abrir somente uma negociação em condições de um bar, se a negociação ocorrer dentro do bar, mas no momento de fechar o sinal para abrir aparece imediatamente no mesmo bar.
Em outras palavras - o bar deu um sinal para abrir uma ordem. Foi aberta e uma curta tomada foi acionada. O negócio foi fechado, mas a EA fecha o primeiro e imediatamente abre o segundo com exatamente a mesma ordem porque ainda temos a condição de abri-lo dentro da mesma barra. Preciso abrir apenas uma posição em um bar. E para abrir o próximo comércio, devemos esperar pela abertura de outro bar.
Favor informar como abrir somente uma negociação em condições de um bar, se a negociação ocorrer dentro do bar, mas no momento de fechar o sinal para abrir aparece imediatamente no mesmo bar.
Em outras palavras - o bar deu um sinal para abrir uma ordem. Foi aberta e uma curta tomada foi acionada. O negócio foi fechado, mas a EA fecha o primeiro e imediatamente abre o segundo com exatamente a mesma ordem porque ainda temos a condição de abri-lo dentro da mesma barra. Preciso abrir apenas uma posição em um bar. E esperamos pela abertura de outro bar para abrir o próximo comércio.
O _já aberto = falso;
se (isNewBar()){ _already opened = false;}
se (!OrderSend(...) ) { /* tratamento de erros */; } caso contrário, { _já aberto = verdadeiro; }
isNewBar() - padrão, como nos artigos, usando data/hora estática = Hora[0];
se (_já aberto) { devolver; // não enviar o mandado }
Com relação ao erro do testador mencionado, este será sempre o caso ao testar em carrapatos. A história das citações no MT4 é imperfeita, há sempre desajustes.
O código está cheio de erros. As variáveis não são inicializadas, a função de partida não entende o que retorna, não há verificação da execução das funções comerciais, portanto, por favor, conserte-a.
Adicione #propriedade estrita ao início do código.
E como criamos duas funções para definir tipos de ordem, por que não integrar o contador de ordens de cada tipo e escrever se ( OrderBuy<1...), se ( OrdersSell<1...) em vez de comparar if( OrderTotal()<1...)? Seria mais correto.
bool _já aberto = falso;
se (isNewBar()){ _already opened = false;}
se (!OrderSend(...) ) { /* tratamento de erros */; } caso contrário, { _já aberto = verdadeiro; }
isNewBar() - padrão, como nos artigos, usando data/hora estática = Hora[0];
se (_já aberto) { devolver; //donão enviar o mandado }
diz 'isNewBar' - função não definida 2015
Eu não sou realmente um mago. Eu gostaria de uma cópia e cola exata, se você puder.
diz 'isNewBar' - função não definida 2015
Eu não sou realmente um artesão. Eu gostaria de uma cópia exata e colar se possível, por favor.
diz 'isNewBar' - função não definida 2015
Eu não sou realmente um artesão. Eu gostaria de uma cópia exata e colar se possível, por favor.
Sim, em qualquer assessor da kodobase o encontraria!
Qualquer conselheiro em uma kodobase o teria encontrado!
Obrigado )) O mais forte simplesmente! tudo funcionou desde a 1ª vez!
Obrigado a todos vocês!