Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 462

 

¿O este diseño no servirá de nada si no hay garrapatas en el instrumento en cuestión?

#property strict

extern bool USE_Info=true;

static datetime TimeN=0;

//+------------------------------------------------------------------+

//| Expert tick function                                             |

//+------------------------------------------------------------------+

int start()

  {

   datetime TimeC=iTime("GBPUSD",5,0);

   if(TimeN==0)TimeN=TimeC;

   if(TimeN==TimeC) return(0);

   TimeN=TimeC;

   return(INIT_SUCCEEDED);

  } 

 

Ayúdame a resolver esto.

Por ejemplo, necesito abrir una posición en EURUSD con un stop de 30 pips y un TakeProfit de 30 pips. Antes de abrir la posición, necesito especificar el volumen del lote, para que una pérdida en una operación perdedora sea de 100 USD. ¿Cómo se puede calcular con MQL5?

SL=30;

Lote=Fórmula de cálculo

Me gustaría utilizar mi robot de trading como referencia.

 
PabloEs:

Ayúdame a resolver esto.

Por ejemplo, necesito abrir una posición en EURUSD con un stop de 30 pips y un TakeProfit de 30 pips. Antes de abrir la posición, necesito especificar el volumen del lote, para que una pérdida en una operación perdedora sea de 100 USD. ¿Cómo se puede calcular con MQL5?

SL=30;

Lote=Fórmula de cálculo

Se lo agradezco de antemano.

Para 4, puedes calcularlo así:

Lote=Dinero / (Cien_puntos*MarketInfo(Symbol(),MODE_TICKVALUE))

 
Artyom Trishkin:

Para un cuatrillizo, puedes calcularlo así:

Lote=Dinero / (Cien_puntos*MarketInfo(Symbol(),MODE_TICKVALUE))

Gracias, pero no me ha funcionado.
 
PabloEs:
Gracias, pero no me ayudó.

Ver SymbolInfoDouble() en lugar de MarketInfo()

¿Y qué quieres decir con que no ha servido de nada? No te he dado un pez, te he dado una caña de pescar.

 
Artyom Trishkin:

Ver SymbolInfoDouble() no MarketInfo()

¿Y qué quieres decir con que no funcionó? No te di el pez, te di la caña.

Soy demasiado joven para usar una caña de pescar)

He escrito un script utilizando la fórmula anterior

void OnStart()

{

//---

double Test=100/(300*_Point*SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE));

Alerta(Test);

Da 33333,33, ¿tal vez el troll se equivoca?

 
PabloEs:

Todavía soy demasiado joven para usar una caña de pescar)

Este es un script escrito usando la fórmula anterior

void OnStart()

{

//---

double Test=100/(300*_Point*SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE));

Alerta(Test);

Da 33333.33, ¿quizás el troll está equivocado?

Dinero /(Stoplos_in_points*MarketInfo(Symbol(),MODE_TICKVALUE))

Y lo cuentas en el precio

 
PabloEs:

Todavía soy demasiado joven para usar una caña de pescar)

Este es un script escrito usando la fórmula anterior

void OnStart()

{

//---

double Test=100/(300*_Point*SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE));

Alerta(Test);

Da 33333.33, ¿quizás el troll está equivocado?

Yo solía escribir esa fórmula

Lote = AccountFreeMargin()*Risk/100*_Point/(StopLoss*MarketInfo(Symbol(), MODE_TICKVALUE))

AccountFreeMargin()*Risk/100 --- esto es sus 100$.

StopLoss --- Diferencia entre los precios de la orden abierta y del SL (no en puntos)

En consecuencia, MarketInfo() debe sustituirse por SymbolInfoDouble()

 
PabloEs:

Todavía soy demasiado joven para usar una caña de pescar)

Este es un script escrito usando la fórmula anterior

void OnStart()

{

//---

double Test=100/(300*_Point*SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE));

Alerta(Test);

Da 33333.33, ¿quizás el troll está equivocado?

Mira lo que tienes, si en ruso, y en _Punto, igual a 0,00001:

Para ganar 100 dólares a una toma de 0,003 puntos (300*0,00001), el lote debe ser de 33333,33. Así que el troll está definitivamente equivocado ;)

 
Artyom Trishkin:

Dinero /(Puntos_de_grapa*MarketInfo(Symbol(),MODE_TICKVALUE))

Y lo cuentas en el precio

Exactamente. Cuando escribí esta fórmula, el SL no estaba definido por un valor específico, sino que se calculaba como la diferencia entre el precio de apertura de la orden y algún nivel, por eso tuve que multiplicar la cantidad de riesgo por _Punto
Razón de la queja: