Detecção de 5 dígitos - página 5

 
jjc:
...Se você estiver construindo um sistema para outras pessoas usarem, não apenas para você mesmo, então a capacidade de inserir valores em pips é uma grande consideração de facilidade de uso. O consumidor médio sabe o que eles significam com 50 pips, mas tem que pensar muito, e verificar se eles significam um valor de 0,005 ao invés de 0,0005 ou 0,05 ou o que quer que seja....

Sim, foi o que eu disse: "A definição pareceria importante para um desenvolvedor que quer programar um programa padrão comercial e quer que o usuário tenha a flexibilidade de imputar exatamente quanto o soro de leite de dólar quer arriscar". Permito-me discordar sobre o consumidor médio sabendo o que eles significam com 50 pips. As pessoas da IMO gostam de pensar em dólares ou em unidades padrão de sua moeda base. Eu listaria minha experiência pessoal de como eu andei para frente e para trás na definição de um pip/ponto, mas isso pode ser demorado.

Se você não é um programador SUPER com ANOS de experiência Forex sob seu cinto, não adianta tentar codificar um programa comercial universal aplicável para os usuários finais. Quando alguém compra um EA, espera, acima de tudo, que ele seja lucrativo. Em segundo lugar, eles esperam que o programa seja Flexível além da crença. Como o comando para fechar todos os pedidos b4 finais de semana e Deixe-me especificar quanto dinheiro eu quero arriscar, etc. Como todos sabemos, já é difícil programar qualquer EA Rentável sem torná-lo estático a um Quadro de tempo ou Moeda, etc.

Mas aqui você está tentando programar uma EA Comercial para Average Joe's que ouviu falar de 2% de risco e "não negocie durante os finais de semana". E querem especificar exatamente 20$ de perda em GBP/JPY enquanto sua moeda base estiver em USD. O sistema foi projetado para usar uma porcentagem de ATR, quaisquer que sejam os pip/pontos ou dólares que possam ser. Agora o sistema inteiro está quebrado, pois não atenderá às expectativas do usuário final #1 rentável. No entanto, se alguém está fazendo uma ferramenta para os usuários finais brincarem, isso é uma história diferente.

IMO, se eu mesmo/pessoalmente fosse fazer um sistema que eu quisesse que minha tia ou meu irmão Lil trocasse. Eu o tornaria o mais flexível possível, pois a única coisa que eles poderiam especificar seria o Risk% e qualquer outro perímetro com o qual o programa não foi projetado para trabalhar seria rejeitado, ou seja, você especificaria o prazo ou a moeda errada. Por mais verdadeiro que seja, a maioria dos sistemas comerciais por aí permite que os usuários especifiquem em Pips. O programador não pode ser responsabilizado se o usuário final cometer erros como "oh eu só queria risco de $100, mas acabei com $1000". Ele entrou em 100 paradas de pip, mas alavancado a 1000:1. A menos que você vá alertar cada volta e aviso dentro de sua programação, é inútil.

 
andydcoles:

A única coisa para a qual a MQL4 usa Pips é na codificação Spread value nos pedidos de pedidos. Tudo o mais é especificado em termos de taxa. Uma alternativa a ser considerada é usar diferenças de taxa de câmbio como parâmetros de entrada para T/P, S/L etc. Por exemplo, especifique 0,0050 para um 50 Pip S/L. Isto funciona independentemente dos Dígitos, e só precisa ser escalado em 100 ao detectar "JPY" em Symbol() como a moeda de cotação. Isto é viável para todos os 21 pares maiores (todos os pares USD, EUR, GBP, JPY, CHF, CAD, AUD) e provavelmente para os pares menores também (que poucos negociam devido a spreads mais altos). Se você está realmente preocupado com a "prova de bala", você poderia fornecer uma cadeia de moedas e um multiplicador como parâmetros de entrada (como JPY e 100). Isto também pode ser estendido para exóticos com diferentes corretores.

Eu realmente acho que este é em grande parte um ponto mudo com a maioria dos codificadores MQL4; quando eles implementam e depuram com sucesso um algoritmo de negociação lucrativo, eles o usarão em sua própria conta Live. Poucos quererão vendê-lo ou oferecê-lo porque o mercado provavelmente se ajustará para neutralizar o algoritmo.

