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

 
evillive: No puede ser más sencillo, ¿verdad?

Supongo que sí. Te lo dije, soy un tonto, soy un tonto... El beneficio en la línea superior se muestra en pips, sólo en 3 dígitos:


Por lo que he entendido, PipProfit = USDprofit/lot/Point para EURUSD. Para los pares con cotización inversa, debemos tomar la diferencia del precio de apertura y el precio actual y multiplicar por Dígitos: Pips = OrderOpenPrice()-Bid*Digits_coefficient; donde
Digits_coefficient = MathPow(10,Digits);

No tienes que tomar la diferencia, existe la función OrderProfit().

Repasémoslo de nuevo para que se te quede grabado en el cerebro. Por lo tanto, vamos a comprar GBPJPY.

1. OrderProfit() es igual a -15,27 USD = -1228,32 JPY (para la conversión a yenes, multiplicar por el tipo de cambio USDJPY).

2. Dividiendo el beneficio por el lote, igual a 0,1.

3. Dividimos el resultado por el precio de 1 pip de 1 lote, que equivale a 0,01 JPY * 100000 = 1000 JPY. Obtenemos -12,28 puntos, es decir, como es necesario.

Se trata de un sutil error, ya que las cifras no están tomadas en un mismo momento, pero el yen se está fortaleciendo fuertemente.

Fórmula para XXXYYY:

pips = ( USDYYY o 1/YYYUSD ) * OrderProfit() / ( OrderLots( ) * Point ).

Aquí Punto es el precio puntual de 1 lote en la moneda YYYY, igual a 100000 * MathPow( 10, - Dígitos ).

 

Buenas tardes.

¿Cuáles podrían ser las razones por las que el EA no está optimizado?

Hay un parámetro optimizado, los indicadores son estándar.

La prueba se desarrolla con normalidad.

 
DOCTORS:

¿Puedes darme una pista?

La secuencia de comandos cierra las órdenes superpuestas... Pero hay una trampa - por alguna razón no cierra las órdenes con diferente tamaño de lote...

¿Puede decirnos dónde está el problema?


En primer lugar, sustituya la dirección de comprobación por

for(int i=1; i<=TotalPedidos(); i++) // realiza un bucle con el pedido

en

for(int i=TotalPedidos() - 1; i>=0; i--) // Bucle de pedidos


en todas partes

 
sting-igor:

¿Por qué algunos EAs funcionan bien en el probador primero y luego no abren ni una sola operación? No recuerdo los nombres de los EAs, pero tenía tres de ellos, tal vez estoy haciendo algo mal? mt4

Si su EA está mal escrito, puede realizar una división por cero y dejar de funcionar. Busca en el registro el error ZeroDevide...
 
ilunga:

Bueno, para empezar, sustituye la dirección de comprobación por

for(int i=1; i<=TotalPedidos(); i++) // Bucle de pedidos

en

for(int i=TotalPedidos() - 1; i>=0; i++) // Bucle de pedidos


en todas partes


Retirado, ya que el guión era extremadamente incorrecto... Mucho por hacer... Quería que se superpusieran las operaciones a cero... pero sólo se superpusieron... Muchas gracias por tu ayuda... ...cuando haga el solapamiento del cero, lo publicaré para las preguntas.
 

Mathemat, si sólo necesitas el número de pips en beneficio/pérdida puedes calcularlo de una forma aún más sencilla, justo ayer estaba dormido cuando lo escribí )))

Parecen ser fórmulas universales, adecuadas para todos los pares de divisas:

double tickvalue = MarketInfo(OrderSymbol(),MODE_POINT); //если нужно значение тика для инструмента в окне которого установлен эксперт, то просто используем Point в дальнейшем

Pips = (OrderOpenPrice()-Ask)/tickvalue; // order short

Pips = (Bid - OrderOpenPrice())/tickvalue; // order long

.

 

Señores, por favor, ayuden.

Necesito una función que compruebe si el precio ha tocado la muñeca durante las últimas X barras?

Por favor, no me des una patada muy fuerte, ya que soy un completo tonto.

 

Cómo reescribir el indicador Awesome sólo para 1H. Supongamos que adjunto Awesome a 4H, quiero que el indicador muestre datos relacionados con 1H y no con 4H.

//---- nombre para la etiqueta de la DataWindow y la subventana del indicador
IndicatorShortName("AO");
SetIndexLabel(1,NULL);
SetIndexLabel(2,NULL);

ExtBuffer0[i]=iMA(NULL,0,5,0,MODE_SMA,PRICE_MEDIAN,i)-iMA(NULL,0,34,0,MODE_SMA,PRICE_MEDIAN,i);

Cambio NULL por PeriodH1, pero no sirve de nada.

 
flintz:

Cómo reescribir el indicador Awesome sólo para 1H. Supongamos que adjunto Awesome a 4H, quiero que el indicador muestre los datos relacionados con 1H y no con 4H.

//---- nombre para la etiqueta de la subventana DataWindow y del indicador
IndicatorShortName("AO");
SetIndexLabel(1,NULL);
SetIndexLabel(2,NULL);

ExtBuffer0[i]=iMA(NULL,0,5,0,MODE_SMA,PRICE_MEDIAN,i)-iMA(NULL,0,34,0,MODE_SMA,PRICE_MEDIAN,i);

Cambio NULL por PeriodH1, pero no sirve de nada.

Cambia de NULL a "0" (el parámetro junto a NULL).
 
¡¡¡Gracias!!!
Razón de la queja: