Funciones útiles de KimIV - página 99

 
TarasBY писал(а) >>
He observado un error en la función TypeNearPos cuando se cumple la condición:
Precio de mercado = precio de la orden abierta, entonces esta orden no es tenida en cuenta por esta función.
Tuve que añadir esta simple condición al código.
Esta condición también será útil en funciones como TypeNearPos() y PriceOpenNearPos().


Tiene más sentido comparar ti con cero en la condición en lugar de pp

if (ti==0 || pp>MathAbs(OrderOpenPrice()-mi)/p)
{
   pp=MathAbs(OrderOpenPrice()-mi)/p;
   ti=OrderTicket();
}
Pero si dejamos la condición como está, será mejor salir del bucle mediante break en lugar de return.
if (pp==0 || pp>MathAbs(OrderOpenPrice()-mi)/p)
{
   pp=MathAbs(OrderOpenPrice()-mi)/p;
   ti=OrderTicket();
   if (pp==0)
      break;
}
 
Hola, Igor. Hola a todos.
Igor, me dirijo a usted como excelente especialista y experto en su campo.
La esencia de mi problema es la siguiente:
Utilizo cinco indicadores en mi TS, uno de ellos es TRAP. Elimina muy bien todos los "ruidos" innecesarios, pero es igual de "bueno". Dispone de tres buffers de dibujo: 0 para la línea de señal, 1 y 2 para el gráfico bicolor. Cuando la línea de señal TRAP está abajo y tiene un gráfico rojo debajo de ella - Vender. Cuando la línea de señal sube y el gráfico es azul - Comprar.
Manualmente, todo está bien, pero cuando trato de obtener sus datos del Asesor Experto, comienza la tortura, que continúa hasta el día de hoy.
El diseño...
   TRAPsig0=iCustom(NULL,0,"TRAP",12,5,0,4,0.5,0,0);  // Сигнальная линия,       0 бар
   TRAPsig1=iCustom(NULL,0,"TRAP",12,5,0,4,0.5,0,1);  // Сигнальная линия,       1 бар
   TRAPmnR0=iCustom(NULL,0,"TRAP",12,5,0,4,0.5,1,0);  // Буфер цвета 1 (красн.), 0 бар
   TRAPmnR1=iCustom(NULL,0,"TRAP",12,5,0,4,0.5,1,1);  // Буфер цвета 1 (красн.), 1 бар
   TRAPmnB0=iCustom(NULL,0,"TRAP",12,5,0,4,0.5,2,0);  // Буфер цвета 2 (син.),   0 бар
   TRAPmnB1=iCustom(NULL,0,"TRAP",12,5,0,4,0.5,2,1);  // Буфер цвета 2 (син.),   1 бар
...lee los datos, pero los datos no son en absoluto lo que esperaba. Intenta leer los datos de los tres buffers para las barras 0 - 7 y mostrarlos en la pantalla. La barra cero contiene 2147483647, la primera barra el precio, la segunda barra el precio, la tercera barra el precio, la cuarta barra de nuevo 2147483647, etc. Al mismo tiempo, todos los datos no cambian por tic-tac, pero cuando lo hacen. A veces después de un periodo de tiempo bastante largo, a veces rápidamente, y cambian su contenido según un extraño sistema que aún no he entendido. Si primero hay un precio allí, entonces puede ser este número misterioso, o puede ser un precio diferente o el mismo (aunque la línea sube y el precio debería subir), etc. ...
En definitiva, todos mis intentos de sistematizar estas lecturas han llevado a que mis cerebros deban entregarse ya a la sistematización de los sanitaristas.... :)
Estoy pidiendo ayuda a gritos... Igor, ¿podrías aconsejarme sobre cómo superar este indicador?
O cualquiera de los gurús que ya se ocupan de este problema.
Ayuda por favor, todo el trabajo cuesta...
Gracias de antemano.
El indicador en sí está en el remolque:
Archivos adjuntos:
trap.ex4  4 kb
 
no utilice la barra cero.... Sólo se está formando, lo que significa que el valor del indicador cambia con cada tick....
 

Por cierto, ¿dónde está el propio Igor? ¡No se le ha visto desde hace cuatro o cinco meses!

 
kharko >>:
не используйте нулевой бар.... Он только формируется, а значит, значение индикатора меняется с каждым тиком....

La cosa es que he probado la primera, la segunda y la tercera y... probó cada barra hasta siete en cada búfer. Las señales son erróneas. La señal que muestra el precio, digamos, 1,3478 puede mantenerse hasta la siguiente subida del precio hasta el nivel de 1,3478, y luego convertirse bruscamente en 1,3486 o el precio desaparece y aparece un valor desconocido de 2147483647, puede vagar de una barra a otra en las lecturas de los tres buffers... Si Dios quiere... Puede estar presente en las lecturas de tres buffers en diferentes barras, y cuando cambie el precio de una barra, esta lectura se trasladará a otra barra o buffer... No pude superar su lógica...

 
artmedia70 >>:

вообще цена пропадает и появляется непонятное значение 2147483647...

2147483647 es 0x7FFFFFF.

Constantes especiales utilizadas para indicar el estado de los parámetros y las variables. Pueden ser los siguientes valores:

VALOR_VACÍO 0x7FFFFFFFF Valor por defecto, puntero a un valor vacío. Se utiliza en los indicadores personalizados
 
artmedia70 писал(а) >>

La cosa es que he probado la primera, la segunda y la tercera y... probó cada barra hasta siete en cada búfer. Las señales son erróneas. La señal que muestra el precio, digamos, 1,3478 puede mantenerse hasta la siguiente subida del precio hasta el nivel de 1,3478, y luego convertirse bruscamente en 1,3486 o el precio desaparece y aparece un valor desconocido de 2147483647, puede vagar de una barra a otra en las lecturas de los tres buffers... Si Dios quiere... Puede estar presente en las lecturas de tres buffers en diferentes barras, y cuando cambie el precio de una barra, esta lectura se trasladará a otra barra o buffer... No pude superar su lógica...


abra la ventana de datos (Ctrl+D), mueva el ratón sobre su indicador y vea lo que tiene en barras. No se calcula en barras de cero, y sobre EMPTY_VALUE ya te han escrito.

 
PapaYozh >>:


откройте окно данных (Ctrl+D), поводите мышью по своему индикатору и посмотрите что он имеет в барах. На нулевом баре он не рассчитан, а про EMPTY_VALUE Вам уже написали.

¡Oh, mierda! Se vive y se aprende. Y solía hacer un Asesor Experto no comercial, que trazaba estos datos en un gráfico... :))) Una tetera, y además estaba hirviendo... :)
Todo resultó tan fácil... ¡¡¡¡Muchas gracias!!!!

 
PapaYozh >>:


Логичнее, в условии сравнивать с нулём не pp, a ti

Если же оставить условие как есть, то из цикла лучше выходить не по return, а по break.

Explica por qué: "es mejor salir del bucle mediante break en lugar de return".
Salgo de una función por return, pero sólo salgo de un bucle por break. ¿Cuál es el truco?

 

Ayuda, por favor... Ya lo he intentado todo... No puedo....=( Necesito encontrar la intersección de los indicadores... Todos los consejos que me han dado no me han servido de nada...=( tal vez ustedes puedan ayudar...

Archivos adjuntos:
lastlast.mq4  13 kb
Razón de la queja: