Símbolos personalizados. Erros, bugs, perguntas, sugestões. - página 15

 
Roman:
Bem, o que não está claro aqui, no correio com o bug #20 eu especifiquei a configuração de identificação, e indiquei a razão para não corresponder.
SYMBOL_TRADE_EXEMODE
SÍMBOLO_COMÉRCIO_CALC_MODE
Estes são modos completamente diferentes, e não se aplicam ao problema.

Isso deve torná-lo mais claro.

E se você quiser usar outro identificador da ENUMSYMBOL_FILLING_XXX
Não há identificadorparaSYMBOL_FILLING_RETURN!

Isso mesmo - não há. Eles não são identificadores - são bandeiras. Porque SYMBOL_FILLING_RETURN sempre existe. E as outras duas bandeiras podem ser ambas ou uma delas:

Ao enviar uma ordem você pode especificar uma política para preencher o volume declarado na ordem comercial. As variantes permitidas de execução de pedidos por volume para cada símbolo são mostradas na tabela abaixo. Não apenas um modo pode ser definido para cada símbolo, mas vários modos através de uma combinação de bandeiras. A combinação de bandeiras é expressa como a operação lógica OR (|), por exemplo SYMBOL_FILLING_FOK|SYMBOL_FILLING_IOC. Para verificar se uma determinada modalidade é permitida para um instrumento, o resultado da lógica AND (&) deve ser comparado com a bandeira da modalidade.

Política de preenchimento

Identificador

Valor

Descrição

Todos/Nenhum

SÍMBOLO_ENCHIMENTO_FOK

1

Esta política de execução significa que o pedido só pode ser preenchido até o tamanho especificado. Se o volume do instrumento financeiro for insuficiente atualmente disponível no mercado, a ordem não será executada. O volume necessário pode ser compilado a partir de várias ofertas atualmente disponíveis no mercado.

Tudo/Parcial

ALL_FILLING_IOC

2

Neste caso, o comerciante concorda em realizar um negócio com o volume máximo disponível no mercado dentro do volume especificado no pedido. Se a execução completa não for possível, a ordem será executada para o volume disponível, e o volume não executado da ordem será cancelado. A possibilidade de uso das ordens do COI é definida em um servidor de negociação.

Retornar

Não há COI

Esta modalidade é utilizada para ordens de mercado (Compra e Venda), limite e stop-limit e somente nas modalidades "Execução de Mercado" e "Execução de Bolsa". Em caso de execução parcial, uma ordem de mercado ou limite com um volume residual não é removida, mas permanece em vigor.



  • Se SYMBOL_FILLING_FOK estiver presente , mas SYMBOL_FILLING_IOC não estiver , SYMBOL_FILLING_MODE retornará 1. Ao mesmo tempo, há um "retorno".
  • Se a bandeira SYMBOL_FILLING_IOC estiver presentemas não a bandeira SYMBOL_FILLING_FOK, SYMBOL_FILLING_MODE retornará 2. Neste caso, há um "retorno".
  • Se houver uma bandeira SYMBOL_FILLING_FOK e houver uma bandeira SYMBOL_FILLING_IOC, então SYMBOL_FILLING_MODE retornará 3. Ao mesmo tempo, há um "retorno".
Daí a conclusão: "Retorno" está sempre lá, e os outros dois modos são determinados pela presença de bandeiras.
 
Artyom Trishkin:

Certo - não. Eles não são identificadores - são bandeiras. Porque SYMBOL_FILLING_RETURN está sempre presente. E as outras duas bandeiras - podem ser ambas ou uma só:

Mas isto não é um comportamento explícito, o que é enganoso.
E a documentação não diz que o SYMBOL_FILLING_RETURN está sempre presente.
Por que não colocá-lo explicitamente? SYMBOL_FILLING_RETURN

Mostre-me um exemplo de como colocar corretamente a bandeira para enchimento de troca então

CustomSymbolSetInteger(SName, SYMBOL_FILLING_MODE, SYMBOL_FILLING_RETURN);

Estou ficando confuso com estas bandeiras não explícitas.

 
Roman:

