Erros, bugs, perguntas - página 555

 
sergey1294:
Na Alpari não se pode colocar paragens imediatamente durante a execução do mercado, é necessário primeiro abrir uma posição e depois modificá-la
Por favor esclareça: é impossível fazer uma encomenda com paragens usando apenas um comando OrderSend? Ou trata-se de chamar a PositionSelect antes de estabelecer uma paragem numa encomenda existente?
 
Snaf:

Метатестер пилит диск HDD

Versão 527.

Se olharmos no processo, o processo continua e continua com este disparate.

Nenhuma actividade de rede, não ligada à nuvem. O terminal e o metatester não estão a funcionar. Nenhum ficheiro está a ser alterado.

Não há informação sobre nomes de ficheiros na imagem acima.

Favor anexar um registo mais detalhado em forma de texto.

 
idispatch:

Na MQL4 poderia criar uma encomenda com paragens imediatamente, mas na MQL5 não é possível - tem de definir paragens após a criação da encomenda.

Sou lento (por favor, dê-me uma amostra de código) ou é esta a minha intenção?

Também pode criar uma encomenda com uma paragem e um lucro.

Tem no seu pedido

reqest.sl=SL;

reqest.tp=TP;

Isto é um erro. Os níveis SL e TP devem ser fixados a uma distância dos preços de mercado, pelo que estas linhas devem ter o seguinte aspecto

para uma posição de compra:

request.sl = SymbolInfoDouble(Symbol(),SYMBOL_BID) - SL * SymbolInfoDouble(Symbol(),SYMBOL_POINT);

request.tp = SymbolInfoDouble(Symbol(),SYMBOL_ASK) + TP * SymbolInfoDouble(Symbol(),SYMBOL_POINT);

inverter para uma posição de Venda

request.sl = SymbolInfoDouble(Symbol(),SYMBOL_ASK) + SL * SymbolInfoDouble(Symbol(),SYMBOL_POINT);

request.tp = SymbolInfoDouble(Symbol(),SYMBOL_BID) - TP * SymbolInfoDouble(Symbol(),SYMBOL_POINT);

Espero não estar enganado em lado nenhum...

 
idispatch:
Por favor esclareça: em Alpari, é impossível fazer uma encomenda com paragens com um único comando OrderSend? Ou será que antes de definirmos as paragens para uma encomenda existente, precisamos de chamar a PositionSelect?

Pode, porque não?

Em que modo se coloca a encomenda?

 
ShurikAn:

Pode fazê-lo com uma paragem e um lucro.

Tem na sua pergunta

reqest.sl=SL;

reqest.tp=TP;

Isto é um erro. Os níveis SL e TP devem ser fixados a uma distância dos preços de mercado, pelo que estas linhas devem ter este aspecto:

É claro que SL e TP são definidos como os seus. Além disso, escrevi acima que se eu simplesmente acrescentar

m_request.action = TRADE_ACTION_SLTP;
OrderSend(m_request, m_result);

então as paragens serão definidas com sucesso em SL e TP especificados, o que não acontecerá se não forem definidos correctamente.

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

Pode, porque não?

Em que modo se coloca a encomenda?

MqlTradeRequest m_request;
MqlTradeResult m_result;

m_request.action = TRADE_ACTION_DEAL;
m_request.symbol = Symbol();
m_request.type = ORDER_TYPE_BUY;

m_request.price = Preço; // calculado de antemão e verdadeiro :)

m_request.sl = SL; // já calculado e correcto :)
m_request.tp = TP; // calculado de antemão e verdadeiro :)

m_request.volume = Vol;

m_request.type_filling = ORDER_FILLING_FOK;
m_request.deviation = 10;
m_request.type_time = 0;
m_request.expiration = 0;
m_request.magic = 0;
m_request.comment = "";

OrderSend(m_request, m_result);
 
idispatch:
Por favor esclareça: na Alpari, não pode fazer uma encomenda com paragens usando um único comando OrderSend? Ou trata-se de chamar a PositionSelect antes de definir paragens para uma encomenda existente?

