É como uma palestra muito interessante em termos de conteúdo. Com certeza acompanharei toda a série.
Infelizmente, pode até haver pequenos erros de propósito - o conteúdo é muito complexo e talvez você deva ficar atento.
Na seção "
CMarketCollection::Refresh
" o campo total_market não é encontrado - isso já aconteceu antes com ORDER_STATUS_MARKET. A mudança de simples para complexo é muito impressionante.
No ponto de atualização, não pude ir além, pois o próximo objeto também não queria ser executado imediatamente. Portanto, fiquei feliz em usar o download.
Estranho, não consigo entender a lógica mais simples com seus métodos...
Aqui eu preciso obter o horário de fechamento da última negociação. Parece que a biblioteca tem um mecanismo para trabalhar com ordens abstratas à la MT4, mas não vejo nenhum método para trabalhar com elas.
Eu solicito Deals, mas ORDER_PROP_TIME_CLOSE não é suportado:
leonerd obter o horário de fechamento da última negociação. Parece que a biblioteca tem um mecanismo para trabalhar com ordens abstratas à la MT4, mas não vejo nenhum método para trabalhar com elas.
Solicito Deals, mas ORDER_PROP_TIME_CLOSE não é compatível:
Ok, de alguma forma é incorreto solicitar o horário de fechamento de uma negociação. Mas isso também não funciona com GetListHistoryOrders()...
leonerd obter o horário de fechamento da última negociação. Parece que a biblioteca tem um mecanismo para trabalhar com ordens abstratas à la MT4, mas não vejo nenhum método para trabalhar com elas.
Solicito Deals, mas ORDER_PROP_TIME_CLOSE não é compatível:
No Expert Advisor de teste, no manipulador de pressionamento de botão.
//+------------------------------------------------------------------+//| Tratamento de pressionamentos de botão|//+------------------------------------------------------------------+void PressButtonEvents(conststring button_name)
(e esse é apenas um exemplo de como lidar com eventos e obter dados).
Há blocos de código que são responsáveis pelo fechamento de posições. Você pode ver como isso é implementado lá. Por exemplo, um bloco de código para fechar uma compra pelo símbolo atual com lucro máximo:
//--- Se o botão BUTT_CLOSE_BUY for pressionado: Fechar a compra com lucro máximoelseif(button==EnumToString(BUTT_CLOSE_BUY))
{
//--- Obter a lista de todas as posições abertas
CArrayObj* list=engine.GetListMarketPosition();
//--- Selecione na lista somente posições de compra e somente pelo símbolo atual
list=CSelect::ByOrderProperty(list,ORDER_PROP_SYMBOL,Symbol(),EQUAL);
list=CSelect::ByOrderProperty(list,ORDER_PROP_TYPE,POSITION_TYPE_BUY,EQUAL);
//--- Classifique a lista por lucro com comissão e swap levados em conta
list.Sort(SORT_BY_ORDER_PROFIT_FULL);
//--- Obter o índice da posição de compra com o maior lucroint index=CSelect::FindOrderMax(list,ORDER_PROP_PROFIT_FULL);
if(index>WRONG_VALUE)
{
//--- Obtenha o objeto Buy position e feche a posição do tíquete
COrder* position=list.At(index);
if(position!=NULL)
{
//--- Se os botões para criar uma solicitação pendente não forem pressionados - feche a posiçãoif(!pressed_pending_close_buy)
engine.ClosePosition((ulong)position.Ticket());
//--- Caso contrário - crie uma solicitação pendente para fechar uma posição em um tíquete//--- e definir condições dependendo dos botões ativoselse
{
int id=engine.ClosePositionPending(position.Ticket());
if(id>0)
{
//--- definir o preço e o tempo de ativação da solicitação pendente e definir os parâmetros de ativaçãodouble bid=SymbolInfoDouble(NULL,SYMBOL_BID);
double price_activation=NormalizeDouble(bid+distance_pending_request*g_point,g_digits);
ulong time_activation=TimeCurrent()+bars_delay_pending_request*PeriodSeconds();
SetPReqCriterion((uchar)id,price_activation,time_activation,BUTT_CLOSE_BUY,EQUAL_OR_MORE,bid,TimeCurrent());
}
}
}
}
}
Sobre posições fechadas - eu fiz isso há muito tempo, agora não sei dizer como obter o que você precisa em um piscar de olhos. Darei uma olhada mais tarde e escreverei - estou muito ocupado no momento.
No Expert Advisor de teste, no manipulador de pressionamento de botão
(e esse é apenas um exemplo de como processar eventos e obter dados).
Há blocos de código que são responsáveis pelo fechamento de posições. Você pode ver como isso é implementado lá. Por exemplo, um bloco de código para fechar uma compra no símbolo atual com lucro máximo:
Sobre posições fechadas - eu fiz isso há muito tempo, agora não sei dizer como obter o que você precisa em um piscar de olhos. Darei uma olhada mais tarde e escreverei - estou muito ocupado no momento.
Obrigado, mas não há necessidade de participar do evento.
ORDER_STATUS_MARKET_ORDER dá erro: identificador não declarado. Parece que as coisas mudaram nas versões recentes do MQL 5, ele aparece tanto no COrder::OrderMagicNumber quanto no CMarketOrder Constructor!
theonementor # : ORDER_STATUS_MARKET_ORDER dá erro: identificador não declarado. Parece que as coisas mudaram nas versões recentes do MQL 5, ele aparece tanto no COrder::OrderMagicNumber quanto no CMarketOrder Constructor!
Fiz o download do arquivo MQL5.zip anexado ao artigo - cada arquivo individualmente e todos juntos (ao compilar Engine.mqh ou TestDoEasyPart04.mq5) são compilados sem erros.
O que exatamente você está fazendo para receber um erro de compilação?
Fiz o download do arquivo MQL5.zip anexado ao artigo - cada arquivo individualmente e todos juntos (ao compilar Engine.mqh ou TestDoEasyPart04.mq5) são compilados sem erros.
O que exatamente você está fazendo para receber um erro de compilação?
Descobri que havia uma entrada faltando no enum define. De alguma forma, ela estava faltando (embora eu tenha copiado e colado o código do tutorial no editor)
theonementor # : Descobri que havia uma entrada faltando no enum define. De alguma forma, ela estava faltando (embora eu tenha copiado e colado o código do tutorial no editor)
Os códigos no artigo nem sempre correspondem aos códigos nos arquivos anexados. Às vezes, posso deixar passar algo durante a descrição e, às vezes, algo é adicionado depois de escrever o artigo. O artigo não é um guia passo a passo no estilo "ler-copiar-usar", mas apenas uma explicação detalhada na forma de material de treinamento. E pequenos erros e omissões fazem você pensar, e isso é bom)
É como uma palestra muito interessante em termos de conteúdo. Com certeza acompanharei toda a série.
Infelizmente, pode até haver pequenos erros de propósito - o conteúdo é muito complexo e talvez você deva ficar atento.
Na seção "
" o campo total_market não é encontrado - isso já aconteceu antes com ORDER_STATUS_MARKET. A mudança de simples para complexo é muito impressionante.
No ponto de atualização, não pude ir além, pois o próximo objeto também não queria ser executado imediatamente. Portanto, fiquei feliz em usar o download.
mfG
Marc Tolkmitt
Estranho, não consigo entender a lógica mais simples com seus métodos...
Aqui eu preciso obter o horário de fechamento da última negociação. Parece que a biblioteca tem um mecanismo para trabalhar com ordens abstratas à la MT4, mas não vejo nenhum método para trabalhar com elas.
Eu solicito Deals, mas ORDER_PROP_TIME_CLOSE não é suportado:
Solicito Deals, mas ORDER_PROP_TIME_CLOSE não é compatível:
Ok, de alguma forma é incorreto solicitar o horário de fechamento de uma negociação. Mas isso também não funciona com GetListHistoryOrders()...
Solicito Deals, mas ORDER_PROP_TIME_CLOSE não é compatível:
No Expert Advisor de teste, no manipulador de pressionamento de botão.
(e esse é apenas um exemplo de como lidar com eventos e obter dados).
Há blocos de código que são responsáveis pelo fechamento de posições. Você pode ver como isso é implementado lá. Por exemplo, um bloco de código para fechar uma compra pelo símbolo atual com lucro máximo:
Sobre posições fechadas - eu fiz isso há muito tempo, agora não sei dizer como obter o que você precisa em um piscar de olhos. Darei uma olhada mais tarde e escreverei - estou muito ocupado no momento.
No Expert Advisor de teste, no manipulador de pressionamento de botão
(e esse é apenas um exemplo de como processar eventos e obter dados).
Há blocos de código que são responsáveis pelo fechamento de posições. Você pode ver como isso é implementado lá. Por exemplo, um bloco de código para fechar uma compra no símbolo atual com lucro máximo:
Sobre posições fechadas - eu fiz isso há muito tempo, agora não sei dizer como obter o que você precisa em um piscar de olhos. Darei uma olhada mais tarde e escreverei - estou muito ocupado no momento.
Obrigado, mas não há necessidade de participar do evento.
ORDER_STATUS_MARKET_ORDER dá erro: identificador não declarado. Parece que as coisas mudaram nas versões recentes do MQL 5, ele aparece tanto no COrder::OrderMagicNumber quanto no CMarketOrder Constructor!
Fiz o download do arquivo MQL5.zip anexado ao artigo - cada arquivo individualmente e todos juntos (ao compilar Engine.mqh ou TestDoEasyPart04.mq5) são compilados sem erros.
O que exatamente você está fazendo para receber um erro de compilação?
Fiz o download do arquivo MQL5.zip anexado ao artigo - cada arquivo individualmente e todos juntos (ao compilar Engine.mqh ou TestDoEasyPart04.mq5) são compilados sem erros.
O que exatamente você está fazendo para receber um erro de compilação?
Descobri que havia uma entrada faltando no enum define. De alguma forma, ela estava faltando (embora eu tenha copiado e colado o código do tutorial no editor)
Os códigos no artigo nem sempre correspondem aos códigos nos arquivos anexados. Às vezes, posso deixar passar algo durante a descrição e, às vezes, algo é adicionado depois de escrever o artigo. O artigo não é um guia passo a passo no estilo "ler-copiar-usar", mas apenas uma explicação detalhada na forma de material de treinamento. E pequenos erros e omissões fazem você pensar, e isso é bom)