Mas não é um comportamento explícito que é enganoso.
E a documentação não diz que o SYMBOL_FILLING_RETURN está sempre lá.
Por que não defini-lo explicitamente? SYMBOL_FILLING_RETURN

Por favor, mostre-me um exemplo de como colocar corretamente a bandeira para o enchimento de troca então

Porque estou confuso com estas bandeiras não explícitas.

Zero - se não forem necessárias outras bandeiras.

 
Roman:

Mas não é um comportamento explícito que é enganoso.
E a documentação não diz sobre o sinal de que SYMBOL_FILLING_RETURN está sempre lá.

Por que não defini-lo explicitamente? SYMBOL_FILLING_RETURN

Por favor, mostre-me um exemplo de como colocar corretamente a bandeira para o enchimento de troca então

Porque estou confuso com estas bandeiras não explícitas.

Aqui está a partir da documentação:

"Nos modos de execução "Por Mercado" e "Troca", a política de preenchimento "Retorno" é sempre permitida para todos os tipos de ordem. A permissibilidade dos outros tipos é verificada usando as propriedades SYMBOL_FILLING_FOK e SYMBOL_FILLING_IOC. "

 
Artyom Trishkin:

Zero - se não forem necessárias outras bandeiras.

Fixa zero, fixa nenhum.
Nenhum deles não é um preenchimento de troca.
Se eu tentar desta maneira

CustomSymbolSetInteger(SName, SYMBOL_FILLING_MODE, SYMBOL_FILLING_FOK & SYMBOL_FILLING_IOC);

SYMBOL_FILLING_FOK & SYMBOL_FILLING_IOC também devolve Nenhum, não 3 como você disse acima.

Afinal de contas, como faço para que a troca seja preenchida corretamente?

CustomSymbolSetInteger(SName, SYMBOL_FILLING_MODE, SYMBOL_FILLING_RETURN);
 

E depois há isto.

CustomSymbolSetInteger(SName, SYMBOL_FILLING_MODE, 3);

Define Tudo, o que é o mesmo que Tudo é permitido.

E na documentação, na coluna "Valor", não há nada, vazio!
E na coluna "Identificador" para a linha "Return", ainda sugiro especificar a combinação correta para as bandeiras!
Por que não simplesmente adicionarSYMBOL_FILLING_RETURN com valor 3, claro e compreensível para todos.

 
Roman:

Preencher bandeiras em bandeiras personalizadas para que finalidade prática?

 
Roman:

Fixa zero, fixa nenhum.
Nenhum deles não é um preenchimento de troca.
Se eu tentar desta maneira

SYMBOL_FILLING_FOK & SYMBOL_FILLING_IOC também devolve Nenhum, não 3 como você disse acima.

Afinal de contas, como faço para que a troca seja preenchida corretamente?

CustomSymbolSetInteger(SName, SYMBOL_FILLING_MODE, SYMBOL_FILLING_FOK | SYMBOL_FILLING_IOC);
 
Artyom Trishkin:

Ali, essa combinação estabelece Tudo. Obrigado.
Mas concordo que esta combinação não parece óbvia.
Não usamos um "Não" lógico ao definir as propriedades

Se nãoSYMBOL_FILLING_FOK ou nãoSYMBOL_FILLING_IOC
então o
SYMBOL_FILLING_RETURN escondido-"Sempre lá" éusado

Em sua combinação, em vez disso dizemos explicitamente, defina FOK ou IOC.
No enchimento de câmbio não há FOC ou IOC, portanto, é enganoso.

Portanto, é lógico, esta combinação deve ser adicionada à documentação, na coluna"Identificador" e seu valor 3
ou melhor, para adicionar
SYMBOL_FILLING_RETURN

Então o Bug #20 é excluído de bugs.
Mas tenha em mente que o recurso de explicitação é violado.

 
fxsaber:

Preencher bandeiras em bandeiras personalizadas para que finalidade prática?

Para exibir a especificação da ferramenta corretamente.
Também é possível que estes modos sejam utilizados em algum lugar nas profundezas do terminal.
No testador ou em outro lugar, portanto, estou acostumado a preencher tudo explicitamente.