Lo comprobé en la vida real, lo puse en el gráfico, abrió una posición, luego cambió el tiempo para que fuera más allá de la expiración del símbolo actual, el robot cerró la posición y la abrió ya en otra dirección.
Todo esta bien... pero hay un inconveniente, se cierra se abre, pero el gráfico en el que el robot se mantiene de edad, sería bueno que con la apertura de una posición en un nuevo futuros y el propio instrumento cambiado, de modo que no sería necesario mover el robot a un nuevo futuros manualmente.
He añadido una línea
//+------------------------------------------------------------------+ void CheckPos(string sym, string & TradeFutures, double lot) { if(SymbolInfoInteger(TradeFutures,SYMBOL_EXPIRATION_TIME)-TimeCurrent()<hours_before_expiration*60*60) { trade.PositionClose(TradeFutures); Sleep(3000); SymbolSelect(TradeFutures,false); TradeFutures=NextFutures(sym); } if(!PositionSelect(TradeFutures)) { if(lot>0) trade.Buy(lot,TradeFutures); if(lot<0) trade.Sell(-lot,TradeFutures); ChartSetSymbolPeriod(0,TradeFutures,PERIOD_CURRENT); Sleep(3000); } } //+------------------------------------------------------------------+
Todo cambia correctamente.
Gracias por el ejemplo.
He añadido una línea
Todo cambia bien.
Gracias por el ejemplo.
Si el Asesor Experto negocia varios instrumentos, creo que no tiene sentido cambiar el gráfico. Usted puede ponerlo en una cola.
Esto es sólo un ejemplo, depende del propietario.
Para el comercio real, me desharía de Sleeps y haría una comprobación normal de la ejecución de órdenes. Pero no quería sobrecargar la esencia del ejemplo, ese es otro tema.
Si el Asesor Experto opera con varios instrumentos, creo que no tiene sentido cambiar el gráfico. Es posible ponerlo en una cola.
Esto es sólo un ejemplo, depende del propietario.
Para el comercio real, me desharía de Sleeps y haría una comprobación normal de la ejecución de órdenes. Pero no quería recargar la esencia del ejemplo, es otro tema.
Estoy completamente de acuerdo contigo, pero necesito un algoritmo que cerrara una posición durante el día, quitara todos los limitadores, el robot cambiara a otro futuro con cambio de horario de negociación e iniciara una nueva operación con hoja limpia en el nuevo futuro.
Como si hubiera hecho todo esto, pero había un problema que no puedo averiguar cómo conseguir alrededor de él
Por ejemplo añadiendo
ChartSetSymbolPeriod(0,TradeFutures,PERIOD_CURRENT);
El gráfico cambia, pero si trato de hacer clic en marcos de tiempo después de la transición, por ejemplo M5 M30 etc. el robot vuelve en el siguiente tick el TF en el que cambió el gráfico de futuros.
También tenía pensado hacer una elección forzada del instrumento negociado en los ajustes, por ejemplo, ponemos petróleo, (según su elección), pero el robot se lanza a rts, al inicializar el gráfico cambia a petróleo.... He hecho todo esto, pero al cambiar a otro futuro en la expiración hay un bucle, el robot inicializado cuando se establece en BR-5,18, entonces hay un cambio a 6,18 con un cambio de gráfico y aquí en cada tick comienza a cambiar de 6,18 a 5,18 y back....
En este asunto no soy fuerte todavía, no he encontrado ejemplos de tal trabajo en la base de datos, tal vez se hace por cualquier cheques, banderas, etc, pero todavía no he descubierto cómo hacerlo. Estaría agradecido por una patada en la dirección correcta, creo que no soy el único ... Sería genial ver un ejemplo extendido de V2, creo que todo el mundo estará de acuerdo conmigo en que este algoritmo de transición y cambio de horario de negociación debería estar integrado por defecto en todos los robots que operan en FORTS, tal vez los propios desarrolladores lo añadirían a su biblioteca.
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Futures Portfolio Control Expiration:
Asesor Experto de cartera para el mercado MOEX FORTS.
Autor: Sergey Chalyshev