pontos == pips? - página 5

 
angevoyageur:
Até termos um corretor que forneça 6 dígitos
Esse é um bom ponto . ... que se espere que isso não aconteça.
 
RaptorUK:
Existem corretores de 4 dígitos para o MT5 ? se houver, então você terá um ponto diferente em relação aos corretores de 5 dígitos. O ponto é o último dígito, mas para corretores de 4 e 5 dígitos não é o mesmo.

Minha definição para Pip retorna a mesma para Corretores de 4 e 5 dígitos, portanto, na minha opinião, é possível defini-la melhor do que ponto.
Se os corretores são realmente relevantes para definir o que é ponto na MQL5, é melhor MQ mudar a função para Point(string broker) ;-)
 

Também estou me debatendo com a definição de pips há muito tempo. Todo mundo parece ter isso diferente. E no topo disso, cada par tem um número diferente de dígitos no preço cotado e, portanto, 1 pip praticamente não existe. (Ele tem valor diferente em cada par). Acho que a única maneira de utilizar o valor monetário por mudança de preço é forçar todos os corretores a fazer o preço de 5 dígitos unificado para TODOS os símbolos. (incl. pares de moedas, metais, ações, etc.). Os corretores não fazem isso voluntariamente, porque não querem admitir que estão roubando muito mais. Se eles dizem "spreads apertados", eles na verdade significam que nós mostramos um número apertado (como 30 em Ouro), mas na realidade eles estão cobrando 30 apenas porque eles quioteiam 2 dígitos. O spread real é de cerca de 3000 pontos. Fiz para mim uma planilha para tentar superar esta confusão. Na realidade, meu corretor tem em alguns pares 5 dígitos, alguns outros pares 4 dígitos, alguns outros pares 3 dígitos e alguns até 2 dígitos. Quando descobri e escrevi para mim mesmo, descobri que se eu adicionar a quantidade desejada de zeros, eu faço um preço unificado e assim unifico o valor do dinheiro, por exemplo, por 1000 pontos em qualquer um dos cerca de 200 pares.

A idéia é que os corretores estão cobrando spreads, swaps e taxas de comissão, no topo desta confusão. Mas se o valor do preço for sempre de 5 dígitos, você saberá exatamente quanto dinheiro você ganha por 1000 pontos, independentemente do símbolo que você vai negociar.

Rapazes. Digam-me. Esta é uma idéia absolutamente louca? ou é viável? Poderia ser uma solução? para a questão de como saber exatamente "quanto dinheiro por mudança de preço em cada símbolo existente você recebe".

 
algum comentário sobre meu post anterior?
 
Vorobyov:
algum comentário sobre meu post anterior?
Na minha opinião, uma definição padrão de pip não é uma solução para nada, de qualquer forma não vejo sua idéia como uma loucura, como você afirmou, é apenas mais uma visão.
Para mim não é necessário tal padrão porque qualquer corretor ou plataforma pode nomear os pips conforme desejado para seus clientes, se eles quiserem, é apenas uma convenção e/ou acordo, se for o caso de alguma regra interna.
 

Olá a todos,

Não estou familiarizado com programação.

Existe algum método para calcular valores de pontos? Corretor de 4 dígitos e corretor de 5 dígitos, eu escrevi Programa como este é correto? ( eu não quero lidar com pips...LoL)

quando eu quero colocar 100 Take Profit escrevi assim, mas faz sempre Error 130

duplo calcPrice;

calcPrice= Perguntar+(100*Point()) ;////<<<<------ realmente comercializa ao preço pedido( Ou quando eu estava modificando o pedido >> OrderOpenPrice(); )

1.este método é correto para corretor de 4 dígitos e corretor de 5 dígitos????

2.Existe algum outro método que possa ser usado para todos esses requisitos?

3.Qualquer um pode ajudar no exemplo, OrderSend sem este erro de dígito


Qualquer Comentário será apreciado...

Obrigado

 

73398956Aipl: when i want put 100 Take Profit i wrote like this, but it makes Error 130 always

calcPrice= Perguntar+(100*Point()) ;////<<<<------ realmente comercializa ao preço pedido( Ou quando eu estava modificando o pedido >> OrderOpenPrice(); )

1.este método é correto para corretor de 4 dígitos e corretor de 5 dígitos????

  1. Você quer um corretor de 100 quê? Seu código gera 100 pontos. Se você quiser 100 PIPs, o valor estará errado em um corretor de 5 dígitos. Se você quiser 10 PIPs, o valor estará errado em um corretor de 4 dígitos.
  2. Seu código quebra se você trocar de corretor de 4/5 e não ajustar o valor. Ele se rompe se você trocar de servidor quando o corretor oferece tanto 4 como 5. Também se rompe se o corretor mudar durante o fim de semana para 5 dígitos, como aconteceu. Faça tudo em PIPs e ajuste (SL, TP, e slippage; para corretores de 4/5 dígitos e para pares JPY).
  3. Há o Tick, o PIP e o Point. Todos eles são diferentes em geral. Um carrapato é a menor mudança de preço. Um Ponto é o dígito menos significativo cotado. Em moedas, um pip é definido como 0,00010 (ou para JPY 0,010).

    Em um corretor de 4 dígitos um ponto (0,0001) = pip (0,0001). [JPY 0,01 == 0,01] Num corretor de 5 dígitos um ponto (0,00001) = 1/10 pip (0,00010/10). Só porque você cita um dígito extra, não muda o valor de um pip. (0,0001 == 0,00010) EAs devem ajustar pips a pontos (para mq4.) Em moedas, um tick é um ponto. O preço pode mudar pelo menos um dígito significativo (1,23456 -> 1,23457)

    Em metais, um Tick ainda é a menor mudança, mas é maior do que um ponto. Se o preço pode mudar de 123,25 para 123,50, você tem um TickSize de 0,25 e um ponto de 0,01. Pip não tem significado.

    É por isso que você não usa o TickValue por si só. Somente como uma relação com o TickSize. Ver DeltaValuePerLot()

 
