¿XAUUSD tamaño de lote incorrecto en la cuenta denominada en GBP? - página 2

 
DomGilberto:
No es una cuenta de spread betting.

@WHRoader - ¿Qué quieres decir con que no quiero puntos en ese cálculo? :s?

¿Cómo puedo aplicar el riesgo correcto a la operación dada en base a la distancia al stop si no incluyo puntos en la fórmula...? (confundido).

23,64 || 2.364 puntos... Eso es lo que estoy tratando de conseguir mi cabeza alrededor de ... Para ser franco, estoy convencido de que estoy aplicando muy poco las posiciones de 1 onza troy porque tengo una cuenta denominada en libras esterlinas... Sólo necesito que alguien me diga que estoy bien / mal de lo que he mostrado?


Sólo una idea rápida y corrígeme si me equivoco... estás asumiendo que el cálculo del tamaño de la posición es incorrecto porque cuando tienes una pérdida no estás perdiendo el %age que querías arriesgar... estás teniendo en cuenta el spread en el cálculo... si no es así podría ser fácilmente más notable en este símbolo ya que tiende a tener un spread más grande.
 

@ RaptorUK - Cuando digo que el tamaño de la posición es menor de lo que debería ser, me refiero a casi la mitad...

Si la posición llega a su primer objetivo, debería sacar el 25% si es el caso, si no, cerrar 1 lote mínimo | 1 onza troy. El riesgo monetario global de esta operación equivale a aproximadamente 75,00 libras esterlinas de riesgo .... La operación con el XAUUSD está a poco más de 2/3 de la toma de beneficios en el primer objetivo... el P & L abierto actual en esa posición es de aproximadamente 18,00 libras esterlinas....

Ahora, con la misma fórmula aplicada a todos los pares de divisas que he operado hasta ahora; son tan precisos como necesito que sean... Sólo el Oro y la Plata no lo son... El spread en estos pares no sería nada material debido al hecho de que no estoy disparando para 5-20 puntos.. Las paradas y los objetivos son la mayoría de las veces aprox. 80-250 puntos...

 
GumRai:

¿Puede mostrar su código que resulta en esta impresión?

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: loss_for_1_lot1 formula: 23.64 / 0.01 * 0.01 = 23.64

Tal vez podría añadir esta impresión

Print("Moneda de la cuenta = ",Moneda de la cuenta() );

para confirmar que usted está realmente el comercio de GBP en el ST porque no puedo ver ninguna manera de que tv puede 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
Te puedo asegurar que es en libras esterlinas...

¿Qué quieres decir con mostrar el código que resulta en esa impresión, lo tienes ahí?
 
DomGilberto:

Te aseguro que es en libras esterlinas...

¿A qué te refieres con mostrar el código que da como resultado esa impresión, lo tienes ahí?

Esa es la salida del Print(), no el código . . puede mostrar el código que da esa salida, la declaración real de Print( . . . ), tenemos que ver donde usted está recibiendo el valor de la garrapata, porque algo está mal con él. De hecho, parece que está imprimiendo ts (Tick Size) dos veces...

23,64 / 0,01 * 0,01 = 23,64 es incorrecto, 0,01 * 0,01 = 0,0001 y 23,64 / 0,0001 = 236400

 
Bien, aquí 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 );
         } 


Aquí es también una impresión de ticksize y tickvalue en la cuenta real bajo 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 y Tickvalue serían ambos el mismo @ 0.01? 0.01 es el tick y por cada movimiento de tick equivaldría a una fluctuación de 0.01 centavos en P & L en el tamaño de posición más pequeño... suponiendo que tuviera una cuenta en USD, sería preciso...

¿No le parece correcto?

Además:

"23,64 / 0,01 * 0,01 = 23,64 es incorrecto, 0,01 * 0,01 = 0,0001 y 23,64 / 0,0001 = 236400"

Sí - Esto sería correcto si aislé la fórmula de esta manera:

"23.64 / ( 0.01 * 0.01 ) = 236400 "

Pero como es una fórmula constante, la respuesta es correcta en términos de producir 23,64... Es si este número es o no el número correcto de acuerdo con poblar el tamaño de la posición correcta?

 
DomGilberto:
Ok aquí está:



Aquí es también una impresión de ticksize y tickvalue en la cuenta real bajo XAUUSD:


Lo siento, mi cálculo anterior estaba mal. . .

Todavía no has mostrado el código que produce esta impresión. . .

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

. . pero no importa.

Tick Value - Valor del tick en la moneda del depósito.


Mi entendimiento es cuánto vale 1 punto, en la moneda de depósito, para 1 lote estándar - en mi gráfico para una cuenta de USD para XAUUSD TickValue es 1.06908

 

¿Qué? Eso no tiene ningún sentido para mí - ¿Cómo es que el valor de la garrapata que estoy viendo es simplemente devolver 0,01 ...

El código está todo ahí arriba ^?

double loss_for_1_lot = pips_to_bsl/ ts * tv ;

"loss_for_1_lot" es justo lo mismo que "loss_for_1_lot1", pero está en el lado de la compra... lo siento por ir y venir del lado de la compra al de la venta, simplemente cojo lo primero que se imprime en ST, ya sea una compra o una venta...

¿Quién es tu broker? ¿Tendrá algo que ver el valor de mi tick con el hecho de que esté denominado en GBP? (confundido)

 
Ok - Así que compruebo con Alpari UK y me devuelven esto - Esta es una cuenta denominada en GBP...
2013.11.11 13:57:37     Pip value XAUUSD,H1: Alert:  Tick Value is: 0.0626 -- Tick Size is: 0.001
 
DomGilberto:

¿Qué? Eso no tiene ningún sentido para mí - ¿Cómo es que el valor de la garrapata que estoy viendo es simplemente devolver 0,01 ...

Tal vez tu Broker lo ha estropeado... eso pasa a veces.

DomGilberto:

El código está todo ahí arriba ^?

"loss_for_1_lot" es justo lo mismo que "loss_for_1_lot1", pero está en el lado de la compra... perdón por pasar de un lado a otro de la compra a la venta, simplemente cojo lo primero que se imprime en ST, ya sea una compra o una venta...

Nope . . . el Print("loss_for_1_lot1 formula: ", . . . ) no está ahí . . .

DomGilberto:

¿Quién es tu broker? ¿Tendrá algo que ver el valor de mi tick con el hecho de que esté denominado en GBP? (confundido)

Lo probé con GoMarkets, en Alpari en una cuenta de GBP obtengo 0.626 . . . toma esto y multiplícalo por GBPUSD y obtienes 0.626 * 1.5974 = 0.999 así que esto concuerda con mi valor anterior en una cuenta basada en USD de 1.06908 teniendo en cuenta diferentes Brokers y precios de símbolos, etc.
Razón de la queja: