Cálculo do tamanho da posição
31 respostas
ssdex
8 anos atrás #113883
Olá,
Estou tentando descobrir como criar uma variável para calcular o tamanho da posição.
Exemplo:
Criar uma variável para o tamanho do risco
Atribuir essa variável à quantidade para a negociação
O problema que estou tendo é que o SL na negociação é calculado, não é um número fixo. Portanto, o SL é calculado a partir do preço de abertura até a oscilação de alta ou baixa, dependendo da direção da negociação.
Existe uma maneira de criar uma variável que calcule o tamanho da posição antes de a negociação ser aberta? Isso não parece ser possível.
ssdex
8 anos atrás #132495
Olá,
Estou tentando usar um multiplicador como uma "variável" para o tamanho da minha negociação. Alguém sabe se o multiplicador precisa ser um "Double" (duplo) ou se deve/pode ser um "Integer" (inteiro)? Além disso, qual seria a diferença se eu usasse um Double em vez de um Integer?
Obrigado.
Cumprimentos,
James
seaton
8 anos atrás #132496
O dobro lhe dará um grão mais fino, por exemplo, 1,25 ou 1,75, em vez de apenas 1 ou 2
Nesse caso, eu escolheria o dobro
ssdex
8 anos atrás #132497
Obrigado, Seaton,
Gostaria de saber se você poderia responder a outra pergunta que tenho. Estou calculando o valor do pip e não vejo uma maneira de fazer isso com taxas cruzadas. Como a conta está em dólares americanos e estou calculando o valor do pip com, digamos, o EURGBP, seria necessário calcular a taxa atual do dólar americano para obter o tamanho correto do lote para a negociação. Estou pensando corretamente? Em caso afirmativo, você sabe como isso pode ser feito?
Mais uma vez, obrigado por sua ajuda.
Cumprimentos,
James
seaton
8 anos atrás #132498
Não fiz isso com o EA Wizard, mas aqui está um trecho de código para o MT4, o MarketInfo deve retornar valores na moeda de depósito
double PipValue=(((MarketInfo(Symbol(),MODE_TICKVALUE)*point)/MarketInfo(Symbol(),MODE_TICKSIZE))*LotSize); double PointValue=PipValue/10;
ssdex
8 anos atrás #132521
Mais uma vez, obrigado, Seaton. Isso será de grande ajuda (se eu descobrir como usá-lo). LOL
Cumprimentos,
James
ssdex
8 anos atrás #132876
Mais uma vez, obrigado, Seaton,
Gostaria de saber se você poderia esclarecer a fórmula acima. É possível usar esse cálculo para calcular pares de taxa direta, taxa indireta e taxa cruzada?
Ou isso é apenas para pares de taxas cruzadas?
Obrigado.
Cumprimentos,
James
ssdex
8 anos atrás #133025
Não fiz isso com o EA Wizard, mas aqui está um trecho de código para o MT4, o MarketInfo deve retornar valores na moeda de depósito
double PipValue=(((MarketInfo(Symbol(),MODE_TICKVALUE)*point)/MarketInfo(Symbol(),MODE_TICKSIZE))*LotSize); double PointValue=PipValue/10;Acabei de dar uma olhada rápida no EA Wizard e algumas das funcionalidades não estão implementadas, portanto, sua melhor opção é copiar e colar o que foi dito acima em uma função personalizada.
Olá, seaton,
Espero que você tenha tido um ótimo fim de semana. Estou tentando descobrir como usar o trecho de código acima para obter o PipValue para as diferentes taxas. Estou recebendo alguns erros no MetaEditor (veja a imagem anexa).
Não tenho certeza se preciso criar uma variável para eles ou não. Ou talvez eu não a esteja usando corretamente.
Qualquer ajuda seria muito bem-vinda. Obrigado por seu tempo e conhecimento.
Cumprimentos,
James
PS - Esqueci de carregar a captura de tela.
seaton
8 anos atrás #133044
Olá, desculpe-me pela resposta tardia, estou ausente no momento, então darei uma olhada quando voltar para casa na próxima semana
tomas262
8 anos atrás #133058
ssdex, o compilador não sabe o que "LotSize" e "Point" significam; você precisa declarar essas variáveis no início do script. Aqui está o exemplo de como definir uma variável http://docs.mql4.com/basis/variables
ssdex
8 anos atrás #133067
Obrigado, Tomas262
Declarei a variável, mas não tenho certeza se preciso definir a variável como =0 ou como outra coisa. Vou continuar mexendo e ver o que consigo descobrir. Mais uma vez, obrigado.
Cumprimentos,
James
ssdex
8 anos atrás #134129
Olá, seaton,
Mais uma vez, obrigado pelo trecho de código acima. Aprendi muito com este fórum e com vocês, que nos ajudam.
Tenho uma variável que é (PipValue) e tudo o que preciso fazer é atribuí-la para igualar a CustomFunction (PipValue)? Veja a captura de tela.
Se:
CrossRate é verdadeiro
Então:
AssignVariable: CustomFunction: PipValue=PipValue
Mais uma vez, obrigado por tudo o que vocês fazem neste fórum.
Cumprimentos,
James
ssdex
7 anos atrás #139442
Olá,
Bem, voltei a tentar descobrir o cálculo do tamanho da posição. Tenho o EA configurado em MM, arriscando uma porcentagem definida (variável). Pelo que entendi, se a porcentagem for definida como 0 (zero), o padrão será (LotsIfNoMM). Estou querendo definir um valor de $dollar para o risco se a opção de porcentagem for definida como zero.
Criei algumas variáveis:
stop_in_pips
lotes_para_negociação
Acho que fiz os cálculos corretamente, mas parece que não importa o tamanho do $dollar que eu insira, ele sempre retorna um tamanho de lote de 0,01
Se alguém puder esclarecer o que eu entendi de errado, ficarei extremamente grato.
Cumprimentos,
James
tomas262
7 anos atrás #139450
Olá,
Não vejo nenhum problema. Você pode carregar seu projeto? Você pode excluir todas as condições de negociação para não divulgar seu sistema.
Além disso, você pode usar a função "Log to Journal" para gravar valores de variáveis no MT Journal e ver seus valores quando o sistema estiver em execução
ssdex
7 anos atrás #139453
Obrigado, Tomas,
É apenas uma estratégia de teste. Anexei o que tenho até agora. Estou tentando entender essa questão do dinheiro. Achei que o tinha, mas parece que há algo errado em algum lugar. Coloquei um registro no diário e ele não registrou nada. Também posso ter entendido errado. LOL
Diga-me o que você acha que é o problema. Obrigado por sua atenção. Tenho uma pergunta sobre o SQ. Podemos carregar uma estratégia que criamos no EA Wizard e fazer com que ela seja testada novamente e otimizada no software SQ?
Mais uma vez, obrigado.
Cumprimentos,
James
tomas262
7 anos atrás #139457
Olá,
Você não deve usar o "MM predefinido" se calcular seu tamanho manualmente. Predefinido significa que ele segue suas próprias regras internas para calcular o tamanho.
Verifique também se sua corretora suporta microlotes, caso contrário, você precisará usar MathRound(lots_to_trade, 1)
Sim, o novo SQ4 terá o Wizard incluído para que você possa usar, testar e otimizar suas próprias regras