Erros, bugs, perguntas - página 144

 
pronych:

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

 
Valmars:
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, quando a ordem pendente é eliminada, é claro, não será colocada outra se não houver dinheiro
 
Tenho um problema ao determinar os níveis de paragem para ordens 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 perfeitamentee as ordens são colocadas e todos ficam satisfeitos, incluindo eu. No entanto, se o mercado se mover fortemente no início das sessões 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 utilizar a selecção com aumento incremental em caso de erro, e o número de erros neste caso irá aumentar.
 
Vladix:
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

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций - Документация по MQL5
 

Tente inserir o código correctamente nos seus posts. Tente refazer o seu exemplo desta forma:

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void GetDealQuantity(string smbl)
  {
   long pos_id;
   int total,quantity=0;
   ulong ticket=0,newticket;
   if(PositionSelect(smbl))
     {
      pos_id=PositionGetInteger(POSITION_IDENTIFIER);
      bool select=HistorySelectByPosition(pos_id);
      if(select)
        {
         total=HistoryDealsTotal();
         Print(__FUNCTION__," select=",select," total=",total,"posID=",pos_id);
         for(int i=total-1;i>=0;i--)
           {
            newticket=HistoryOrderGetTicket(i);
            if(ticket!=newticket) { quantity++; ticket=newticket; }
           }
         if(smbl==symbol1) quantity1=quantity;
         if(smbl==symbol2) quantity2=quantity;
         Print(__FUNCTION__," quantity=",quantity);
        }
      else
        {
        Print("Не удалось выполнить HistorySelectByPosition() для pos_id=",pos_id);
        }

     }
   else
     {
      Print("Позиции не выбрана по символу ",smbl);
     }
  }
//+------------------------------------------------------------------+
MQL5.community - Памятка пользователя
MQL5.community - Памятка пользователя
  • 2010.02.23
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы недавно зарегистрировались и у вас возникли вопросы: Как вставить картинку в сообщение на форуме, как красиво оформить исходный код MQL5, где находятся ваши Личные сообщения? В этой статье мы подготовили для вас несколько практических советов, которые помогут быстрее освоиться на сайте MQL5.community и позволят в полной мере воспользоваться доступными функциональными возможностями.
 
Existe algum exemplo de guião algures que escreva a última citação para a prancheta ou algo semelhante?
 
jmp:
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...

 
Quero chegar ao fundo da questão. Corrija-me se estiver errado. Quando estudei a documentação dos indicadores (fractais, penso eu) lembrei-me muito claramente e ainda me lembro que no caso de dois extremos adjacentes (consecutivos ou separados por algumas barras) do mesmo nível, o mais recente (o mais recente à direita) é o mais recente. No entanto, o indicador Zig-zag, bem como a propriedade da magnetização dos objectos gráficos (aparentemente baseada nesse zig-zag) são fixados no primeiro extremo de dois castiçais próximos de um nível, embora eu ainda não possa dar uma conclusão definitiva à medida que o comportamento muda de caso para caso, na minha opinião. Quanto ao Zig-zag - este baseia-se apenas na primeira vela. É correcto, camaradas? Deveria ser assim? Ou há várias "normas" sem regras claras e todos são livres de escolher se o extremo é julgado pelo candelabro mais à esquerda ou mais à direita?
 
Há milhões de ziguezagues. Use a que achar que está certa.