[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 69

 

Estoy sentado aquí y no puedo entender cómo implementar el algoritmo.

Tal vez alguien pueda ayudar.

1. encontrar el comienzo del día (yo lo hice)

2. Encontrar el máximo del día (yo lo hice)

3. necesito averiguar las barras que seguirían al primer fractal después del cruce de la MA de arriba a abajo después de ese máximo.


Adjunto la figura.


 
komposter >> :

En lugar de iRSI debería ser iCCI.

YEPRST...... está completamente fuera de la vista..... gracias, lo arreglaremos

 
luka >> :

Estoy sentado aquí y no puedo entender cómo implementar el algoritmo.

Tal vez alguien pueda ayudar.

3. Hay que calcular las barras que seguirán al primer fractal después de cruzar la MA de arriba a abajo después de este máximo.

"calculen las barras que seguirán..."

Escriba simplemente: "Quiero saber dónde irá el precio después de encender el ordenador..." :-)))))

 
mukata >> :

"calculen las barras que seguirán..."

Escriba simplemente: "Quiero saber dónde irá el precio después de encender el ordenador..." :-)))))


no lo entiendes.

estas barras ya están en el gráfico. o digamos que es la barra actual. Y si se ajusta a las condiciones, es el bar que está buscando.

Eso es lo primero.

Y en segundo lugar, ¿para qué molestarse con las tonterías si no entiendes de qué estamos hablando?

 
Skydiver >> :

Puedes probar esto

OrderSelect(1, SELECT_BY_POS)

if(OrderOpenTime()!=0)

{

///необходимая операция

}

Pero esto sólo es una opción si sólo tiene un pedido.

Entonces, ¿sólo comprobamos si la orden está pendiente?


La idea es la siguiente: junto con el stop de una orden, por ejemplo en compra, se establecen tres órdenes pendientes

Quiero una condición para que una de estas 3 órdenes pendientes se convierta en una "orden de trabajo" normal

 
luka >> :

no entiendes.

Estas barras ya están en el gráfico. o digamos que esta es la barra actual. Y si cumple las condiciones, es el bar que buscas.

Eso es lo primero.

Y en segundo lugar, ¿por qué pierdes el tiempo si no entiendes de qué estamos hablando?

"Calcula las barras que seguirán al primer fractal después del re... "Significa que la seguirán, no que "ya existen en la carta"...

Pero si "Y si cumple las condiciones - es el bar que buscas" - es otra cosa. Describe las "Condiciones", alguien te ayudará.

Pido disculpas por la inundación, se me escapó.



 
mukata >> :

"calcula las barras que seguirán al primer fractal después del re... " Si siguen, significa que lo harán, no si "ya están en la tabla"...

Pero si "Y si cumple las condiciones - es el bar que buscas" - eso es otra cosa. Describa las "condiciones", alguien le ayudará.

Perdón por la inundación, se me escapó.



Oooh lo escribí exactamente así.

No voy a apuntar a encontrar no sé qué, sin saber dónde ni cómo.

Me interesan los bares específicos que ya existen. Y para ser más exactos, su turno.

Por cierto, ya lo he puesto en práctica, resulta que no es tan difícil :)

 
fima_ >> :

¿así que sólo comprobamos si la orden está pendiente?


La idea es la siguiente: cuando se detiene una orden, por ejemplo en compra, se establecen tres órdenes pendientes

quiero una condición para que una de estas 3 órdenes pendientes se convierta en una "orden de trabajo" normal

¿Así que tienes 3 órdenes pendientes y si al menos 1 se ha disparado entonces se establece alguna condición?

si es así, entonces es así

for(int cnt=0;cnt<OrdersTotal();cnt++) // последовательно проверяем все ордера

{

OrderSelect(cnt, SELECT_BY_POS)
if(OrderOpenTime()!=0) ///время не равно 0 значит отложка сработала(или как писал Roger if(OrderType()<2) )
{
///необходимая операция
}
}

¿o tiene 1 orden abierta + 3 órdenes pendientes?

entonces puede probarlo así

//в глобальных переменных

int tick[3];

//в функции start

//cначало записываем номера тикетов отложек в переменные

for(int cnt=0;cnt<OrdersTotal();cnt++) // последовательно проверяем все ордера

{

OrderSelect(cnt, SELECT_BY_POS)
if(OrderOpenTime()!=0)

{

tick[cnt]=OrderTicket();

}

}

//а далее проверяем выполнился ли отложенный ордер


for(int cnt=0;cnt<OrdersTotal();cnt++)

{

OrderSelect(cnt, SELECT_BY_POS)
if(OrderOpenTime()!=0)

{

for(int cnt2=0;cnt2<3;cnt++)

if(tick[cnt]==OrderTicket())

{

//необходимое условие

}

}

o utilizar una Magia específica para todas las órdenes y si hay una orden abierta con esta Magia, hay que utilizarla así:

в глоб перем

int mag=12345;

в ф start

/// При открытии отложки укажите ему в качестве магика mag

///ну а далее идет поиск "бывшей" отложки по Magic

for(int cnt=0;cnt<OrdersTotal();cnt++)

{

OrderSelect(cnt, SELECT_BY_POS)
if(OrderOpenTime()!=0&&OrderMagic()==Mag)

{

///необходимая операция

}

}

no he revisado el código para detectar posibles errores!

 
¿Qué orden devuelve la función OrderSelect(0,SELECT_BY_POS)? ¿Cuál se abrió primero? ¿Los pedidos no pueden intercambiarse? (No utilizo órdenes pendientes)
 
AndreyK писал(а) >>
¿Qué orden devuelve la función OrderSelect(0,SELECT_BY_POS)? ¿Cuál se ha abierto primero? ¿No se pueden intercambiar los pedidos? (No utilizo órdenes pendientes)

Bien, cuál es el más antiguo. Esto es conveniente si se sabe con seguridad que en principio sólo se puede tener una orden abierta y se puede evitar el exceso. Las órdenes no se intercambian, sino que se desplazan a la más pequeña cuando se cierra la anterior.