Cálculo correto do lote a partir da % do depósito - página 2

 
Roger:

Claro que me enganei, o verdadeiro é 100*100*100/100/100000=0,1

ah, desculpe, eu estava olhando para o ouro... então nada de comércio de ouro usando sua fórmula agora ?

Mas ainda assim, mesmo os Kiwis provavelmente não comprarão tanto, e se você pegar o Eurobucks, há até um limite de cerca de 0,05 (estamos falando de dinheiro real) ...

 
Por que você está torcendo as coisas? Se você não gosta, não coma, ou melhor, se você não sabe como usá-lo, não se preocupe. Se você o tivesse colocado na fórmula corretamente, teria funcionado, mesmo em ouro.
 
Roger:
Bem, por que torcê-lo, se você não gosta, não comê-lo, ou melhor, se você não sabe como usá-lo, não se preocupe. Se você colocá-lo na fórmula corretamente, ele funcionaria, mesmo em ouro.

...puxando o obturador...

O que devo fazer se eu colocar os parâmetros acima para abrir uma ordem de mercado?

 
keekkenen:

o parafuso está sendo sacudido...

O que você quer dizer se não gostar, não comer? O que você tem que fazer para abrir uma ordem de mercado usando os parâmetros que mencionei acima?


O que isso tem a ver com humor? Você foi o primeiro a vir e começar - a fórmula está errada, e por que você precisa dela? Mesmo sem entendê-lo, por um palpite, não será pior se você cagar nele primeiro.

Se o dólar vem em segundo lugar, a fórmula de cálculo é diferente.

Os fatos, a propósito, também são distorcidos.

 
Roger:
Se você não gosta, não coma, ou para ser mais preciso, se você não sabe como usar, não se preocupe. Se você colocá-lo na fórmula corretamente, tudo funcionaria, mesmo em ouro.

Bem, digamos que abrimos com tal (0,1) lote, surge uma pergunta razoável e quantos pontos restam antes do tio Kolya, quanto tempo podemos aguentar?

Mas existem outras ordens, elas não "se sentam ociosas" em outros pares também, elas descem e o tio Kolya - bate, bate, como devemos lidar com isso quando há dinheiro real em jogo?

 
Então que tipo de normal abriria em 100% do depoimento? O objetivo era - eu quero abrir com 5% do meu dinheiro de reserva, quanto seria em lotes. Nenhum outro pensamento foi seguido.
 

keekkenen:

Se tivermos 100 libras, 100 de alavancagem e 100% de risco, ou seja, abrimos ao máximo, o que conseguimos?


keekkenen:

Bem, digamos que abrimos com tal (0,1) lote, surge uma pergunta razoável, e quantos pontos restam ao tio Kolya, quanto seremos capazes de suportar?

Mas existem outras ordens, eles também não "se sentam ociosos" em outros pares, eles descem e o tio Kolya bate à porta, como se deve lidar com isso quando há dinheiro real em jogo?

Você costuma abrir uma posição com todo o depósito, e até mesmo com uma conta real (e com ouro)?

Como você vê os resultados?

 
wenay:
Este é muito melhor, não há cálculo de alavancagem com outra forma de fazê-lo. Eu gosto muito do cálculo do lote baseado na % do depósito a uma determinada distância de pips. ou seja, "para drenar 20% do depósito em 10 pips = você precisa de ?lote" esta função pede e calcula

Não notei nenhuma mudança nos cálculos, o valor tik era = 1 e permanece o mesmo quando se muda a alavancagem, e também se pode perder quando se muda a alavancagem.

Você pode verificar você mesmo com o script sua função, primeiro abrindo uma conta demo com alavancagem 1/200 e abrir outra conta com o tamanho de 1/100 mudanças no tamanho do lote não acontece e tikvalue como era 1 e permanece, na minha opinião a maneira mais fácil é apenas fazer a alavancagem inicial em variáveis externas e saltar dela nos cálculos tem funcionado, quando você muda a alavancagem na máquina para uma menor imediatamente o lote é calculado sobre a menor alavancagem.

int start()
  {

   double  tic  = MarketInfo( Symbol(), MODE_TICKVALUE ); 

   Comment(
   "AccountLeverage  =  ",AccountLeverage() ,"\n",
   "LotSize =  ",DoubleToStr(LotSize(OP_BUY,20,300),2)," TickValue =  ",DoubleToStr(tic,2) );

   return(0);
  }
//+------------------------------------------------------------------+
double LotSize( int type, double LotRisk, int SL  )
{   //    int znakov_lot=0;
        double  lot_min         = MarketInfo( Symbol(), MODE_MINLOT  ); 
        double  lot_max         = MarketInfo( Symbol(), MODE_MAXLOT  ); 
        double  lot_step        = MarketInfo( Symbol(), MODE_LOTSTEP ); 
        double  lotcost         = MarketInfo( Symbol(), MODE_TICKVALUE );       
                
        double  lot             = 0.0;
        double  dollarsPerPip   = 0.0;
        
        lot = AccountBalance()*LotRisk/100.0;
        dollarsPerPip = lot/SL;
     //   if (lot_min<2) {znakov_lot=0;  if (lot_min<0.2) {znakov_lot=1;  if (lot_min<0.02) {znakov_lot=3;  if (lot_min<0.002) {znakov_lot=4; }}}}      
        lot = NormalizeDouble( dollarsPerPip/lotcost, 2 );      
        
        lot = NormalizeDouble( lot / lot_step, 0 ) * lot_step;
        
        if ( lot < lot_min ) lot = lot_min;
        if ( lot > lot_max ) lot = lot_max;
        
        if ( AccountFreeMarginCheck( Symbol(), type, lot ) < 10 || GetLastError() == 134 ) 
        { 
                Alert ( "Impossible to open position with lot = ", DoubleToStr( lot, 2 ), ". Not enough money." );
                return(-1);
        }

        return( lot );
}
 
Para que serve o NormalizeDlouble() no cálculo de lotes?
 
wenay:
Este é muito melhor, aqui não há cálculo de alavancagem. Eu realmente gosto do cálculo do lote na % do depósito para uma determinada distância de pps. ou seja, "para drenar 20% do depósito em 10 pps = você precisa de ?lote" função esta pergunta e conta

lot = AccountBalance()*LotRisk/100.0;
mas certamente aqui deveria ser AccountBalance e não AccountFreeMargin, então talvez não um especialista por um lote?