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
Sempre foi difícil gerir ordens pendentes. também no mt4. talvez tentar fugir a isso? por exemplo, fazer ordens pendentes virtuais (basta armazená-las em variáveis e abri-las no mercado quando o preço tiver atravessado). O tempo é importante agora...
Não tenho tempo... Acabei de depurar o código.
pelo menos ter tempo para fazer alguns testes e afinações
Tais erros individuais não afectarão o destino da sua EA no campeonato. Mas se na ausência de dinheiro fizer repetidas tentativas de abrir uma posição geradora de gigabytes no seu diário de bordo, como aconteceu nos Campeonatos anteriores, será desclassificado.
Não gostaria que a minha EA fosse excluída do concurso devido a este tipo de confiança nas características recomendadas. Mas então como é que sei qual é o nível de paragem permitido para um determinado símbolo neste momento?
P.S. Detestaria utilizar a selecção com aumento incremental em caso de erro, e o número de erros neste caso irá aumentar.Tenho um problema em determinar os níveis de paragem para encomendas pendentes. Quando o mercado está calmo e queremos colocar uma ordem de paragem a um nível admissível, a função SymbolInfoInteger(SYMBOL_TRADE_STOPS_LEVEL) funciona perfeitamente; as ordens são colocadas e todos ficam satisfeitos, incluindo eu. Contudo, se o mercado começar a vibrar fortemente no início de uma sessão de negociação, esta função deixa de funcionar, as ordens não são colocadas e o terminal começa a gerar erros sobre paragens inválidas.
Não gostaria que a minha EA fosse excluída do concurso devido a este tipo de confiança nas características recomendadas. Mas então como é que sei qual é o nível de paragem permitido para um determinado símbolo neste momento?
P.S. Detestaria muito utilizar uma selecção com aumento incremental em caso de erro, e o número de erros neste caso aumentaria.Para ordens pendentes, o erro de paragem inválida também ocorre quando o preço aberto está mais próximo do preço actual.
Isto é, tem de verificar não só as paragens, mas também o preço de abertura.
Creio que existe um erro na função HistoryDealsTotal(), se for iniciada após HistorySelectByPosition() .
Apresenta repetidamente o número de negócios igual a 0, e isto apesar de ter uma posição aberta (variante multi-divisas).
Aqui está o código:
void GetDealQuantity(string smbl)
{
pos_id longo;
int total, quantidade=0;
ulong ticket=0; newticket;
PositionSelect(smbl);
pos_id=PosiçãoGetInteger(POSITION_IDENTIFIER);
bool select=HistorySelectByPosition(pos_id);
total=HistóriaDealsTotal();
Print(__FUNCTION__," select=",select," total=",total);
for(int i=HistoryDealsTotal()-1;i>=0;i--)
{
newticket=HistoryOrderGetTicket(i);
if(ticket!=newticket) { quantidade++; ticket=newticket; }
}
if(smbl==símbolo1) quantidade1=quantidade;
if(smbl==símbolo2) quantidade2=quantidade;
Imprimir(__FUNÇÃO__," quantidade=",quantidade);
}
Imprime-o na revista:
2010.01.04 00:20:05 GetDealQuantity select=true total=0
2010.01.04 00:20:05 GetDealQuantity quantidade=0
2010.01.04 00:20:05 EURJPY volume=0.1 quantidade=0
2010.01.04 00:20:05 GetDealQuantity select=true total=1
2010.01.04 00:20:05 GetDealQuantity quantity=1
2010.01.04 00:20:05 AUDUSD volume=0.1 quantidade=1
Tente inserir o código correctamente nos seus posts. Tente refazer o seu exemplo desta forma:
Existe algum exemplo de guião para escrever a última citação na prancheta ou algo semelhante?
Área de transferência do Windows?
Tenho de procurar na msdn para ver em que dll estão as funções necessárias...