Vorobyov:
algum comentário sobre meu post anterior?

Do meu ponto de vista, não existe uma definição fixa! É como em um jardim de infância, todo corretor faz o que quer! Recentemente eu tropecei em uma troca de três dias - que normalmente se aplica aos fins de semana - que é criada às quartas-feiras, não às sextas-feiras!

Portanto, para mim:

  • um ponto é que o que você recebe do corretor (=> _Ponto) e
  • uma pip é uma diferença de preços que tem um valor de ~10,-$ em uma conta de $, ou 10 euros em uma conta de $, para um lote (é minha definição técnica!!!).

Isso significa que se uma parada for colocada 10 pips abaixo da entrada eu arriscarei ~100 euros na minha conta de euros, não importa qual símbolo eu esteja negociando! Não importa quantos dígitos um ponto tenha ou qual seja o tamanho do lote...

Ao invés de se desesperar, aproveite a chance de não haver uma definição fixa, pois você também pode definir as coisas do jeito que quiser!!

É assim que eu faço:

bool Pip10(string sym,int &dig,double &pip,int &digis,double &pt,double refValue=10.0, const string from="") {
   // use: if (!Pip10(sym, DIG, PIP, DIGIS, PNT)){ ...
   pt             = SymbolInfoDouble(sym,SYMBOL_POINT);
   digis          = (int)SymbolInfoInteger(sym,SYMBOL_DIGITS);
   
   int      xp    = digis+1, XP = 0, n=200;
   double   tV    = SymbolInfoDouble(sym,SYMBOL_TRADE_TICK_VALUE ),  //MarketInfo(sym,MODE_TICKVALUE),///
            tS    = SymbolInfoDouble(sym,SYMBOL_TRADE_TICK_SIZE ),  //MarketInfo(sym,MODE_TICKSIZE),
            mL    = SymbolInfoDouble(sym,SYMBOL_VOLUME_MIN ),  //MarketInfo(sym,MODE_MINLOT),
            lV    = ( tS*tV == 0.0 ) ? 0.0 : tV/tS, // LotValue
            //pV    = mL*lV,
            //TV    = mL*tV, // tgt*MinLot*lV => n* MinLot * tV
            M,P1,P2, D1,D2,
            minD = 9999999999999.9,  minD2 = 9999999999999.9;
   while (lV < 0.00000000000001 && n-->0 && MQLInfoInteger( MQL_PROGRAM_TYPE ) != PROGRAM_INDICATOR) { // ~4sec in total
      Sleep(20); // try it for 10 sec, wait to get data
      pt    = SymbolInfoDouble(sym,SYMBOL_POINT);
      digis = (int)SymbolInfoInteger(sym,SYMBOL_DIGITS);
      xp    = digis+1;
      tV    = SymbolInfoDouble(sym,SYMBOL_TRADE_TICK_VALUE );  //MarketInfo(sym,MODE_TICKVALUE),///
      tS    = SymbolInfoDouble(sym,SYMBOL_TRADE_TICK_SIZE );  //MarketInfo(sym,MODE_TICKSIZE),
      mL    = SymbolInfoDouble(sym,SYMBOL_VOLUME_MIN );  //MarketInfo(sym,MODE_MINLOT),
      lV    = ( tS*tV == 0.0 ) ? 0.0 : tV/tS; // LotValue
   }
   if ( lV < 0.00000000000001 ) { Alert(sym," is NOT aivailable (yet?), called from ",from,"  err: ",err(_LastError)); pip=0.0; dig=-99; return(false); } // No connection yet
   //Print("ini Pip10(",sym,"..,ref:",DoubleToStr(refValue,2),")  Digits: ",digis," TickVal: ",DoubleToStr(tiV,2));
   while(xp>-9) {

      M  = pow(10,xp);
      P2 = M*lV*2.0;
      P1 = M*lV;
      D1 = fabs(P1-refValue);
      D2 = fabs(P2-refValue);
      
      if ( D2 > minD2 && minD > minD2 ) {
         dig = -XP;
         pip = pow(10,-dig)*2.0;
         if ( pip < tS) { Alert(sym,": PIP(",DoubleToString(pip,digis),") is SMALLER than Ticksize(",DoubleToString(tS,digis),") "); pip=0.0; dig=-99; return(false); }
         return(true);
      }

      if ( D1 > minD && minD2 > minD ) {
         dig = -XP;
         pip = pow(10,-dig);
         if ( pip < tS) { Alert(sym,": PIP(",DoubleToString(pip,digis),") is SMALLER than Ticksize(",DoubleToString(tS,digis),") "); pip=0.0; dig=-99; return(false); }
         return(true);
      }
      minD2 = D2;
      minD  = D1;
      XP = xp;
      xp--;

   }
   pip=0.0; dig=-99;
   Comment(sym," is NOT aivailable (yet?)");
   return(false); // not set :()
}
 
Carl Schreiber:

Do meu ponto de vista, não existe uma definição fixa! É como em um jardim de infância, todo corretor faz o que quer! Recentemente eu tropecei em uma troca de três dias - que normalmente se aplica aos fins de semana - que é criada às quartas-feiras, não às sextas-feiras!


É algo usual para aplicar a troca de três dias na quarta-feira.

Você pode verificar isso com :

SymbolInfoInteger(symbol,SYMBOL_SWAP_ROLLOVER3DAYS)
 
Alain Verleyen:

É algo usual para aplicar a troca de três dias na quarta-feira.

Você pode verificar isso com :

Para mim é um truque de mão!
Razão: