[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 153

 
buroff:

Encontré el indicador "ForexSession", pero había que cambiar los parámetros de tiempo. LocalGMT=3 - Moscú, BrokerGMT=0 - Londres, y también he cambiado las horas de inicio y fin de las sesiones.

Pero nada funciona con América - he añadido el bloque "void ShowSessionBroker()" - para añadir 30 minutos a Nueva York, después de la compilación aparece un error, y no tengo suficiente mente para arreglarlo.

Buenas personas, ¿podéis decirme qué he hecho mal y cómo solucionarlo?

Lo tenía compilado normalmente.
 
Sergey_Rogozin:


Sps, ¿por qué hay un 1 al final pero un 0? Si el valor del RSI se va a comparar con el anterior, ¿debería escribirse así?
double RSI = iRSI(NULL,0,14,PRICE_CLOSE,2);
 
Vovo4ka:

Opps, ¿por qué hay un 1 y un 0 al final? Si quieres comparar el valor del RSI con el anterior, ¿debes escribirlo así?

Usted es libre de establecer el número de cualquier barra. Lo único que importa es en qué barra quieres el valor deldoble RSI.

Para la comparación, por supuesto, debe tener al menos dos valores, es decir, valores en barras diferentes.

 
Sergey_Rogozin:
Usted es libre de establecer el número de cualquier barra. Lo único que importa es en qué barra quieres el valor deldoble RSI.

Por ejemplo, si quiero comparar el valor actual del RSI con el precio de cierre anterior, entonces puedo hacer esto...
double RSI1 = iRSI(NULL,0,14,PRICE_CLOSE,1);
double RSI2 = iRSI(NULL,0,14,PRICE_CLOSE,2);
y luego comparamos... ¿no?
 
Vovo4ka:

Digamos que quiero comparar el valor actual del RSI con el precio de cierre anterior, entonces va así... y luego comparamos... ¿correcto?
Exactamente. Con una corrección: la barra actual es cero.
 
Sergey_Rogozin:
Puede establecer el número de cualquier barra. Sólo importa qué barra se quiere obtener el valor del doble RSI.


También puedo decirte cómo hacer que la señal abra una operación... porque abre operaciones en todas las barras... ((((

Si la señal abriera un solo trato.... al repetir uno más y no importa si el anterior se cerró....

algo así...))

 

Antes de abrir un pedido, debe comprobar si ya está abierto.

Necesitará una función pequeña/no compleja,

que le permitirá o no entrar en el mercado si hay una señal para hacerlo.

 
Sergey_Rogozin:

Antes de abrir un pedido, debe comprobar si ya está abierto.

Necesitará una función pequeña/no complicada,

que le permitirá o no entrar en el mercado aunque haya una señal para hacerlo.


por casualidad puede sugerir.....? para insertar .... de lo contrario no puedo realmente evaluar el asesor...((
 
Vovo4ka:

¿Podría sugerir .....? para poner .... de lo contrario no puedo realmente evaluar la EA de esta manera ...((
La función tiene el siguiente aspecto
  bool Exist(){
     for(int cnt=OrdersTotal()-1; cnt>=0; cnt--){
        if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)){
          if(OrderMagicNumber()==Magic){
            if(OrderSymbol()==Symbol()){
              if(OrderType()<2)return(true);
      } } } }        
  return(false);} 

Es decir, si hay posiciones abiertas, la función las detectará y devolverá true.

Su tarea es poner algo como esto antes de OrderSend(.......):

if(!Exist() && Signal)OrderSend(Symbol()........);
где Signal - Ваш сигнал на вход в рынок.
 

¿Pueden decirme cómo comprobar la validez de un pedido? Por ejemplo, tengo una orden pendiente y necesito comprobar si ha activado una orden de stop.


bool check=OrderChek(ticket);

Comentario ("El pedido con el ticket ", ticket, "no existe (disparado)");


No encuentro cómo hacerlo.