[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 96
oDin48, ¿has pensado alguna vez que de repente se abre una orden y se desliza un error en alguna parte? Entonces la orden se abrirá y el Vol aumentará?
Lo digo de memoria, porque situaciones similares me han ocurrido antes, cuando programaba en otros lenguajes
Intente mostrar el número de error en la ventana de mensajes y vea cuál es
gogent, todo funcionaba bien hasta que escribí los criterios de negociación, o mejor dicho, todo iba bien con los otros, pero hay algo que falla en estos... así que no creo que sea el código de "apertura de pedidos"... Las aperturas de las órdenes no son cíclicas, se abren de una en una cuando la señal se apaga... ... por lo que es una condición relacionada con Vol o una condición relacionada con VP... Estoy intentando reescribir lo mismo con otras palabras, a ver qué pasa...
Añadido:
Se trata del vicepresidente. Algo en el código de abajo está mal... se ejecuta, según tengo entendido, cada vez que una MA es más alta que la otra... es decir, siempre... ¿No funciona la condición adicional? ¿Por qué? Como Opn_B, Cls_B, Opn_S, Cls_S, funciona bien, no se crea en cada tick, pero el VP va al infinito en algún lugar...
if ((Opb==0) && (MA_1_t > MA_2_t + Rastvor*Point)) // Если разница между
{ // ..МА 1 и 2 большая
Opn_B=true; // Критерий откр. Buy
Cls_S=true; // Критерий закр. Sell
Opb++; // Открытие только одного ордера
Ops=0;
if (VKO1>=Ask) {VP=VP*Koff;} // При прибыли предыдущего умножать на коэф.if (VKO1<Ask) {VP=VP*Koff1;} // При убытке предыдущего умножать на коэф1.
}
if ((Ops==0) && (MA_1_t < MA_2_t - Rastvor*Point)) // Если разница между
{ // ..МА 1 и 2 большая
Opn_S=true; // Критерий откр. Sell
Cls_B=true; // Критерий закр. Buy
Ops++; // Открытие только одного ордера
Opb=0;
if (VKO0<=Bid) {VP=VP*Koff;} // При прибыли предыдущего умножать на коэфif (VKO0>Bid) {VP=VP*Koff1;} // При убытке предыдущего умножать на коэф1
}
w ersoc, cada tick(es decir, en start()) comprueba si la orden ha cerrado en TP. Y por cierto, todas las acciones del EA se registran en el log (¿o sólo durante las pruebas?).
paladin80, si los criterios de negociación del EA se basan en barras / velas / promedios y demás, entonces por lo que entiendo lo hará, pero si no es así, entonces no lo hará...
gogent: w ersoc, cada tick (es decir, en start()) comprueba si la orden ha cerrado en TP. Y por cierto, todas las acciones del EA se registran en el log (¿o sólo durante las pruebas?)
ahora, por supuesto, las pruebas son más importantes...
el resultado final es que siempre habrá un beneficio previamente cerrado... La lógica del problema es que sólo cuando se activa la toma de beneficios, debemos hacer una bandera de alguna manera.
Tenía un antivirus Kspersky, funcionaba bien, llegó la fecha límite de la clave, decidí instalar Nod 32, la instalación falló, o mejor dicho, falló a medias, dice que algo no se puede instalar, ahora no puedo quitarlo, el Internet se bloquea después de 2-3 minutos, qué hacer, por favor aconsejar, por favor.
oDin48, ¿has pensado alguna vez que de repente se abre una orden y se desliza un error en alguna parte? Entonces la orden se abrirá y el Vol aumentará?
Lo digo de memoria, porque situaciones similares me han ocurrido antes, cuando programaba en otros lenguajes
Intente mostrar el número de error en la ventana de mensajes y vea cuál es
gogent, todo funcionaba bien hasta que escribí los criterios de negociación, o mejor dicho, todo iba bien con los otros, pero hay algo que falla en estos... así que no creo que sea el código de "apertura de pedidos"... Las aperturas de las órdenes no son cíclicas, se abren de una en una cuando la señal se apaga... ... por lo que es una condición relacionada con Vol o una condición relacionada con VP... Estoy intentando reescribir lo mismo con otras palabras, a ver qué pasa...
Añadido:
Se trata del vicepresidente. Algo en el código de abajo está mal... se ejecuta, según tengo entendido, cada vez que una MA es más alta que la otra... es decir, siempre... ¿No funciona la condición adicional? ¿Por qué? Como Opn_B, Cls_B, Opn_S, Cls_S, funciona bien, no se crea en cada tick, pero el VP va al infinito en algún lugar...
beneficio=lote*puntos*VALOR_TICK
Gracias. =)
Me ha surgido una pregunta más. ¿hay alguna forma sencilla de bloquear una orden en el take profit?
Por ejemplo, digamos que hay 3 órdenes, y una de ellas está cerrada. ¿Cómo puedo señalar que está cerrada y obtener su beneficio (o pérdida)?
w ersoc, cada tick (es decir, en start()) comprueba si la orden ha cerrado en TP. Y por cierto, todas las acciones del EA se registran en el log (¿o sólo durante las pruebas?)
ahora, por supuesto, las pruebas son más importantes...
el resultado final es que siempre habrá un beneficio previamente cerrado... La lógica del problema es que sólo cuando se activa la toma de beneficios, debemos hacer una bandera de alguna manera.