Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 316

 
artmedia70:

Vivirá un tiempo.


Y entonces se formarán los herederos y todo volverá a la normalidad


No estoy pidiendo una solución de software fuera de la caja, estoy pidiendo alguna dirección para buscar - con qué empezar si OrdersHistoryTotal( ) no funciona. Pero no importa. Tengo una pregunta más, he probado mi Expert Advisor en dos terminales de Alpari (demo y real con las cotizaciones cargadas y con diferente resultado). ¿Por qué una cosa así?
 
r772ra:
Zto, donde verlo, mejor descargarlo, retrasado sin embargo.


aquí hay un hilo - en la página 9 cómo descargar, si no me equivoco.
 
ALXIMIKS:


Lo encontré por el método científico:

Sustituir limit=Barras_contabilizadas-5; por limit=Barras_contabilizadas-2;

Y poner ChartRedraw() delante de todos los retornos.


Sí, la moraleja es la siguiente: el límite debe fijarse exactamente para que no haya errores de ejecución, no se puede tomar demasiado ))))
 
ALXIMIKS:

aquí está el hilo - en la página 9 cómo descargar, si no me equivoco.


Muchas gracias. Echemos un vistazo.

Sí, se ha encontrado el artículo 8.

 

¿Puedes decirme cómo llamar al indicador desde el EA? (llamada completa, necesito un dibujo, no los buffers)

¿Y cómo asignar espacio para el EA en un gráfico, de forma similar a como se asigna un indicador en una ventana independiente?

Estaría encantado de implementarlo tanto en mt4 como en mt5, aunque tenga que desplazarme a cualquier sitio.

 
ALXIMIKS:

¿Puedes decirme cómo llamar al indicador desde el EA? (llamada completa, necesito un dibujo, no los buffers)

¿Y cómo asignar espacio para el EA en un gráfico, de forma similar a como se asigna un indicador en una ventana independiente?

Estaría encantado de implementarlo tanto en mt4 como en mt5, al menos donde ir.


Desde el EA sólo son visibles los buffers, si necesito más, entonces sólo hay que mover la lógica del indicador en el EA, o utilizar variables globales para transferirlos.

¿Y qué tal si se asigna espacio al EA en el gráfico, de forma similar a como se asigna el indicador en una ventana aparte?

¿Qué te parece esto? ¿Un gráfico de EA en una subventana? ¿O como aquí?

 
ALXIMIKS:

¿Puedes decirme cómo llamar al indicador desde el EA? (llamada completa, necesito un dibujo, no los buffers)

¿Y cómo asignar espacio para el EA en un gráfico, de forma similar a como se asigna un indicador en una ventana independiente?

Estaría encantado de implementarlo tanto en mt4 como en mt5, al menos donde ir.

