Yedelkin: Tentei sugerir uma resposta à sua pergunta "O que é um número de transacção? Podemos presumir que já tratou desta questão?
Pode, obrigado. Pode dizer-me se é possível seleccionar o último acordo sobre uma posição sem passar pelos acordos e comparar os tempos ou os seus bilhetes?
tor4en: Sabe se é possível seleccionar o último negócio de uma posição sem passar pelos negócios e comparar tempos ou carraças?
1. Infelizmente, tento não utilizar a Biblioteca Standard, pelo que não posso dar conselhos adequados sobre como trabalhar com o método SelectByIndex(). Posso apenas notar que a própria classe CDealInfo está posicionada como uma classe para trabalhar com propriedades de transacção, ou seja, as questões de obter a lista de transacções parecem ser deixadas de fora.
2. Como sabe, o método SelectByIndex() utiliza simplesmente a função HistoryDealGetTicket(). Da descrição destafunção decorre que antes de aceder ao negócio é necessário obter a lista de todos os negócios . Em particular,
//--- запросим историр ю сделок в указанном интервалеHistorySelect(from_date,to_date);
//--- общее количество в списке сделокint deals=HistoryDealsTotal();
//--- теперь обработаем каждую сделкуfor(int i=0;i<deals;i++)
{
deal_ticket=HistoryDealGetTicket(i);
...
}
Há cerca de um ano, perguntei no fórum, se é possível considerar que o último acordo da lista tem sempre um índice de HistoryDealsTotal()-1, mas não recebi resposta (ou não reparei, o que é improvável). Usando o método da prova científica, não encontrei uma refutação desta tese. Assim, logicamente, cada novo negócio, cuja informação é recebida no terminal de base, deveria simplesmente aumentar a lista de negócios em um e, respectivamente, os índices da lista de negócios seriam atribuídos a cada novo negócio em ordem ascendente. Como é na realidade - não sei.
Peritos, ajuda, por favor. Construí dois EAs para, por assim dizer, efeito sinérgico, os mais simples parecem ligar-se, mas este não se compila, embora tenha feito tudo correctamente como com o anterior. Aqui está o que ele dá
'Supervisor' - função só pode ser declarada no âmbito global 20_200_pips_MQL5_v1.mq5 360 18
'Perceptron' - função só pode ser declarada no âmbito global 20_200_pips_MQL5_v1.mq5 418 8
'basicTradingSystem' - função só pode ser declarada no âmbito global 20_200_pips_MQL5_v1.mq5 434 6
A função só pode ser declarada no âmbito global
Estou realmente confuso onde está o alcance global
chipo: Liguei dois EAs para algum tipo de efeito de sinergia, os mais simples parecem ligar, mas este não compila, embora eu tenha feito tudo correctamente como no anterior. Isto é o que dá
'Supervisor' - função só pode ser declarada no âmbito global 20_200_pips_MQL5_v1.mq5 360 18
'Perceptron' - função só pode ser declarada no âmbito global 20_200_pips_MQL5_v1.mq5 418 8
'basicTradingSystem' - função só pode ser declarada no âmbito global 20_200_pips_MQL5_v1.mq5 434 6
A função só pode ser declarada no âmbito global
Estou realmente confuso onde está o alcance global
Tais mensagens aparecem, por exemplo, quando uma função é declarada dentro de outra. Veja se há algo parecido com isto no código:
int index // номер сделки
);
O que é um número de transacção?
Como selecciono a última profissão? Índice 0?
Tenho uma conta com uma posição aberta e uma história de negócios. Quero seleccionar a última profissão:
#include <Trade\DealInfo.mqh>
CDealInfo deal;
for(int n=20;n>=0;n--)
{
deal.SelectByIndex(n);
Print("Тикет сделки=",deal.Ticket()," n=",n);
}
Todos os carrapatos 0...
int index // номер сделки
);
O que é um número de transacção?
Ver descrição da função HistoryDealGetTicket(). Há também um exemplo de como trabalhar com a lista de acordos.
Tentei sugerir uma resposta à sua pergunta "O que é um número de transacção? Podemos presumir que já tratou desta questão?
1. Infelizmente, tento não utilizar a Biblioteca Standard, pelo que não posso dar conselhos adequados sobre como trabalhar com o método SelectByIndex(). Posso apenas notar que a própria classe CDealInfo está posicionada como uma classe para trabalhar com propriedades de transacção, ou seja, as questões de obter a lista de transacções parecem ser deixadas de fora.
2. Como sabe, o método SelectByIndex() utiliza simplesmente a função HistoryDealGetTicket(). Da descrição destafunção decorre que antes de aceder ao negócio é necessário obter a lista de todos os negócios . Em particular,
Há cerca de um ano, perguntei no fórum, se é possível considerar que o último acordo da lista tem sempre um índice de HistoryDealsTotal()-1, mas não recebi resposta (ou não reparei, o que é improvável). Usando o método da prova científica, não encontrei uma refutação desta tese. Assim, logicamente, cada novo negócio, cuja informação é recebida no terminal de base, deveria simplesmente aumentar a lista de negócios em um e, respectivamente, os índices da lista de negócios seriam atribuídos a cada novo negócio em ordem ascendente. Como é na realidade - não sei.
3. Sugiro também a leitura do artigoEncomendas, Posições e Ofícios no MetaTrader 5 e (não o li eu próprio) - Como utilizar as classes de comércio da Biblioteca Standard ao escrever um Consultor Especialista.
É tudo :)
Peritos, ajuda, por favor. Construí dois EAs para, por assim dizer, efeito sinérgico, os mais simples parecem ligar-se, mas este não se compila, embora tenha feito tudo correctamente como com o anterior. Aqui está o que ele dá
'Supervisor' - função só pode ser declarada no âmbito global 20_200_pips_MQL5_v1.mq5 360 18
'Perceptron' - função só pode ser declarada no âmbito global 20_200_pips_MQL5_v1.mq5 418 8
'basicTradingSystem' - função só pode ser declarada no âmbito global 20_200_pips_MQL5_v1.mq5 434 6
A função só pode ser declarada no âmbito global
Estou realmente confuso onde está o alcance global
'Supervisor' - função só pode ser declarada no âmbito global 20_200_pips_MQL5_v1.mq5 360 18
'Perceptron' - função só pode ser declarada no âmbito global 20_200_pips_MQL5_v1.mq5 418 8
'basicTradingSystem' - função só pode ser declarada no âmbito global 20_200_pips_MQL5_v1.mq5 434 6
A função só pode ser declarada no âmbito global
Estou realmente confuso onde está o alcance global
Tais mensagens aparecem, por exemplo, quando uma função é declarada dentro de outra. Veja se há algo parecido com isto no código:
func_1() { void func_2()... }