[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 85

 
OTPOK:

Una cosa más - ¿Cómo puedo cambiar el stoploss de una orden ya abierta de forma programada?


https://docs.mql4.com/ru/trading/OrderModify
 
FOReignEXchange:


Buenas tardes. Supongo que nunca has asignado valores a las variables. Es muy fácil de hacer.

PrecioCompra=Preguntar


En realidad: PrecioCompra=Oferta;
 
Roger:

En realidad: PrecioCompra=Oferta;

Bueno, eso es una cuestión de opinión. Y si es realista, Asc.
 

Hola.

Por favor, dime si la expresión para calcular la suma total de una secuencia de números delta*(2*Lot+Lot*(i-2))*(i-1)/2es correcta :

for (int i=1; i<=MaxOrders; i++) {

doble Suma=Lote;

Sum+=delta*(2*Lot+Lot*(i-2))*(i-1)/2; }

Si no hay errores, ¿cómo sustituir el valor de "Suma+" en la expresión como X=("Suma+" + Y)/Z?

Código fuente:

for (int i=1; i<=MaxOrders; i++)
   {
      if (BUY)
      {
         Price = NormalizeDouble(Ask-delta*i*Point,Digits);
         double Sum=Lot;
         Sum+=delta*(2*Lot+Lot*(i-2))*(i-1)/2;
         DeltaProfitL = (Sum+i*delta*Lot+Lot*R_Lot*R_point+Lot*R_Lot*delta*i)/((2*Lot+Lot*(MaxOrders-1))*MaxOrders/2+Lot+Lot*R_Lot);
         if (takeprofit!=0) TP  = NormalizeDouble(Price + (takeprofit + DeltaProfitL*zero_tp)*Point,Digits); else TP=0;
         if (stoploss!=0)   SL  = NormalizeDouble(Price - stoploss*Point,Digits); else SL=0;     
         OPENORDER ("Buy Limit",Price,SL,TP,i);
      }
   }

Gracias de antemano.

 
nemo811:

Hola.

Por favor, dime si la expresión para calcular la suma total de una secuencia de números delta*(2*Lot+Lot*(i-2))*(i-1)/2es correcta :

for (int i=1; i<=MaxOrders; i++)

doble Suma=Lote;

Sum+=delta*(2*Lot+Lot*(i-2))*(i-1)/2;

Si no hay errores, ¿cómo sustituir el valor de "Suma+" en una expresión como X=("Suma+" + Y)/Z?

Gracias de antemano.


¿No funcionaría eso?

for (int i=1; i<=MaxOrders; i++)

Sum=Sum+delta*(2*Lot+Lot*(i-2))*(i-1)/2;

Sólo que no está claro por qué Sum=Lot; Y para qué sirve en general.

 
FOReignEXchange:


Sólo que no está claro por qué Sum=Lot; Y para qué en general.

Hice una pregunta similar en la página 81. He hecho todo según la respuesta que me han dado. Pero hasta ahora no hay resultados.

Sum=Sum+delta*(2*Lot+Lot*(i-2))*(i-1)/2; - no es adecuado para mi cálculo.

 
delta*(2*Lot+Lot*(i-2))*(i-1)/2 es la fórmula numérica de la secuencia en cuestión. Necesito sumar TODOS los números de la secuencia dada.
 
nemo811:
delta*(2*Lot+Lot*(i-2))*(i-1)/2 es la fórmula numérica de la secuencia en cuestión. Necesito sumar TODOS los números de la secuencia dada.


Así que escribí una fórmula para ello.

Entiendo que hay que calcular algo así

Suma =delta*(2*Lot+Lot*(1-2))*(1-1 )/2 +delta*(2*Lot+Lot*(2-2))*(2-1 )/2 +delta*(2*Lot+Lot*(3-2))*(3-1)/2 + ... etc.

Es la fórmula Suma=Suma+delta*(2*Lot+Lot*(i-2))*(i-1)/2, donde se establecen las limitaciones para i en el cuerpo del operador. Cuando el operador termine, Suma tomará el valor deseado. Es importante que la suma sea igual a cero antes de que el operador comience a hacer los cálculos. A la salida del operador, Sum tomará el valor deseado.

 

No estoy seguro de cuánto costaría pedir un EA, pero estoy seguro de que puedo conseguir que funcione en ambos gráficos.

Ah, y en general es posible hacerlo funcionar una vez para 2 monedas diferentes (simultáneamente en dos gráficos) y abierto en cada una de las diferentes operaciones.

Por ejemplo, ¿compré en la primera y vendí en la segunda?

Y al cierre de una de las transacciones abiertas la opuesta a la transacción ya abierta....

Y puede ser que alguien sabe, tal vez hay un asesor experto, sólo una buena idea vino a mi mente .....

 
for (int i=1; i<=MaxOrders; i++)
   {
      if (BUY)
      {
         Price = NormalizeDouble(Ask-delta*i*Point,Digits);
         double Sum=0;
         Sum=Sum+delta*(2*Lot+Lot*(i-2))*(i-1)/2;   ........
      }
}
Gracias. ¿Es esto lo correcto?