Obrigado por sua resposta, Andy. Mas eu tenho as funções resolvidas agora. Olhando para os meus últimos posts, sei que estava meio obcecado com aquilo da barragem naquela época :). Acho que eu estava procurando mais pelo cálculo subjacente de Point, TickSize, etc, em vez de "à prova de bala" meu código. 7bit iniciou a linha procurando uma maneira de detectar o preço de 5 dígitos programmaticamente. E consequentemente, cresceu para encontrar/explorar as definições das variáveis pré-definidas do MarketInfo-s. Mais uma vez, obrigado pela sua contribuição.
~cameo

 

If you are building a system for other people to use, not just for yourself, then the ability to enter values in pips is a major ease-of-use consideration. The average punter knows what they mean by 50 pips, but has to think quite a lot, and double-check, whether they mean a value of 0.005 rather than 0.0005 or 0.05 or whatever. The ability to enter parameters in pips matches how most end-users think in the forex world, and reduces errors. It also offers the prospect of being able to use the same parameter values on 2/3 and 4/5 digit symbols. I don't have much exposure to the mass-market commercial EAs, but I've never seen one where such parameters were entered as a price differential rather than a pip value.

@Jjc : Fico feliz que alguém esteja na mesma página comigo nisto :). Eu iria com facilidade de uso & reduzindo erros a qualquer hora do dia :)

Isto. Pessoalmente eu não trabalho em pips, eu trabalho em pontos. Todos os dados de preços são dados em pontos. A diferença entre dois valores de preço está em pontos. Meu stoploss e meu ponto de saída estão todos em pontos...eles são um preço de mercado específico. A noção de pips é interessante, mas como a maioria aqui pode atestar, uma vez que você tente fazer a ponte entre a noção de pips e a de pontos você perde rigor e robustez, e para quê? [...]

@Phil : Eu posso apreciar a sua e outras formas diferentes de calcular os parâmetros de preço. Temos nossas próprias preferências, por que mudá-las se não sentimos necessidade de... Meu objetivo, como você deve saber, é explorar os cálculos subjacentes do MarketInfo para serem usados em diferentes instrumentos e corretores. Seu método de usar o preço é certamente uma maneira robusta e viável.

Se você não é um programador SUPER com ANOS de experiência Forex sob seu cinto, não adianta tentar codificar um programa comercial universal aplicável para os usuários finais. Quando alguém compra um EA, espera, acima de tudo, que ele seja lucrativo. Em segundo lugar, eles esperam que o programa seja Flexível além da crença. Como o comando para fechar todos os pedidos b4 finais de semana e Deixe-me especificar quanto dinheiro eu quero arriscar, etc. Como todos sabemos, já é difícil programar qualquer EA Rentável sem torná-lo estático a um Quadro de tempo ou Moeda, etc.

@Ubzen : Lols! Você não precisa ser um 'programador SUPER'. Confie em mim. E embora seja uma possibilidade, para mim a solução não era para ser usada para um programa comercial ou para ser 'flexível além da crença'. Eu só quero testar minhas estratégias em diferentes plataformas e instrumentos sem a necessidade de ajustar e verificar novamente os parâmetros.

Em pips versus dólar, posso oferecer uma analogia com a qual você provavelmente está familiarizado:

Digamos que eu quero apostar em um novo cassino. Eu trouxe $5000 de capital e estou disposto a arriscar 2% do meu capital. Mas a casa fornece fichas em Pontos! Os dólares em jogo são convertidos em fichas em Pontos, são denominados em 0,0001, 0,0005, 0,001 etc. Além disso, a tabela seguinte requer 10x a quantidade de fichas denominadas em um décimo da tabela anterior, e acrescente-se que a cor das fichas não é tão fácil de se fazer! Ok... Estou exagerando um pouco :))) mas você percebe meu ponto (trocadilho não intencional). Dólares ou moeda base não é universal IMO enquanto as batatas fritas são. Pips são mais fáceis porque não é uma fração e olhando para qualquer tipo de gráficos e instrumentos se virmos x pips de ganho / perda que rapidamente IMHO pode avaliá-los e compará-los.

PS : Eu editei e adicionei este post muito.... por que às vezes me sinto mal lendo alguns dos meus posts?

 

Uso agora as funções abaixo, e é utilizável através de diferentes corretores e instrumentos.

