XAUUSD lote de tamanho errado em conta denominada em GBP? - página 2

 
DomGilberto:
Não, não é uma conta de apostas spread.

@WHRoader - O que você quer dizer com "não quero pontos nesse cálculo"? :s?

Como posso aplicar o risco correto à determinada operação com base na distância até a parada se eu não incluir pontos na fórmula...? (confuso).

23,64 || 2.364 pontos... É isso que estou tentando fazer com que minha cabeça se mova... Para ser franco, estou convencido de que estou aplicando muito poucas posições de 1 onça troy porque tenho uma conta denominada em libras esterlinas... Eu só preciso que alguém me diga que estou certo / errado pelo que eu mostrei?


Apenas uma rápida reflexão e me corrija se eu estiver errado... você está assumindo que o cálculo do tamanho da posição está incorreto porque quando você tem uma perda você não está perdendo a % da idade que você queria arriscar... você está levando em conta o spread no cálculo... se não estiver, isso poderia facilmente ser mais perceptível neste símbolo, pois ele tende a ter um spread maior.
 

@ RaptorUK - Quando digo que o tamanho da posição é menor do que o que deveria ser, quero dizer, por quase metade...

Colocando desta forma, estou testando em uma pequena conta - Se a posição atingir seu primeiro alvo, deve estar decolando 25% se aplicável, caso contrário, feche 1 lote mínimo || 1 onça troy. O risco monetário global nesta operação equivale a aproximadamente £75,00 de risco.... O comércio XAUUSD está a pouco mais de 2/3rds do caminho para obter lucro na primeira meta... o P & L atual aberto nessa posição é de aproximadamente £18,00....

Agora, com a mesma fórmula aplicada a todos os pares de moedas que negociei até agora; eles são tão precisos quanto eu preciso que sejam... Apenas Gold & Silver não são... O spread nesses pares não seria nada material devido ao fato de que não estou atirando por 5-20 pontos... Paradas e alvos são, na maioria das vezes, aproximadamente 80-250 pontos...

 
GumRai:

Você pode, por favor, mostrar seu código que resulta nesta impressão?

double loss_for_1_lot1 = pips_to_ssl/ ts * tv ;

2013.11.08 23:40:30 2013.06.19 19:00 V1 - XAUUSD XAUUSD,H1: perda_para_1_lot1 fórmula :23.64 / 0.01 * 0.01 = 23.64

Talvez você possa adicionar esta impressão

Imprimir("Moeda da conta = ",Moeda da conta() );

para confirmar que você está realmente negociando GBP no ST porque eu não vejo como a TV pode ser 0,01


2013.11.11 10:13:12     2013.06.17 15:00  V1 - XAUUSD XAUUSD,H1:  Account # (deleted) -- leverage is 1:200 -- Account currency is GBP -- Minium Lots are: 1 -- Min Lot Step is: 1
Posso assegurar-lhe que é denominada em libras esterlinas.

O que você quer dizer com mostrar o código que resulta nessa impressão, você o tem lá?
 
DomGilberto:

Posso assegurar-lhe que é denominada em libras esterlinas.

O que você quer dizer com mostrar o código que resulta nessa impressão, você o tem lá?

É a saída da impressão(), não o código . . você pode mostrar o código que dá aquela saída, a declaração Print( . . . . ) real, precisamos ver de onde você está obtendo o valor do Tick porque algo está errado com ele. Na verdade, parece que você está imprimindo ts (Tamanho do Tick) duas vezes . . .

23,64 / 0,01 * 0,01 = 23,64 está incorreto, 0,01 * 0,01 = 0,0001 e 23,64 / 0,0001 = 236400

 
Ok, aqui está:

