[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 826

 

Não poderíamos calcular separadamente para cada posição aberta posteriormente e depois resumi-la? Há uma razão pela qual

AccountFreeMarginCheck(sy, op, lot); 

O símbolo, a operação comercial e o lote são passados para ele. Você pode calcular a margem para cada posição separadamente, decidir sobre as posições sobrepostas e imprimir o resultado.

Escreva um roteiro que imprima tanto seu cálculo como o que é devolvido por sua corretora. E compará-lo...

MODE_MARGINHEDGED 31 Margem cobrada em posições sobrepostas por 1 lote


Portanto, calcule seus lotes. Conta o número de lotes sobrepostos pelo valor retornado por MODE_MARGINHEDGED
Contagem restante não sobreposta pelo valor retornado por MODE_MARGINREQUIRED

 

Eu encontrei um problema com a MRC. Por exemplo, quando eu quero executar este código :

double OpPriceF5B = OrderClosePrice()- OrderOpenPrice();

Eu quero saber a diferença entre o preço de abertura e o preço de troca.

Como posso fazer isso?

Estou tentando descobrir isso assim:

for (i=1; i <=OrdersTotal();i++){
    if (OrderSelect(i-1,SELECT_BY_POS)==true){
       if (OrderType()== OP_BUY ){
          if (OrderMagicNumber() == Magic_N_F5){
             double OpPriceF5B = OrderClosePrice()- OrderOpenPrice();
          }
       }      
    }   
}
 

Experiência com AccountFreeMarginCheck():

- Pedido de compra aberto no terminal

- Saldo: 94919.36 Fundos: 94921.16 Garantias: 1273,39 Livre: 93647,07 Nível: 7454,15%

- Pergunto: AccountFreeMarginCheck(Symbol(),OP_BUY,0.1) - dá o restante do nível Free

- Pergunto: AccountFreeMarginCheck(Symbol(),OP_SELL,0.1) - dá o saldo do nível de Fundos


Em geral, meu problema não pode ser resolvido assim.

Minha pergunta (problema) é a seguinte: várias ordens devem ser abertas simultaneamente, como esta

o primeiro - vender com o lote 0,10

o segundo - comprar com o lote 0,26

terceiro - vender lote 0,43
quarto - comprar lote 0,72

O quinto - venda por lote 1,19, etc.

Preço 1,2737, alavancagem 100, lote mínimo 0,1

Existe a possibilidade de que em algum ciclo da próxima colocação de pedidos, o Stop Out venha.

Isso significa que devemos calcular este pior cenário utilizando a metodologia da corretora, é claro. E chegue a uma conclusão: até que quantidade total de lotes nos pedidos abertos na ordem especificada podemos ir sem ter medo de entrar em um Stop Out? Isto é, "no início do início" :) Calcular a margem total para as ordens que podem ser abertas. Novamente, a ordem de abertura é mostrada acima e a ordem dos lotes para cada pedido é conhecida com antecedência.

 
ikatsko:

Experiência com AccountFreeMarginCheck():

- Pedido de compra aberto no terminal

- Saldo: 94919.36 Fundos: 94921.16 Garantias: 1273,39 Livre: 93647,07 Nível: 7454,15%

- Pergunto: AccountFreeMarginCheck(Symbol(),OP_BUY,0.1) - dá o restante do nível Free

- Pergunto: AccountFreeMarginCheck(Symbol(),OP_SELL,0.1) - dá o saldo do nível de Fundos


Em geral, meu problema não pode ser resolvido assim.

Mas minha pergunta (tarefa) é a seguinte: várias ordens devem ser abertas simultaneamente, e elas devem permanecer abertas assim

o primeiro - vender com o lote 0,10

o segundo - comprar com o lote 0,26

terceiro - vender lote 0,43
quarto - comprar lote 0,72

O quinto - venda por lote 1,19, etc.

Preço 1,2737, alavancagem 100, lote mínimo 0,1

Existe a possibilidade de que em algum ciclo da próxima colocação de pedidos, o Stop Out venha.

Isso significa que devemos calcular este pior cenário utilizando a metodologia da CD, é claro. E chegue a uma conclusão: até que quantidade total de lotes nos pedidos abertos na ordem especificada podemos ir sem ter medo de entrar em um Stop Out? Isto é, "no início do início" :) Calcular a margem total para as ordens que podem ser abertas. Devo repetir, a ordem de abertura é mostrada acima e os tamanhos dos lotes de pedidos para cada pedido são conhecidos antecipadamente.

Pensemos sobre isso.

Todos Bai: 0,26 + 0,72 = 0,98.

Todas as bolas: 0,1+0,43+1,19 = 1,72

Sobrepostos: o número de lotes de Bai é menor que o número de lotes de Sell, portanto o número sobreposto de lotes é igual ao número de lotes de Bai = 0,98

Restantes lotes unidirecionais Vender: 1,72-0,98 = 0,74

Então, o que fazemos? Adicionar Bai's e subtrair Sell's: -0,1+0,26-0,43+0,72-1,19= -0,74 Se menos, então temos um Sell unidirecional

Para os sobrepostos, tirar valor de MODE_MARGINHEDGED e multiplicar pelo número de lotes sobrepostos.

E para os unidirecionais, tome o valor de MODE_MARGINREQUIRED e multiplique por MathAbs(quantidade de lotes unidirecionais);

Bem, e tudo o mais, também, tente considerar em ...

SZY. Eu não estava pensando muito aqui - então entre fazer algumas piadas - eu admito omissões, então tome apenas como um possível curso de ação... :)

 

Então... a lógica se torna clara. Obrigado! Vamos tentar verificar isso agora.

A propósito, eu fiz uma experiência sobre a DEMO:

primeiro COMPRAR com preço de lote 0,1 1,27339 - mostrou Bail=1273,39. Ie 0,1 * 1000000 * 1,27339/100.

A segunda SELL por lote 0,26 preço 1,27039 - apresentou Bail=3305,18 total. E é muito semelhante a este 0,26*1000000*1,27039/100=3303,01 ???? Estranheza?

Acontece que o depósito é retirado do número máximo de lotes que se sobrepõem aos pedidos abertos na direção oposta?

Aguardando a abertura da próxima COMPRA

 
eugggy:
Boa tarde a todos. Existe uma definição clara do termo operador ou é como "qual é o significado da vida" (você não pode explicar)?

:) Um operador como tal é um termo elástico - ele também pode ser o operador de uma máquina de luar... :)

Você faria perguntas no contexto em que você quer o significado da palavra. Espero que não seja uma sentença muito longa :)

 
eugggy:
Boa tarde a todos. Existe uma definição clara do termo operador ou é como "qual é o significado da vida" (não pode ser explicado)?

=Commando. Ver wikipedia.

https://ru.wikipedia.org/wiki/%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)

 
ikatsko:

Então... a lógica faz sentido. Obrigado. Vamos tentar verificar isso agora.

A propósito, eu fiz uma experiência sobre a DEMO:

primeiro COMPRAR com preço de lote 0,1 1,27339 - mostrou Bail=1273,39. Ie 0,1 * 1000000 * 1,27339/100.

o segundo lote de VENDA 0,26 preço 1,27039 - apresentou um total de Bail=3305,18. E é muito semelhante a este 0,26*1000000*1,27039/100=3303,01 ???? Estranheza?

Acontece que o depósito é retirado do número máximo de lotes que se sobrepõem aos pedidos abertos na direção oposta?

Aguardando a abertura da próxima COMPRA

Eh... Gostaria de ter tempo para pensar sobre isso... :) É uma tarefa interessante, mas estou pressionado pelo tempo.

Penso que se há uma semelhança, mas não uma semelhança, então não é verdade. É apenas uma estranheza... :) Tente calcular a diferença para o lote máximo...

Para tal "estranheza", os Dezlas terão suas pernas arrancadas por clientes sérios. :)

Você tem que pensar em outra direção...

Aguardando seu próximo pedido :)

 
eugggy:
(risinho): (risinho): (como o operador da máquina de luar...)) Se eu entendi corretamente, o operador (também na MQL4) é a menor e mais significativa expressão no programa code.... algo como isto.

О ... mãe-avó... Você não pode viver sem ele? De pé em uma rede? Por que complicar sua vida?

Leia-o aqui... e é o fim de tudo...

 

No entanto, como às vezes perguntas simples se confundem :) (quero dizer, o operador).

Eu encontrei a definição mais acessível (simples) em BSE:

"Na informática, uma prescrição... com a intenção de especificar alguma ação completa"...

E aqui na documentação:

"Um operador é parte de um programa... prescrevendo uma certa ordem de conversão de informações".

Assim, a função comporta-se da mesma maneira...

Interessante.