Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1567

 
MakarFX:

Creo que debería ser así

Si creamos un nuevo objeto cada vez en OnTick(), el tiempo del tick anterior no se guardará en ningún sitio.
El objetivo de crear un objeto global es almacenar el tiempo del tick anterior, comparándolo con el tiempo del nuevo tick sabremos si hay una nueva barra o no...

 
MakarFX:
¿Por qué necesitamos esta variable NB_M1?
Su único propósito es almacenar la hora del último tick procesado para cada símbolo y marco temporal:
protected:
   datetime          m_TOld;        // Время хранится 
   ENUM_TIMEFRAMES   m_TimeFrame;   //    для каждого таймфрейма
   string            m_Symbol;      //    каждого символа

 
Mikhail Tkachev:
class CIsNewBar

devuelve true/false , ¿de qué hora estamos hablando?

 
MakarFX:

Pruébalo, en el probador está bien

No, no es eso. Ahora abre y cierra un contrato a la vez.

La idea es exactamente abrir un contrato adicional cuando se hace trailing y el trailing stop se sube por Brake even.

Lo hace todo obedientemente. Pero el inconveniente lo veo en que con stop loss=150 pips y take profit=500 pips se abre hasta cinco contratos y además suele tirar de stop loss.
Sin embargo, me he dado cuenta de que la compra de cinco contratos conduce a la disminución del precio de entrada en el mercado y, por lo tanto, el riesgo/margen es mucho mayor.
Debido a esto quiero que sea trailing un contrato, y tira hasta tomar ganancias máximo dos contratos, y trailing stop loss encaja hasta cinco veces.
Debido a que trailingorder (compra adicional y venta adicional) y trailing (trailing stop loss) están en mi robot
 
Eugen8519:
No, no es eso, abre y cierra un contrato a la vez.

La idea es que el contrato de arrastre abrirá un contrato adicional y el trailing stop será subido por Brake even.

Lo hace todo obedientemente. Pero veo una desventaja en que con stop loss=150 pips y take Profit=500 pips se abre hasta cinco contratos y además suele sacar un stop loss.
Sin embargo, me he dado cuenta de que la compra de cinco contratos conduce a la disminución del precio de entrada en el mercado y, por lo tanto, el riesgo/margen es mucho mayor.
Debido a esto quiero cambiar mi robot para comprar sólo un contrato, y para tomar ganancias de hasta dos contratos, y trailing stop loss aumentaría cinco veces.
Por lo tanto, se añadieron al robot órdenes de arrastre (compra adicional y venta adicional) y de arrastre (trailing stop loss)

Aquí, corrige "0" por "2".

   if(pos_total<=0 )
      {TrailingOrder();}
   Trailing();
 

¿Cómo hacer que este problema sea automático? ORDER_FILLING_FOK ORDER_FILLING_IOC ORDER_FILLING_RETURN

¿tal vez alguien tenga uno ya hecho?

 
Aleksandr Egorov:

¿Cómo hacer que este problema sea automático? ORDER_FILLING_FOK ORDER_FILLING_IOC ORDER_FILLING_RETURN

¿Quizás alguien tenga un ejemplo ya hecho?

Hay un ejemplo listo en la documentación. Pero primero hay que definir una política de relleno para un símbolo. Buscar SYMBOL_FILLING_FOK

 
Aleksandr Egorov:

¿Cómo hacer que este problema sea automático? ORDER_FILLING_FOK ORDER_FILLING_IOC ORDER_FILLING_RETURN

¿Quizás alguien tenga una ya hecha?

¿Rellenar usted mismo MqlTradeRequest directamente?

Hay demasiadas trampas.

mira CTrade::FillingCheck() - cómo los desarrolladores recomiendan definir el llenado

 
Buenas tardes a todos. ¿Alguien se ha encontrado con una situación similar? En general, hay un oscilador escalable. Necesito saber programáticamente, cuáles son los valores extremos actuales de la escala de la ventana visible de este oscilador. Espero que se entienda lo que digo). Le agradecería que me ayudara.
 
AMarkov:
Buenas tardes a todos. ¿Quizá alguien se ha encontrado con una situación similar? En general, hay un oscilador escalable. Necesito saber programáticamente cuáles son los valores extremos de la escala de la ventana visible de este oscilador en este momento. Espero haberme explicado bien). Le agradecería que me ayudara.
bool  ChartGetInteger( 
   long    chart_id,        // идентификатор графика 
   int     prop_id,         // идентификатор свойства 
   int     sub_window,      // номер подокна 
   long&   long_var         // сюда примем значение свойства 
   );

con los identificadores CHART_PRICE_MIN y CHART_PRICE_MAX