¿Cómo encontrar el momento de la barra donde se cruzaron las medias móviles? (código interior) - página 2

 

Ah, y Alladir: pareces del tipo odioso.

Hazte un favor y deja de perder tu tiempo escribiendo en este hilo o en los que pueda escribir en el futuro, si todo lo que vas a hacer es trollear y no ser útil de ninguna manera.

 
DomGilberto:

Ah, y Alladir: pareces del tipo odioso.

Hazte un favor y deja de perder tu tiempo escribiendo en este hilo o en los que pueda escribir en el futuro, si todo lo que vas a hacer es trollear y no ser útil de ninguna manera.

Si no puedes ser civilizado no escribas.
 

WHRoader (si no te importa) ¿podrías decirme si tengo razón o no en esto?

double buyPrice = iHighest(Symbol(), 0, MODE_HIGH, iBarShift(Symbol(), 0, triggerBarTime, true), 0); 

int Buy_Price = buyPrice; 

int buyticket = OrderSend(Symbol(),Buy_Price,LotSize,Ask,3,0,0,NULL,MagicNumber,0,Green);   Usually I'd put OP_BUY where Buy_Price is...

¿Estás diciendo que como iHighest simplemente indica un número de barra, el que yo intente poner Buy_Price donde estaba OP_BUY no tiene ningún sentido porque OrderSend toma un double? (cuando iHighest es un entero?)

¿Cómo puedo convertir mi lógica de iHighest en un precio para que mi función OrderSend entienda que quiero comprar el más alto del rango de iHighest?

 
RaptorUK:
Si no puedes ser civilizado no postees.


Sí, tienes razón. Lo siento.
 
DomGilberto:

WHRoader (si no te importa) ¿podrías decirme si estoy bien o mal en esto?

"double buyPrice = iHighest(Symbol(), 0, MODE_HIGH, iBarShift(Symbol(), 0, triggerBarTime, true), 0);"

int Precio_de_compra= Precio_de_compra;

"int buyticket=OrderSend(Symbol(),Buy_Price,LotSize,Ask,3,0,0,NULL,MagicNumber,0,Green);" Normalmente pondría OP_BUY donde Buy_Price es...


  1. Reproducir vídeo
    Por favor, edita tu post.
    Para grandes cantidades de código, adjúntalo.

  2. "double buyPrice = iHighest... 
    "double price = int bar index", no tiene sentido. Desglósalo:
    // double buyPrice = iHighest(Symbol(), 0, MODE_HIGH, iBarShift(Symbol(), 0, triggerBarTime, true), 0);
    int    iTBT     = iBarShift(Symbol(), 0, triggerBarTime, true),
           iHH      = iHighest(Symbol(), 0, MODE_HIGH, iTBT + 1, 0); // Include tBT bar. Len = from - to + 1
    double buyPrice = High[iHH];
    
  3. Si la mayoría de las funciones (excepto marketInfo) no necesitas usar Symbol(). Puedes usar NULL como símbolo del gráfico actual, al igual que ya usas 0 como marco temporal del gráfico actual.
 

¡Omg - ¿Por qué es tan claro después de darse cuenta! Supongo que aquí es donde la práctica hace la perfección.

Sinceramente, ahora lo entiendo mucho mejor. ¡Poner un :) en mi cara!

¡Voy a tratar de hacer esto ahora y ver lo que puedo salir con!

¡¡¡Gracias!!!

 
int buyticket = OrderSend(Symbol(),buyPrice,LotSize,Ask,3,0,0,NULL,MagicNumber,0,Green);

Cuando intento utilizar esto a continuación, estoy recibiendo un error en el diario diciendo que OrderSend función cmd debe ser un número entero?

Obviamente no estoy entendiendo porque usted ha mencionado que "OrderSend sólo toma un precio (un doble) no tiene sentido para abrir una orden en 9"

Obviamente si lo cambio a "int Buy_Price = buyPrice" esto funciona para colocar las órdenes, pero no es relevante para donde debe estar la entrada. (Esta es mi última pregunta - no quiero tomar el mick por supuesto!)

int iTBT= iBarShift(NULL,60, triggerBarTime, true),
         iHH= iHighest(NULL,60, MODE_HIGH, iTBT + 1, 0); // Include tBT bar. Len = from - to + 1
            double buyPrice = High[iHH];
 
DomGilberto:

Cuando intento usar esto a continuación, me sale un error en el diario diciendo que la función OrderSend cmd debe ser un entero?

Obviamente no estoy entendiendo porque usted ha mencionado que "OrderSend sólo toma un precio (un doble) no tiene sentido abrir una orden a 9"

Obviamente si lo cambio a "int Buy_Price = buyPrice" esto funciona para colocar las órdenes, pero no es relevante para donde debe estar la entrada. (Esta es mi última pregunta - no quiero tomar el mick por supuesto!)

El error es el cmd en el OrderSend (), sé que no quieres oírlo pero si quieres aprender también debes aprender a comprobar la documentación y aprender a leerla... es todo parte del proceso... cuando codifico un comando OrderSend() lo compruebo con la documentación cada vez para comprobar que lo he recordado correctamente.

int buyticket = OrderSend(Symbol(),buyPrice,LotSize,Ask,3,0,0,NULL,MagicNumber,0,Green);

¿Qué tipo de orden es esta? click -->OrderSend() dice que el segundo parámetro escmd - Tipo de operación. Puede ser cualquiera de la enumeración de operaciones comerciales.

 

Sí, tienes razón RaptorUK - En realidad (casi todo lo que hago) es leer la documentación (el dedo está prácticamente sentado en la F1 todo el tiempo.)

¡Jesús - Con los ojos frescos me he dado cuenta de lo estúpido que he sido!

¡No quise poner buyPrice en el cmd - segundo parámetro, quise ponerlo en el 4to parámetro (double Price)!

Así que eso funciona (ponerlo en el orden correcto) - lo he cambiado por una orden de compra y otra de venta. ¡Dios estoy molesto por lo imbécil que he sido!

int buyticket = OrderSend(Symbol(),OP_BUYSTOP,LotSize,buyPrice,3,bsl,btp,NULL,MagicNumber,0,Green); 
      if(buyticket>0)OrderModify(buyticket,OrderOpenPrice(),bsl,btp,0,CLR_NONE);

int iTBT= iBarShift(NULL,60, triggerBarTime, true),
        iHH= iHighest(NULL,60, MODE_HIGH, iTBT + 1, 0); // Include tBT bar. Len = from - to + 1
            double buyPrice = High[iHH];

El "buyPrice" simplemente está poniendo la orden por encima del máximo de la barra cerrada más reciente que tocó la EMA 21 (en lugar de la barra que fue la más alta del cruce de la MA y la barra que tocó la EMA 21...)

¡Voy a jugar un poco y ver donde me estoy equivocando! (he pasado tanto tiempo mirando esto que se está volviendo doloroso ahora lol.)

¡¡¡¡Gracias!!!!

(p.s ¿qué significa // Incluir barra tBT. Len = de - a + 1 nota?)

 
  1. DomGilberto:

    (p.s ¿qué significa // Incluir barra de tBT. Len = de - a + 1 nota?)

    HH= iHighest(NULL,60, MODE_HIGH, iTBT + 1, 0); // Include tBT bar. Len = from - to + 1

    El índice de barra más alto que comienza en cero para las barras de iTBT+1 incluye la barra de iTBT.

    Tu post original

    double buyPrice = iHighest(Symbol(), 0, MODE_HIGH, iBarShift(Symbol(), 0, triggerBarTime, true), 0);
    
    no incluía la barra triggerBarTime.
  2. iHH= iHighest(NULL,60, MODE_HIGH, iTBT + 1, 0); // Include tBT bar. Len = from - to + 1
    double buyPrice = High[iHH];
    ¿Por qué cambiaste el NULL,0 a NULL,60? Ahora iHH sólo es válido para el gráfico PERIOD_H1, y si el gráfico actual NO es el H1, entonces High[iHH] es falso.
Razón de la queja: