Estoy revisando la lógica del modulo de ajuste para equalizar los pares. Es decir, si por ejemplo deseo igualar el valor pip de cada par que tengo abierto, pues lo hago de la siguiente manera....
- Código: Seleccionar todo
PrevLotFloat = mUnidades / parCotiza * parBase; // CONVERTIR UNIDADES PROPUESTAS EN SU EQUIVALENTE EN DIVISA BASE DE LA CUENTA
if(PrevLotFloat != mUnidades) // CONDICION PARA OBTENER LOTE AJUSTADO EN DIVISA COTIZADA
{
LotAdjust = ((mUnidades * mUnidades )/ PrevLotFloat)/1000000; // FORMULA QUE DEVUELVE EL LOTE AJUSTADO EQUIVALENTE A EL LOTE PROPUESTO
}
if(PrevLotFloat == mUnidades)
{
LotAdjust = PrevLotFloat/1000000;
}
if (LotAdjust<=0.001)
{
LotAdjust=0.001;
}
Y bueno, ya después se carga en el createOrder el LotAdjust que tras todo lo anterior nunca podrá ser menor a 1000 unidades.
Mi problema radica básicamente en la lógica de calculo, según mi propuesta todos los pares USD quedan con el mismo valor/pip, pero chequeando en la calculadora de dukas https://www.dukascopy.com/swiss/spanish ... alculator/ veo lo siguiente.......
- EURUSD = 100000 unidades = 10 USD/pip.
- GBPUSD = 100000 unidades = 10 USD/pip.
- AUDUSD = 100000 unidades = 10 USD/pip.
- USDCAD = 100000 unidades = 8,17 USD/pip.
- USDCHF = 100000 unidades = 10,5 USD/pip.
- USDJPY = 100000 unidades = 8,41 USD/pip.
Según esto, cambia si entras comprado en divisa X con deuda en USD de si entras comprado en USD con deuda en divisa X. SI fuera así la formula no me sirve y menos aún para pares cruzados donde ni se compra ni se vende USD.
Bueno, no se si me expliqué bien . Cualquier ayuda es bien recibida porque llevo semanas con la formula mal.