Discusión sobre el artículo "Trabajando con las series temporales en la biblioteca DoEasy (Parte 58): Series temporales de los datos de búferes de indicadores"

 

Artículo publicado Trabajando con las series temporales en la biblioteca DoEasy (Parte 58): Series temporales de los datos de búferes de indicadores:

En conclusión del tema de trabajo con series temporales, vamos a organizar el almacenamiento, la búsqueda y la ordenación de los datos que se guardan en los búferes de indicadores. En el futuro, eso nos permitirá realizar el análisis a base de los valores de los indicadores que se crean a base de la biblioteca en nuestros programas. El concepto general de todas las clases de colección de la biblioteca permite encontrar fácilmente los datos necesarios en la colección correspondiente, y por tanto, lo mismo también será posible en la clase que vamos a crear hoy.

Compilamos y ejecutamos el asesor en el gráfico, especificando en sus ajustes el uso solamente del símbolo y marco temporal actuales. Los datos de la primera barra y de la barra cero (actual) de todos los indicadores creados se visualizarán en los comentarios en el gráfico:


Para que se vea de forma más clara, en el gráfico se muestran los mismos indicadores con las mismas configuraciones: los datos de indicadores en los comentarios en el gráfico y en la ventana de datos (Ctrl+D) coinciden, y los valores en la barra actual se actualizan.

Autor: Artyom Trishkin

 
Da la sensación de que el tren de vapor ha recorrido un largo camino y los pasajeros van detrás.
 
Sí, es cierto lo de la locomotora de vapor. Siento que, basado en lo que hemos hecho hasta ahora.
podrías escribir un manual sobre cómo usarla. Estaba pensando
dado el estado actual de la biblioteca, me gustaría obtener todos los datos sobre los resultados
de las operaciones durante un cierto período en el pasado, como cuántas operaciones hubo,
en qué símbolos, con qué beneficio, etc. y no he podido averiguarlo.
¿Pueden decirme cómo hacerlo?

 
Alexander:
Sí, es cierto lo de la locomotora de vapor. Me parece, basado en lo que ya se ha hecho.
podrías escribir un manual sobre cómo usarla. He estado queriendo
dado el estado actual de la biblioteca, obtener todos los datos sobre los resultados
comerciales de un determinado periodo en el pasado, por ejemplo, cuántas operaciones hubo en total,
en qué símbolos, con qué beneficio, etc. y aún no he podido averiguarlo.
¿Puede decirme cómo hacerlo?

Una guía con ejemplos de cómo resolver diversos problemas se hará una vez que la biblioteca esté totalmente terminada.

Por ahora, cada artículo tiene ejemplos de cómo utilizar la funcionalidad descrita en el artículo.

 

El autor debería recibir una medalla por el récord absoluto de número de partes de una biblioteca :)

 
Aleksey Mavrin:

El autor debería recibir una medalla por el récord absoluto de número de partes de una biblioteca :)

¿Qué te impide escribir y llevarte tú mismo esta medalla?

 
¿Te imaginas que todos los programadores que escriben programas y los mejoran constantemente, por ejemplo, el mismo
Metaquotes, antes de escribir una ayuda sobre la plataforma y el lenguaje MQL, dijeran a todo el mundo cuando lanzaron por primera vez la plataforma.
MT4, espera, vamos a lanzar MT5, y luego la integración con SQL, y luego con Piton.
liberaremos la ayuda para todo a la vez. Y en segundo lugar, no he encontrado la EA en su última versión.
ToDoEasyPart56 ni una sola línea sobre el trabajo con órdenes históricas.
 
Alexander:
¿Te imaginas que todos los programadores que escriben programas y los mejoran constantemente, por ejemplo el mismo
Metaquotes, antes de escribir una ayuda sobre la plataforma y el lenguaje MQL, se lo dijeran a todo el mundo cuando lanzaron la plataforma por primera vez.
MT4, espera, vamos a lanzar MT5, y luego la integración con SQL, y luego con Piton.
liberaremos la ayuda para todo a la vez. Y en segundo lugar, no he encontrado la EA en su última versión.
ToDoEasyPart56 ni una sola línea sobre el trabajo con órdenes históricas.
Esta serie de artículos es sobre el proceso de creación de la biblioteca. No se trata de mejorar su primera implementación, sino de la creación consistente de funcionalidad. Ejemplos de trabajo con el sistema de pedidos están, por supuesto, en los artículos dedicados a la creación de esta funcionalidad de la biblioteca.
 
Artyom Trishkin:
Esta serie de artículos trata sobre el proceso de creación de una biblioteca. No se trata de mejorar su primera implementación, sino de la creación consistente de funcionalidad. Los ejemplos de trabajo con el sistema de pedidos están, por supuesto, en los artículos dedicados a la creación de esta funcionalidad de la biblioteca.

El problema es que después de las mejoras posteriores y la creación coherente de la funcionalidad,

los ejemplos que aparentemente funcionaban en los artículos dedicados a esta funcionalidad ahora en las siguientes

versiones no funcionan, al menos para mí. Por eso os he pedido ayuda, porque pensaba que a vosotros

funcionarían.

 
Alexander:

El problema es que tras perfeccionarla y crear una funcionalidad coherente,

los ejemplos que aparentemente funcionaban antes en los artículos dedicados a esta funcionalidad están ahora en los siguientes

versiones no funcionan, al menos para mí. Por eso os pedí ayuda, porque pensaba que teníais

funcionaran.

Por supuesto, la biblioteca se expande, algo cambia. Pero los principios básicos siguen siendo los mismos. Los ejemplos muestran la lógica, no un plan de acción claro.
Muestra tu código y dime qué es lo que no te funciona.
 
Artyom Trishkin:
Naturalmente, la biblioteca se amplía, las cosas cambian. Pero los principios básicos siguen siendo los mismos. Los ejemplos muestran la lógica, no un plan de acción claro.
Muéstranos tu código y dinos qué es lo que no te funciona.

En la función TestDoEasyPart56 void OnInitDoEasy() al final, inserté este código para

obtener una colección de órdenes históricas desde la fecha D'2020.12.11 10:00' hasta la actual. Y no obtuve ni una sola

órdenes no produjo este código.

CArrayObj* list_positions=engine.GetListHistoryOrders();
           // list_positions=CSelect::ByOrderProperty(list_positions,ORDER_PROP_SYMBOL,Symbol(),EQUAL);
            list_positions=CSelect::ByOrderProperty(list_positions,ORDER_PROP_TIME_CLOSE,D'2020.12.11 10:00',MORE);
            //--- Выбираем позиции с прибылью болше нуля
            list_positions=CSelect::ByOrderProperty(list_positions,ORDER_PROP_PROFIT_FULL,0,MORE);
            if(list_positions!=NULL)
              {Print("OK1");
               //--- Сортируем список по прибыли 
               //list_positions.Sort(SORT_BY_ORDER_PROFIT);
               list_positions.Total();
               Print(list_positions.Total());//                                здесь получаем 0
               //--- Получаем индекс позиции с наибольшей прибылью
               int index=CSelect::FindOrderMax(list_positions,ORDER_PROP_PROFIT);
               if(index>WRONG_VALUE)
                 {Print("index= ",index);
                  COrder* position=list_positions.At(index);
                  if(position!=NULL)
                    {
                     //--- Получаем тикет позиции с наибольшей прибылью и закрываем позицию по тикету
                     Print("OK");
                     Print(engine.GetListDeals());
                    }
                 }
              }

En el lugar donde imprimo Print(list_positions.Total()); obtengo "0".

Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...