double vPoint; 
if(Digits == 2 || Digits == 4) vPoint = Point; else
if(Digits == 3 || Digits == 5) vPoint = Point*10; // I use this for my indies; call once on init() & use where Point supposed to be used in start() 

double Poin() 
{ 
   int d = Digits;
   switch(d){
   case 2 : {return(Point); break;}
   case 4 : {return(Point); break; }
   case 3 : {return(Point*10); break;}
   case 5 : {return(Point*10); break:}
   default : return;
} // I just come up with this. Untested but should be ok/robust. To be used to replace Point for trade parameters calculations. 

aplausos, ~ cameo

 

recentemente eu precisava disto, então eu o codifiquei. aqui está minha solução:

//minha observação é que 1% do subjacente é cerca de 100 pips.

//a 'Ponto' é a menor unidade incremental.

// então, eu apenas calculo o número de pontos que é de potência de 10 para 1% do subjacente.

// que a quantidade de pontos é de 100 pips.

duplo valor por 100 pips()

{

int k=3;

enquanto (MathRound((Bid*0.01)/(Point*MathPow(10, k)))==0)

{

k--;

}

//Comentário("1%=", DoubleToStr(Bid*0.01, 5), "-", DoubleToStr(Point*MathPow(10, k), 5), " por 100 pips");

return(Point*MathPow(10, k));

}

 
ubzen:

...Average Joe's que ouviram falar de "2% de risco" e "não negociam nos fins de semana"...


Você esqueceu "a tendência é seu amigo" - tente encaixar isso em uma estratégia abrangente...!

Você tem razão, os complementos ou funções (percebidas) "boas de se ter" podem não ajudar e muitas vezes prejudicarão a estratégia que a EA precisa seguir para ganhar dinheiro

-BB-

 
jesuscheung:

recentemente eu precisava disso, então eu codifiquei...


Este código funciona na verdade somente para moedas cotadas abaixo de 0,01 Bilhetes. Colocar Dow (TickSize 1) ou Ger30 (TickSize 0,5) não funciona.
 

cameofx: Digamos que eu quero jogar em um novo cassino. Eu trouxe $5000 de capital e estou disposto a arriscar 2% do meu capital. Mas a casa fornece fichas em Pontos! Os dólares em jogo são convertidos em fichas em Pontos, são denominados em 0,0001, 0,0005, 0,001 etc. Além disso, a tabela seguinte requer 10x a quantidade de fichas denominadas em um décimo da tabela anterior, e acrescente-se que a cor das fichas não é tão fácil de se fazer! Ok... Estou exagerando um pouco :))) mas você percebe meu ponto (trocadilho não intencional). O dólar ou a moeda base não é universal IMO enquanto as fichas são. Os pips são mais fáceis porque não é uma fração e olhando para qualquer tipo de gráficos e instrumentos se virmos x pips de ganho/perda que rapidamente IMHO pode avaliar e comparar.

Woah, uma analogia de cassino. Eu tinha perdido totalmente essa rs. Ok, eu posso cavar isso. Digamos que Average Joe entra em um novo cassino, ao invés de $5000, vamos fazer a matemática simples e dizer $100. Ele entrega ao lindíssimo crupiê 100 dólares Benjamin Franklin e o adorável crupiê lhe pergunta educadamente: "Senhor, como você gostaria de voltar?, em vermelho, verde ou meio-n-médio? Average Joe está totalmente confuso. Sua próxima pergunta para ela é "quanto é o Red, Greens e o que você quer dizer com Half-n-Half". É aqui que ela sorri, joga o cabelo para o lado e deixa cair os ombros com um suspiro porque sabe que está lidando com um noob. Se eu estou sentado ao lado de Average Joe, estou procurando as garçonetes de cauda de galinha. Ela começa a chegar na bandeja e levanta uma ficha proclamando "isto é uma ficha vermelha, vale 0,0001 pontos" .....(o quê!!! retenção é um cassino de verdade, mas vamos junto).... Average Joe ainda está confuso, e eu também estaria. Ele exclama: "Sim, mas quanto é em dólares". E ela responde, "são $5 dólares senhor" "e os verdes são $25" e "Meio-n-médio significa 2-verdes e 10-Redes".

Agora os pontos saem totalmente pela janela, Average Joe está fixado em Cores. É assim que a casa o faz, até mesmo um macaco pode distinguir as Cores. Average Joe quer parecer legal diz: "Bem... dê-me metade-e-metade então... bonita mamma". Eu ao lado deste cara, tenho o sorriso mais brilhante para não dar gargalhadas. De qualquer forma, é hora de apostar e Average Joe está pensando em 2% que quer ficar nesta mesa o máximo de tempo possível. O_o, ele precisa de $2, então ele pergunta ao negociante "existem fichas de 2$" e ela diz "sim, as brancas são 1$ e as cor-de-rosa são 2,50$ você gostaria de algumas". Ele diz "sim". Ela diz "me dê 2-Reds e eu lhe darei 10 Brancos (ela não está prestes a lhe dar todos os brancos em sua bandeja... ela precisa deles para converter... mas ela espera que você comece a dar gorjetas).

Ok!!, voltamos a apostar novamente. Nesse momento, Average Joe colocou 2 fichas brancas na mesa. Isto faz com que o revendedor congele. Ela olha para ele, torce o sinal para um ângulo visível e diz "é uma mesa mínima de 5 dólares Senhor". "A mesa mínima que oferecemos neste cassino é a mesa de 3 dólares onde" ela continua "é bem ali onde o cara Buff está negociando". Average Joe pensa nisso por um segundo, (2$ vs 3$....Gorgeous vs Fabillio ali) "nah, vamos jogar algumas cartas, ele exclama" puxa para trás suas 2 cartas e joga 2-Reds ali dentro.

Se este tivesse sido um cassino japonês, o formato ainda teria sido o mesmo, exceto que teria que ser mais longo para explicar o quanto vale um ponto.

 
1005phillip:

Isto. Pessoalmente eu não trabalho em pips, eu trabalho em pontos. Todos os dados de preços são dados em pontos.

Isso significa que cada vez que você muda de corretor (ou se o corretor muda repentinamente como o IBFX fez há vários meses) você tem que lembrar de mudar todos os parâmetros de sua EA de acordo. Como o deslizamento, 3 ou 30 pontos.

E quanto você perderá se esquecer um ou pior mudar de forma errada.

Muito mais fácil definir parâmetros do tipo não-percentual em pips e converter em pontos ou duplas quando necessário.

 
WHRoeder:

Isso significa que cada vez que você muda de corretor (ou se o corretor muda repentinamente como o IBFX fez há vários meses) você tem que se lembrar de mudar todos os parâmetros de sua EA de acordo. Como o deslizamento, 3 ou 30 pontos.

E quanto você vai perder se esquecer de um ou pior mudar de forma errada.

Muito mais fácil definir parâmetros do tipo não-percentual em pips e converter para pontos ou duplas quando necessário.


Na verdade, é exatamente o oposto. Minhas EA são codificadas para serem gerais o suficiente para que eu possa colocá-las em basicamente qualquer corretor MT4 com qualquer combinação de dígitos, etc, e a mecânica da negociação e estratégia são agnósticas aos parâmetros específicos do corretor subjacente. É quando você começa a programar com parâmetros mal definidos como "pips" que você abre a porta para problemas.

O que eu acho interessante é que se você já tem uma estratégia que se baseia em indicadores ou alguma compilação matemática envolvendo preços de mercado para a determinação de stoploss e obter lucro - seja ATR ou RSI ou níveis de resistência, etc - basicamente qualquer coisa além do trivial "Eu quero uma parada fixa de 30 pip trailing stop", então você não tem absolutamente nenhuma necessidade de estar trabalhando com pips em primeiro lugar.

Fazendo as coisas com pips fixos - por exemplo, 25 pip takeprofit ou 50 pip stoploss - para mim é uma tolice, porque o mercado simplesmente não funciona/funciona dessa forma, então você não pode realmente esperar ser lucrativo tentando tirar dinheiro dele, operando uma estratégia comercial dessa maneira. Tudo isso está acima de movimentos percentuais, níveis de resistência, etc. Coisas que são definidas pelo preço, não por pips.

Apenas a minha opinião, poderia ser totalmente falsa.

(PS - seu exemplo de mudanças do IBFX é um caso perfeito, meus EA não se importaram que o IBFX fizesse suas mudanças. Outro é a FXDD que recentemente neste verão mudou para 5 dígitos em um de seus servidores demo, eu nem percebi isso ou sabia que tinha acontecido até que eu estava revendo os números trimestrais e notei que os preços dos feeds tinham mudado)