Biblioteca.

 //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 // 7. ФУНКЦИИ ДЛЯ УПРАВЛЕНИЯ ПРОГРАММАМИ MQL4.
 //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 // 7.1. Функция удаляет эксперт с указанного графика. В случае успеха функция возвращает TRUE, иначе - FALSE.
 bool ServiceDeleteExpert(int hwndChart); // Системный дескриптор окна графика, удаляемого эксперта.
 //===============================================================================================================================================
 // 7.2. ФУНКЦИЯ удаляет индикаторы по имени из списка загруженных индикаторов.
 void ServiceDeleteIndicatorsByName(int     hwndChart,         // Системный дескриптор окна, куда прикреплен индикатор.
                                    int     nWindow,           // Номер подокна для удаления индикаторов. Если -1, то удаляются индикаторы из всех подокон.
                                    string &asIndicatorName[], // Одномерный массив с именами удаляемых индикаторов.
                                    int     nNumberName);      // Количество имён индикаторов в массиве.
 //===============================================================================================================================================
 // 7.3. Функция удаляет скрипт с указанного графика. В случае успеха функция возвращает TRUE, иначе - FALSE.
 bool ServiceDeleteScript(int hwndChart); // Системный дескриптор окна графика, удаляемого скрипта.
 //===============================================================================================================================================
 // 7.4. Функция управляет диалоговым окном завершения скрипта и возвращает системный дескриптор диалогового окна завершения скрипта, если окно есть,
 //      иначе - NULL. Функция работает только с русской и английской локализациями.
 int ServiceDialogScript(int bInstruction); // Команда для диалогового окна завершения скрипта: TRUE - завершить скрипт, FALSE - не завершать скрипт.
 //===============================================================================================================================================
 // 7.5. Функция получает имена индикаторов из списка загруженных индикаторов.
 //      В случае успеха функция возвращает количество индикаторов в указанных подокнах параметром "nWindow", иначе ноль.
 int ServiceGetNamesIndicators(int     hwndChart,         // Системный дескриптор окна, куда прикреплен индикатор.
                               int     nWindow,           // Номер подграфика. Если -1, то считываются имена индикаторов из всех подокон.
                               string &asIndicatorName[], // Одномерный строковый массив для приёма имён индикаторов.
                                                          // Массив должен быть инициализирован разными значениями в каждой ячейке!
                                                          // Это особенность инициализации строковых массивов в MQL4.
                               int     nNumberName);      // Размер массива "asIndicatorName[]" для приёма имён индикаторов.
 //===============================================================================================================================================
 // 7.6. Функция возвращает TRUE, если окно свойств эксперта открыто, иначе - FALSE.
 bool ServiceIsPropertiesExpert(string sNameExpert); // Имя эксперта, для которого контроллируется открытие окна.
 //===============================================================================================================================================
 // 7.7. Функция открывает окно списка индикаторов. Функция ожидает открытия окна в течении 2,5 секунд. Если окно не появилось в течении этого времени,
 //      функция возвращает FALSE.
 bool ServiceListIndicators(int hwndChart); // Системный дескриптор окна графика, на котором вызывается окно списка индикаторов.
 //===============================================================================================================================================
 // 7.8. Функция загружает на указанный график пользовательский индикатор по его имени.
 void ServiceLoadCustomIndicator(int    hwndChart,      // Системный дескриптор окна графика, куда загружается индикатор.
                                 string sNameIndicator, // Имя загружаемого индикатора.
                                 int    bOK);           // Подтверждение запуска индикатора, при наличии диалогового окна свойств индикатора.
                                                        // TRUE - автонажатие на кнопку "OK" разрешено, FALSE - автонажатие на кнопку "OK" запрещено.
 //===============================================================================================================================================
 // 7.9. Функция загружает на указанный график эксперт по его имени.
 void ServiceLoadExpert(int    hwndChart,   // Системный дескриптор окна графика, куда загружается эксперт.
                        string sNameExpert, // Имя загружаемого эксперта.
                        int    bOK);        // Подтверждение запуска эксперта, при наличии диалогового окна свойств эксперта.
                                            // TRUE - автонажатие на кнопку "OK" разрешено, FALSE - автонажатие на кнопку "OK" запрещено.
 //===============================================================================================================================================
 // 7.10. Функция загружает на указанный график скрипт по его имени.
 void ServiceLoadScript(int    hwndChart,   // Системный дескриптор окна графика, куда загружается скрипт.
                        string sNameScript, // Имя загружаемого скрипта.
                        int    bOK);        // Подтверждение запуска скрипта, при наличии диалогового окна свойств скрипта. Скрипт может не иметь окна свойств!
                                            // При использовании функции для загрузки скрипта из скрипта на текущем графике параметр не работает из-за
                                            // невозможности одновременной работы двух скриптов на одном графике.
                                            // TRUE - автонажатие на кнопку "OK" разрешено, FALSE - автонажатие на кнопку "OK" запрещено.
 //===============================================================================================================================================
 // 7.11. Функция загружает на указанный график стандартный индикатор по его имени.
 void ServiceLoadStdIndicator(int    hwndChart,      // Системный дескриптор окна графика, куда загружается индикатор.
                              string sNameIndicator, // Имя загружаемого индикатора.
                              int    bOK);           // Подтверждение запуска индикатора, при наличии диалогового окна свойств индикатора.
                                                     // TRUE - автонажатие на кнопку "OK" разрешено, FALSE - автонажатие на кнопку "OK" запрещено.
 //===============================================================================================================================================
 

Buenas noches.

Tengo este problema...

El EA abre una orden a la vez durante la prueba y la cierra en el momento adecuado.

Cuando lo ejecuto en una cuenta real, las órdenes abiertas no se cierran, y luego las abro al revés, así como en la misma dirección, y las órdenes se amontonan.

No sé por qué ocurre.

El Asesor Experto funciona de esta manera:

   if (условие на открытие продажи)          
      {                                                                                                                                          
      if (Ticket2 > 0)                                                
         {
         OrderClose(Ticket2, Lot, Bid, 2, Red);   // закрытие покупки          
         Ticket2=0;                                               
         }
      if (Ticket1 == 0)                                        
         Ticket1=OrderSend(Symbol(), OP_SELL, Lot, Bid, 2, 0, 0);   
      }
   if (условие для покупки)            
      {
      if (Ticket1 > 0)                                            
         {
         OrderClose(Ticket1, Lot, Ask, 2, Red);         // закрытие продажи        
         Ticket1=0;                                                
         }
      if (Ticket2 == 0)                                         
         Ticket2_RSI=OrderSend(Symbol(), OP_BUY, Lot, Ask, 2, 0, 0);    
      }
 
waroder:

Buenas noches.

Tengo este problema...

El EA abre una orden a la vez durante la prueba y la cierra en el momento adecuado.

Cuando lo ejecuto en una cuenta real, las órdenes abiertas no se cierran, y luego las abro al revés, así como en la misma dirección, y las órdenes se amontonan.

No sé por qué ocurre.

El Asesor Experto funciona de esta manera:

¿Es secreta la pieza de código en la que se hacen estas entradas?
 
evillive:
¿No es secreto el fragmento de código donde se ejecutan estas órdenes?


Acabo de escribir cómo se hacen)

La orden puede estar condicionada a cualquier cosa, ya sea un indicador o que el precio alcance un determinado nivel.

En el probador, esto es lo que sucede. Pero en el real, las órdenes no se cierran y se abren adicionalmente desde arriba.