//+------------------------------------------------------------------+
//| Order Enter Function                                             |
//+------------------------------------------------------------------+
void OrderEntry(int direction)
{
   //Padding for the stop and padding for the entry too. 
   double ATR_Pad = iATR(NULL,60,14,1)/2; 
   double Buy_Pad = NormalizeDouble(ATR_Pad,Digits);
   double Sell_Pad = NormalizeDouble(ATR_Pad,Digits);
   
   //Stop calculations.    
   double ATR = iATR(NULL,60,14,1);
   double MA = iMA(NULL,60,MA_Period,0,1,0,1);
  
   //Lot calculation   
   double risk_amount = AccountBalance( )*RiskPercent/100;
   double Lot_Step = MarketInfo(Symbol(), MODE_LOTSTEP);
   double ts = MarketInfo(Symbol(), MODE_TICKSIZE);
   double tv = MarketInfo(Symbol(), MODE_TICKVALUE);
   double minlot = MarketInfo(Symbol(), MODE_MINLOT);
         
          
//+-------------------------------------------------------------------------------------+
//| Order Buy Function                                                                  |
//+-------------------------------------------------------------------------------------+   

//Place a pending buystop if no orders exists. Pending or otherwise.
if(direction==0)
{ 
      
      //Get Highest Price in our lookback range and set buy price above it.
      int iTBT = iBarShift(NULL,60, triggerBarTime, true),
      iHH = iHighest(NULL,60, MODE_HIGH, iTBT + CandlesBeforeBiasObtained, 0);
      double Buy_Here = High[iHH] + Buy_Pad;
      double buyPrice= NormalizeDouble(Buy_Here,Digits);
            
      double BuyStopPriceMath = MA - ATR;
      double BuyStopPrice = NormalizeDouble(BuyStopPriceMath,Digits);

      //get our buystop price from below the ma and our takeprofit based on our r:r ratio.
      double pips_to_bsl=buyPrice-BuyStopPrice;
      double buy_tp_price=(pips_to_bsl*RewardRatio)+buyPrice;
      double buy_takeprofit_price= NormalizeDouble(buy_tp_price, Digits);
      
      double loss_for_1_lot = pips_to_bsl/ ts * tv ;
      double LotSize_Buy = MathFloor( risk_amount / loss_for_1_lot/ Lot_Step) * Lot_Step ;

      double btp=buy_takeprofit_price;
      int PositionIndex1;    
      int TotalNumberOfOrders1;   
      TotalNumberOfOrders1 = OrdersTotal();   

      static double Stored_BuyPrice;

      if( OpenOrdersThisPair(Symbol())==0 && LotSize_Buy - minlot > - Point )
         {
         int BuyTicketOrder = OrderSend(Symbol(),OP_BUYSTOP,LotSize_Buy,buyPrice,3,BuyStopPrice,btp,NULL,MagicNumber,0,Green);
         if(BuyTicketOrder == -1)Print("First Buy Order Last Error = ",GetLastError(), " On: ", Symbol());
         if(BuyTicketOrder > 0)Print("FIRST BUY ORDER PLACED: ", Symbol(), " LotSize_Buy is: ", LotSize_Buy );
         } 


Aqui também há uma impressão do tamanho do ticksize e tickvalue na conta ativa sob XAUUSD:

2013.11.11 06:10:51  V1 - XAUUSD XAUUSD,H1:  Account # (CENSORED) -- leverage is 1:200 -- Account currency is GBP -- Tick Size is: 0.01 -- Tick Value is: 0.01
 

TickSize e Tickvalue seriam ambos o mesmo @ 0,01? 0,01 é o tick e para cada movimento de tick equivaleria a uma flutuação de 0,01 centavo em P & L no menor tamanho de posição... supondo que eu tivesse uma conta em USD, seria preciso...

Isso não soa bem?

Também:

"23,64 / 0,01 * 0,01 = 23,64 está incorreto, 0,01 * 0,01 = 0,0001 e 23,64 / 0,0001 = 236400".

Sim - Isto seria correto se eu isolasse a fórmula desta forma:

"23.64 / ( 0.01 * 0.01 ) = 236400 "

Mas como é uma fórmula constante, a resposta é correta em termos de produzir 23,64... É se este número é ou não o número correto de acordo com o tamanho da posição correta?

 
DomGilberto:
Ok, aqui está ele:



Aqui também está uma impressão do tamanho do ticksize e do valor do tick na conta ativa sob XAUUSD:


Desculpe, você meu cálculo anterior estava errado ...

Você ainda não mostrou o código que produz esta impressão . .

2013.11.08 23:40:30     2013.06.19 19:00  V1 - XAUUSD XAUUSD,H1:  loss_for_1_lot1 formula: 23.64 / 0.01 * 0.01 = 23.64

... mas não importa.

Valor do Tick - Valor do Tick na moeda do depósito.


Meu entendimento é quanto vale 1 ponto, na moeda de depósito, para 1 lote padrão - no meu gráfico para uma conta em USD para XAUUSD TickValue é 1,06908

 

O quê? Isso não faz nenhum sentido para mim - Como é que o valor do tick que estou vendo está simplesmente retornando 0,01...

O código está todo lá em cima ^?

double loss_for_1_lot = pips_to_bsl/ ts * tv ;

"loss_for_1_lot" é o mesmo que "loss_for_1_lot1", mas está no lado da compra... Desculpe por virar para trás e para frente do lado da compra para o lado da venda, eu só pego a primeira coisa que está impressa no ST, seja uma compra ou uma venda...

Quem é seu corretor? O valor do meu tick teria algo a ver com o fato de ser em libras esterlinas? (confuso)

 
Ok - Então eu verifico com a Alpari UK e eles estão devolvendo isto - Esta é uma conta denominada em GBP...
2013.11.11 13:57:37     Pip value XAUUSD,H1: Alert:  Tick Value is: 0.0626 -- Tick Size is: 0.001
 
DomGilberto:

O quê? Isso não faz nenhum sentido para mim - Como é que o valor do carrapato que estou vendo está simplesmente retornando 0,01...

Talvez seu Corretor tenha estragado tudo... isso acontece às vezes.

DomGilberto:

O código está todo lá em cima ^?

"loss_for_1_lot" é o mesmo que "loss_for_1_lot1", mas está no lado da compra... Desculpe por virar para trás e para frente do lado da compra para o lado da venda, eu só pego a primeira coisa que está impressa no ST, seja uma compra ou uma venda...

Não . . . a fórmula Print("loss_for_1_lot1": ", . . . . . ) não está lá . . .

DomGilberto:

Quem é seu corretor? O valor do meu tick teria algo a ver com o fato de ser em libras esterlinas? (confuso)

Eu tentei com a GoMarkets, na Alpari em uma conta em libras esterlinas eu recebo 0,626 . . . pegue isto e multiplique por GBPUSD e você recebe 0,626 * 1,5974 = 0,999, então isto concorda com meu valor anterior em uma conta baseada em dólares americanos de 1,06908, tendo em mente diferentes corretores e preços simbólicos, etc.
Razão: