Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 695

 
jekk:

Buenos días. Por favor, ayúdenme a gestionar los pedidos pendientes. Por ejemplo, debo colocar una orden pendiente por el indicador. ¿Cómo puedo escribirlo?

Precio = NormalizeDouble (iMA(Symbol(),TimeFrame_D1, EMA_Period_21,0,MODE_EMA,PRICE_MEDIAN,0)+1*Point,Digits);// ¿cómo registrar correctamente esta línea?

SL = NormalizeDouble (Ask- StopLoss*Point,Digits);

TP = NormalizeDouble (Nivel_plus_1500_D1,Dígitos); // este para el beneficio - Nivel_plus_1500_D1 - Nivel EMA?

OrderSend(Symbol(),OP_BUYLIMIT,Lots,Price,Slippage, SL,TP,NULL,Magic,0,clrLime);


Price =  NormalizeDouble (iMA(Symbol(),PERIOD_D1, EMA_Period_ 21,0,MODE_EMA,PRICE_MEDIAN,0)+1*Point,Digits);// как правильно прописать эту строчку? 
 TP = NormalizeDouble (Level_plus_1500_D1-iMA(Symbol(),PERIOD_D1, 21,0,MODE_EMA,PRICE_MEDIAN,0),Digits); // и эту для профита -  Level_plus_1500_D1 - уровень ЕМА  ?

Lee la referencia, todo está ahí y es bastante claro.

Y el SL y el TP deberían fijarse mejor a partir del precio de la orden (Price), no del mercado, tiene más sentido de alguna manera.

 
evillive:

Lee la ayuda, está todo ahí y es bastante claro.

Y es mejor establecer el SL y el TP a partir del precio de la orden (Price ), en lugar de a partir del precio de mercado, tiene más sentido.

Gracias.
 

He intentado utilizar la función escrita en este artículo https://www.mql5.com/ru/articles/1357. Decidí comprobar cómo se abren las órdenes por las señales de esta función y escribí un código simple:

Metatrader viene con esto:

No sé qué hacer, no sé si algo está mal en las comillas o en el código de la función.

Se adjunta el código de la función.

Archivos adjuntos:
func_ad.mqh  33 kb
 
LBatters:

Hola a todos, pueden por favor ayudarme con este problema. he estado trabajando con la función escrita en este artículo https://www.mql5.com/ru/articles/1357. decidí comprobar cómo las órdenes son abiertas por las señales de esta función y escribí un código simple:

Metatrader da esto:

No sé qué hacer con él.

Adjunto el código de la función.


Probablemente no sea la misma función en el trailer, no hay nada con arrays en este en la línea 59, y el error está claramente fuera del array, en la línea 59, en la segunda captura de pantalla.
 
evillive:

Probablemente no sea la misma función en el trailer, no hay nada con arrays en este en la línea 59, y el error está claramente fuera del array, en la línea 59, según la segunda captura de pantalla.

No, sólo estaba comentando, así que las líneas se movieron.

Aquí está la que he recopilado.

Archivos adjuntos:
func_ad1.mqh  63 kb
 
LBatters:

No, sólo estaba comentando, así que las líneas se movieron.

Este es el que he recopilado.


pruebe con
for (i=2; i<=nBars-2; i++)
 
evillive:

Prueba con
for (i=2; i<=nBars-2; i++)


ja! ahora se abre una operación y se acaba la prueba, no entiendo por qué restar 2?
 
LBatters:

ja! ahora se abre una operación y ahí se acaban las pruebas, no entiendo porque se restan 2?


Hay más arrays en la línea, probablemente ya se tropieza con ellos. ¿O sigue quejándose de la línea 59?

Y la resta - aritmética es simple - si hay 100 elementos, su numeración es 0...99 (porque nBars=100, por lo que 99 es ese mismo nBars-1), y por lo tanto puede en su algoritmo contar desde 1 (comparando con 0 y 2 barras) hasta 98 (comparando con 97 y 99 barras), en 99 ya saldrá del array.

 
evillive:


Hay más arrays en la línea, probablemente ya se tropieza con ellos. ¿O sigue quejándose de la línea 59?

Y la sustracción - aritmética es simple - si hay 100 elementos, su numeración es 0...99 (99 es su mismo nBars-1), así que puede contar desde 1 (comparando con 0 y 2 barras) hasta 98 (comparando con 97 y 99 barras) en su algoritmo, en 99 se saldrá del array.


Pero es menor o igual, es decir, 99 está incluido, ¿no? El error 130 aparece durante la apertura del pedido.

 
LBatters:


Es menor o igual, es decir, 99 está incluido. ¿No es así? El error 130 aparece durante la apertura del pedido.


Hemos llegado a i=99, este es el último elemento.

if (TempIND[i]<TempIND[i-1] && TempIND[i+1]>=TempIND[i])

¿Dónde está[i+1]?