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

 

buenos dias!!! amigos! camaradas! respeto a ustedes profesionales!!!

necesito ayuda!!! tengo los ojos hinchados, me duele la cabeza, no puedo recetar por lo que mi EA ha movido el StopLoss a los puntos especificados en ganancia al precio actual!!!

Es decir, cuando el precio se movió a un punto determinado, ¡¡¡el StopLoss se movió allí!!!

mi ejemplo no encaja.

#define  MagicNumber  123

////extern double TakeProfit   = 50; //Тейкпрофит ордера
extern double StopLoss     = 50; //Стоплосс ордера  
extern int    Delta        = 100;  //Расстояние от цены для установки ордера
extern int    Expiration   = 100;    //Время истечения ордера
extern double Lot          = 0.01;    //Объём позиции
extern int    TrailingLevel = 200;   //уровень
extern int    TrailingStep  = 200;


int            last_bar       = 0;
  
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start(){

for (int i=0; i<OrdersTotal(); i++) {
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

           if (OrderType() == OP_BUY) { 
 if ((OrderStopLoss() < (Bid - TrailingLevel * Point - TrailingStep * Point)) || (OrderStopLoss() == 0)) { // 2
          bool res=OrderModify(OrderTicket(),OrderOpenPrice(),(Bid - TrailingLevel * Point),OrderTakeProfit(),0,Green);   
}
}
}
  
 datetime expiration = TimeCurrent()+3600*Expiration; /// время окончания  
   double BUYLIMITPrice=Ask-Delta*Point; /// это пункты BUYLIMIT

 if (last_bar == Bars) return(0) ;
  last_bar = Bars;
   if (OrdersTotal() == 0)
     {
int ticket=OrderSend(Symbol(),OP_BUYLIMIT,Lot, BUYLIMITPrice,0, BUYLIMITPrice-StopLoss*Point,0 ,"",MagicNumber,expiration,clrNONE);/// это BUYLIMIT
}
 
//----
  return(0) ; 
 } 
  
  
//-- ------------------------------------------------------------------


 
Rita:

Buenas tardes.

Por favor, avisa. Estoy abriendo una posición:

¿Cómo puedo configurar el comentario de posición para mostrar el valormágico después del número de la palabra?

Es decir, en este caso: Número 20781

También puedes hacer esto:

   int mag=111222333;
   string str="Сложение строки и числа ";
   str=str+mag;
   Alert(str);

Cuando se suman variables de diferentes tipos, el resultado se convierte en el tipo de variable con mayor prioridad. La cadena tiene mayor prioridad que el int

 
TarasBY:
Tiene el tiempo OrderCloseTime() para cerrar la posición perdedora. Desde ella se puede leer la hora a través de TimeCurrent() - OrderCloseTime(). O en barras utilizando iBarShift (NULL, 0, OrderCloseTime()).

Gracias.
 
Hola, ¿pueden decirme si es posible llamar a un indicador estándar (por ejemplo, MA) desde un EA y que aparezca en el gráfico? No necesito su valor en un punto determinado, es comprensible, pero ¿exactamente debe dibujarse en el gráfico? Gracias
 
alxm:
Hola, ¿podríais decirme si es posible llamar a un indicador estándar (por ejemplo, MA) desde un EA para que se pueda mostrar en el gráfico? No necesito su valor en un punto determinado, es comprensible, pero ¿exactamente debe dibujarse en el gráfico? Gracias

Se puede, sólo con la API, y sólo con los parámetros por defecto.
O la biblioteca de Vadim Zhunko. ¿Qué está más cerca de usted? La esencia es la misma - tienes que implementar el paso de parámetros desde el EA al indicador.

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" запрещено.
 //===============================================================================================================================================
 
logut:

buenos dias!!! amigos! camaradas! respeto a ustedes profesionales!!!

necesito ayuda!!! tengo los ojos hinchados, me duele la cabeza, no puedo recetar por lo que mi EA ha movido el StopLoss a los puntos especificados en ganancia al precio actual!!!

Es decir, cuando el precio se movió a un punto determinado, ¡¡¡el StopLoss se movió allí!!!

mi ejemplo no encaja.

¿Qué es lo que no le gusta?

 
ALXIMIKS:

Puede, sólo con la API, y sólo con los parámetros por defecto.
O la biblioteca de Vadim Zhunko. Lo que está más cerca de ti. La idea es la misma: hay que implementar el paso de parámetros del EA al indicador.

Es decir, utilizar los medios estándar no funcionará. Gracias.
 
alxm:
Es decir, no funcionará por medios estándar. Gracias.
Podemos utilizar objetos para construir
 

¡¡¡Buena gente!!!

Ayúdame a encontrar un error. Estoy aprendiendo sobre Arrays.

He creado una matriz en un archivo de inclusión.

Puse una referencia al archivo de inclusión en mi Asesor Experto.

No puedo entender por qué.

En los códigos de error del enlace de localización de archivos

http://clip2net.com/s/jkTd89

double mass[]={
1.38890,
1.40510,
1.40980,
1.41340,
2.07850};
#include <ВКЛ.ФАЙЛ.mqh>
int ot ;
int ht ;
double X ;
double X1 ;
double X2 ;

int start()     
{
ot = OrdersTotal();     
double value = Bid;
int S = ArrayBsearch(mass,  value, WHOLE_ARRAY,  0, MODE_ASCEND);
if (ot==0)
if(Bid == mass[S])
OrderSend(Symbol(),OP_SELL,0.1,Bid ,3,Ask+1000*Point,Ask-300*Point,"jfh",123 );

return;
}

Gracias.

 
solnce600:

¡¡¡Buena gente!!!

Ayúdame a encontrar un error. Estoy aprendiendo sobre Arrays.

He creado una matriz en un archivo de inclusión.

Puse una referencia al archivo de inclusión en mi Asesor Experto.

No puedo entender por qué.

En los códigos de error del enlace de localización de archivos

http://clip2net.com/s/jkTd89

Gracias.

En la primera línea había un mensaje de que el compilador no podía encontrar el archivo a incluir