Exactamente correcto. com paragens só o pode fazer em modo instantâneo

Tipos de execução

O terminal do cliente tem quatro modos de execução de encomendas:

  • Execução Instantânea
    Neste modo, a execução de uma ordem de mercado é efectuada ao preço oferecido ao corretor. Ao enviar um pedido de execução, o terminal substitui automaticamente o preço actual da encomenda. No caso do corretor aceitar os preços, a ordem será executada. Se o corretor não aceitar o preço solicitado, então ocorre o chamado "Requote" - o corretor devolve os preços aos quais a ordem pode ser executada.
  • Solicitar Execução
    Neste modo, a ordem de mercado é executada ao preço previamente recebido do corretor. Antes de enviar uma ordem de mercado, os preços de execução são solicitados ao corretor. Uma vez recebida, a execução da encomenda a esse preço pode ser confirmada ou rejeitada.
  • Execução do Mercado
    Neste modo de execução de ordens de mercado, a decisão sobre o preço de execução é tomada pelo corretor sem qualquer aprovação adicional do comerciante. Enviar uma ordem de mercado neste modo implica um acordo prévio com o preço a que será executada.

Ao premir o botão "Sell by Market" ou "Buy by Market", será criada uma ordem para que o corretor execute um negócio de Venda ou Compra, respectivamente, ao preço definido pelo corretor.

  • No modo de execução "Por Mercado", os níveis de Stop Loss e Take Profit só podem ser definidos para uma posição já aberta através da sua modificação.
  • O comentário a uma encomenda pode ser modificado por um corretor ou por um servidor. Por exemplo, no caso de encerramento em Stop Loss ou Take Profit, incluirá a informação relevante.
  • Se o campo Execução estiver inactivo, significa que a capacidade de o alterar está bloqueada no servidor.
  • Um duplo clique na janela de abertura da posição irá abrir/ocultar o tick.
  • Execução de câmbio
    Neste modo, as operações comerciais realizadas no terminal do cliente são transferidas para um sistema comercial externo (bolsa). As operações comerciais são executadas aos preços das actuais licitações de mercado.

O modo de execução para cada símbolo é seleccionado pela sua empresa de corretagem.


Tudo está escrito na ajuda terminal. Mas ninguém o lê.

Para descobrir que tipo de execução necessita para solicitar o imóvel com a função SymbolInfoInteger() com o identificador SYMBOL_TRADE_EXEMODE

SYMBOL_TRADE_EXEMODE

Modo de comércio

ENUM_SÍMBOLO_COMÉRCIO_EXECUÇÃO




ENUM_SÍMBOLO_COMÉRCIO_EXECUÇÃO

Identificador

Descrição

SYMBOL_TRADE_EXECUTION_REQUEST

Comércio a pedido

SYMBOL_TRADE_EXECUTION_INSTANT

Comércio a preços de streaming

SYMBOL_TRADE_EXECUTION_MARKET

Mercado_de_execução_execução

SYMBOL_TRADE_EXECUTION_EXCHANGE

Execução de câmbio


 

Muito obrigado, agora compreendo.

E li a ajuda, o que não encontrei foi a minha omissão + falta de elaboração de referências cruzadas ou algo do género na ajuda:)

 

Ao testar o Consultor do Cirurgião https://www.mql5.com/ru/code/611

com uma modificação

[citação].

Para iniciar os testes, na linha 84 substituir:
double Limit=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_LIMIT);
com
double Limit= 5;

[/quote]

Numa conta normal de demonstração, quando o separador Comércio na secção Ferramentas está activo, a vista do terminal muda no final do teste.

Arquivos anexados:
Error01.JPG  382 kb
Error02.JPG  346 kb
 

Numa conta de demonstração, esta é a confusão:

Continua a reiniciar para o início.

E no XAUUSD, carrega-se na F9 e depois

embora não se possa fazer duplo clique na janela de encomendas em "visão geral do mercado".

P.S. Eu sei que não se pode negociar XAUUSD).